• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

İşlem devam ederken uyarı penceresi çıkması

Katılım
18 Ekim 2008
Mesajlar
46
Excel Vers. ve Dili
Excel 2007 - Tr
Excel 2013 - Tr
Değerli arkadaşlar,

dokümanımda yaklaşık bir buçuk dakika süren bir makro kullanıyorum. uzun prosedür hatası verdiği için farklı makrolara bölüp tek makroda oynatıyorum, şu şekilde;

Sub Yapistir_Basla()

run "Yapistir_1"
run "Yapistir_2"
run "Yapistir_3"
run "Yapistir_4"
run "Yapistir_5"
run "Yapistir_6"
run "Yapistir_7"
run "Yapistir_8"
run "Yapistir_9"
run "Yapistir_10"
run "Yapistir_11"
run "Yapistir_12"
run "Yapistir_13"
run "Yapistir_14"
run "Yapistir_15"
run "Yapistir_16"
run "Yapistir_17"
run "Yapistir_18"
run "Yapistir_19"
run "Yapistir_20"
run "Yapistir_21"
run "Yapistir_22"
run "Yapistir_23"
run "Yapistir_24"
run "Yapistir_25"
run "Yapistir_26"
run "Yapistir_27"
run "Yapistir_28"
run "Yapistir_29"
run "Yapistir_30"
run "Yapistir_31"
run "Yapistir_32"
run "Yapistir_33"
run "Yapistir_34"

End Sub

Benim yapmak istediğim şu, yukarıdaki "Yapistir_Basla" makrosu başladığında "İşlem Devam Ediyor" şeklinde pencere açılıp işlemin sonuna kadar ekranda kalsa, işlem bitincede bu kapanıp "İşlem Tamamlandı" şeklinde bir pencere gözükse ve 2sn sonra kendiliğinden kapansa.

Bu mümkün müdür? Forumda araştırdım ama aradığımı bulamadım bir türlü.
(Dokümanım maalesef gizli bilgiler içerdiği için örnek dosya olarak paylaşamadım, kusura bakmayın). Yardımcı olabilirseniz sevinirim.

Saygılarımla.
 
slm

burada yapmak istediğin takip sanırım.
hücrenin birine yazsın...çok zorlama...

mesela: a1 hücresine yazsın

range("a1").value="yapıştır_1 işlemde" :run "yapıştır_1"
range("a1").value="yapıştır_2 işlemde" :run "yapıştır_2"
''
''
''
''
range("a1").value="yapıştır_34 işlemde" :run "yapıştır_34"

msgbox("işlem tamamlandı") 'işlem tamam mesajı
Workbooks("dosyaadı.xls").Save 'burası dosyanı kaydeder
Workbooks("dosyaadı.xls").Close False 'burası dosyayı kapatır
'---------------------------------------
birde bu 34 tane run olayını döngü içinde kısa komutla yapabilrsin

For I=1 to 34
run "yapiştir_"& Trim(I)
next I
 
Değerli arkadaşlar,

dokümanımda yaklaşık bir buçuk dakika süren bir makro kullanıyorum. uzun prosedür hatası verdiği için farklı makrolara bölüp tek makroda oynatıyorum, şu şekilde;



Benim yapmak istediğim şu, yukarıdaki "Yapistir_Basla" makrosu başladığında "İşlem Devam Ediyor" şeklinde pencere açılıp işlemin sonuna kadar ekranda kalsa, işlem bitincede bu kapanıp "İşlem Tamamlandı" şeklinde bir pencere gözükse ve 2sn sonra kendiliğinden kapansa.

Bu mümkün müdür? Forumda araştırdım ama aradığımı bulamadım bir türlü.
(Dokümanım maalesef gizli bilgiler içerdiği için örnek dosya olarak paylaşamadım, kusura bakmayın). Yardımcı olabilirseniz sevinirim.

Saygılarımla.

merhba
bir tane userform oluşturun içerisine bir tane label ekleyin
boş bir module atayarak çalıştırın
Kod:
Option Explicit
Sub say()
Dim ts
UserForm1.Label1.BackColor = vbRed
UserForm1.Label1.ForeColor = vbBlue
UserForm1.Label1.Font.Bold = True
UserForm1.Label1.Font.Name = "Arial"
UserForm1.Label1.Font.Size = 12
UserForm1.Label1.Caption = "Lütfen Bekleyiniz"
UserForm1.Show 0
Application.Wait (Now + TimeValue("0:00:01"))
Application.DisplayAlerts = False
[COLOR="Red"]For ts = 1 To 10
Cells(ts, "A") = 1
Next[/COLOR]
Application.DisplayAlerts = True
Application.Wait (Now + TimeValue("0:00:01"))
UserForm1.Label1.BackColor = vbBlue
UserForm1.Label1.ForeColor = vbRed
UserForm1.Label1.Font.Bold = True
UserForm1.Label1.Font.Name = "Arial"
UserForm1.Label1.Font.Size = 12
UserForm1.Label1.Caption = "İşlem Bitti"
Application.Wait (Now + TimeValue("0:00:05"))
Unload UserForm1
End Sub
kırmızı olan yere siz kendi kodlarınızı ekleyin
 
burada yapmak istediğin takip sanırım.
hücrenin birine yazsın...çok zorlama...

mesela: a1 hücresine yazsın

range("a1").value="yapıştır_1 işlemde" :run "yapıştır_1"
range("a1").value="yapıştır_2 işlemde" :run "yapıştır_2"
''
''
''
''
range("a1").value="yapıştır_34 işlemde" :run "yapıştır_34"

msgbox("işlem tamamlandı") 'işlem tamam mesajı
Workbooks("dosyaadı.xls").Save 'burası dosyanı kaydeder
Workbooks("dosyaadı.xls").Close False 'burası dosyayı kapatır
'---------------------------------------
birde bu 34 tane run olayını döngü içinde kısa komutla yapabilrsin

For I=1 to 34
run "yapiştir_"& Trim(I)
next I
Hocam teşekkür ederim. Açıkçası en sonda verdiğiniz makromu kısaltıcı kod dışındaki kısımları tam olarak anlayamadım (kısıtlı bilgi sahibi olduğum için muhtemelen). Yine de sağolun yardımınız için.



merhba
bir tane userform oluşturun içerisine bir tane label ekleyin
boş bir module atayarak çalıştırın
Kod:
Option Explicit
Sub say()
Dim ts
UserForm1.Label1.BackColor = vbRed
UserForm1.Label1.ForeColor = vbBlue
UserForm1.Label1.Font.Bold = True
UserForm1.Label1.Font.Name = "Arial"
UserForm1.Label1.Font.Size = 12
UserForm1.Label1.Caption = "Lütfen Bekleyiniz"
UserForm1.Show 0
Application.Wait (Now + TimeValue("0:00:01"))
Application.DisplayAlerts = False
[COLOR="Red"]For ts = 1 To 10
Cells(ts, "A") = 1
Next[/COLOR]
Application.DisplayAlerts = True
Application.Wait (Now + TimeValue("0:00:01"))
UserForm1.Label1.BackColor = vbBlue
UserForm1.Label1.ForeColor = vbRed
UserForm1.Label1.Font.Bold = True
UserForm1.Label1.Font.Name = "Arial"
UserForm1.Label1.Font.Size = 12
UserForm1.Label1.Caption = "İşlem Bitti"
Application.Wait (Now + TimeValue("0:00:05"))
Unload UserForm1
End Sub
kırmızı olan yere siz kendi kodlarınızı ekleyin
İhsan Hocam teşekkür ederim, kodunuz işime yaradı. istediğim böyle birşeydi. Ben 2 farklı userform tasarladım (userform2 ve userform3).
userform2: işlem devam ediyor uyarısı,
userform3: işlem tamamlandı uyarısı olacak şekilde.

Sizin verdiğiniz kodu da uydurmaya çalışınca şöyle birşey çıktı ortaya;

Sub Yapistir_2102()
'
' Yapistir_2102 Makro

UserForm2.Show 0
Application.Wait (Now + TimeValue("0:00:01"))
Application.DisplayAlerts = False

For I = 1 To 3
run "Yapistir_" & Trim(I)
Next I

Application.DisplayAlerts = True
Application.Wait (Now + TimeValue("0:00:01"))
Unload UserForm2

UserForm3.Show 0
Application.Wait (Now + TimeValue("0:00:03"))
Unload UserForm3

End Sub

Bu kodda yaşadığım tek problem; Userform3 açılıyor ancak içi bembeyaz-boş gözüküyor. Bunun dışında hiçbir sorun kalmadı. Userform3'ün içeriği neden gözükmüyor, bir püf noktası varmıdır.
 
Hocam teşekkür ederim. Açıkçası en sonda verdiğiniz makromu kısaltıcı kod dışındaki kısımları tam olarak anlayamadım (kısıtlı bilgi sahibi olduğum için muhtemelen). Yine de sağolun yardımınız için.




İhsan Hocam teşekkür ederim, kodunuz işime yaradı. istediğim böyle birşeydi. Ben 2 farklı userform tasarladım (userform2 ve userform3).
userform2: işlem devam ediyor uyarısı,
userform3: işlem tamamlandı uyarısı olacak şekilde.

Sizin verdiğiniz kodu da uydurmaya çalışınca şöyle birşey çıktı ortaya;



Bu kodda yaşadığım tek problem; Userform3 açılıyor ancak içi bembeyaz-boş gözüküyor. Bunun dışında hiçbir sorun kalmadı. Userform3'ün içeriği neden gözükmüyor, bir püf noktası varmıdır.

dosyanıza hayali veriler girerek gönderebilir misiniz.
bu şekilde tam bir şey söyliyemem
 
dosyanıza hayali veriler girerek gönderebilir misiniz.
bu şekilde tam bir şey söyliyemem

İhsan bey dokümanlarımın içeriğini silerek göndermek durumunda kaldım kusura bakmayın.

"Degerlendirme" isimli dosyada işlemlerimizi yapıyoruz biz. En sonunda, bu dokümanda oluşan tabloları değerleri yapıştır şeklinde "2102-2" isimli excele aktarıyoruz. (2102-2 dosyasının da açık olması gerekiyor bir yandan).

benim yardım istediğim nokta bu en son yapılan aktarma işlemi, bu aşamada kopyalama 1 dakikadan uzun sürüyor, o nedenle uyarı pencereleri koymak istiyorum.

"Degerlendirme" belgesinin "Cover" sayfasında 2102'ye Kopyala butonuna bastığımızda yukarıda bahsi geçen kod uygulanıyor. (Kod "Modül 8'dedir).

İlginiz için teşekkürler.
 
Son düzenleme:
Kodun

UserForm3.Show 0
Application.Wait (Now + TimeValue("0:00:03"))
Unload UserForm3

kısmında, "UserForm.Show 0" şeklinde olduğunda userform içi bembeyaz görünüyor, sadece "UserForm.Show" şeklinde yaptığımda ise userform içi gözüküyor ancak otomatik olarak kapanmıyor, ekranda kalıyor. Bunu çözebilirsek tamamdır inşallah.
 
Kodun

UserForm3.Show 0
Application.Wait (Now + TimeValue("0:00:03"))
Unload UserForm3

kısmında, "UserForm.Show 0" şeklinde olduğunda userform içi bembeyaz görünüyor, sadece "UserForm.Show" şeklinde yaptığımda ise userform içi gözüküyor ancak otomatik olarak kapanmıyor, ekranda kalıyor. Bunu çözebilirsek tamamdır inşallah.

merhaba
module8'deki kodu
Kod:
Sub Yapistir_2102()
'
' Son asamada herşeyin 2102 nolu dokümana kopyalanması işlemi
UserForm2.Show 0
Application.Wait (Now + TimeValue("0:00:01"))
Application.DisplayAlerts = False
For I = 1 To 1
run "Yapistir_" & Trim(I)
Next I
Application.DisplayAlerts = True
Application.Wait (Now + TimeValue("0:00:01"))
Unload UserForm2
UserForm3.Show
End Sub
bununla değiştirin
userform3'un kod bölümüne
Kod:
Private Sub UserForm_Activate()
Application.Wait (Now + TimeValue("0:00:03"))
Unload UserForm3
End Sub
bu kodu kopyalayın ve deneyin
 
İhsan Hocam çok çok teşekkür ederim. Son verdiğiniz kodlar kusursuz çalıştı. Elinize emeğinize sağlık.

rica ederim
asıl kodlarını yürüttüğüm Korhan Ayhan Hocama teşekkür ederim :)
:yazici:
 
Geri
Üst