• DİKKAT

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

Döngüde Çalışan Makronun Sürekli Çalışması

Katılım
19 Eylül 2012
Mesajlar
322
Excel Vers. ve Dili
2010 türkçe
Merhaba değerli üstatlar..
Ekte yer alan örnek dosyamda "rastgele hücre seçimi" yapan bir makro var ve bu makro henüz daha işim bitmeden kısa sürede duruyor. Dosya içeriği karışık olduğu için ben sadece hücre seçimi ile ilgili kısmı örnek olarak hazırladım. İstediğim şu; bu makro ben müdahale etmediğim sürece durmasın en azından 5 dakika bile devam etse o zamana kadar koşullar sağlanmış olur. Yardımcı olabilecek hocalarımdan rica ediyorum. sağlıcakla kalın..

 
Şartların ne olduğunu bilmediğimiz için yorum yapamam ancak belirli bir şart oluncaya kadar makronun çalışmasını istiyorsanız do loop veya do until loop döngülerini incelemenizi tavsiye ederim.
 
Şartların ne olduğunu bilmediğimiz için yorum yapamam ancak belirli bir şart oluncaya kadar makronun çalışmasını istiyorsanız do loop veya do until loop döngülerini incelemenizi tavsiye ederim.

Hocam aslında rastgele hücre seçim aralığı daha uzun ve seçilen hücrede belirli koşullar sağlandığı takdirde o hücrelere bir değer yazdırıyorum. Fakat koşullarda çelişki olmadığı halde kod işini bitirmeden duruyor. Bu bahsettiğiniz do loop veya do until loop döngüyü aşağıdaki koda nasıl uyarlayabilirim. Ya da belirtilen aralıktaki sadece boş hücreleri seçebileceğim bir kod olursa belki işimi görebilir.

Sub çalıştır()
On Error Resume Next

Dim RNG As Range
Set RNG = Range("A1:P1")
Dim randomCell As Long
randomCell = Int(Rnd * RNG.Cells.Count) + 1
With RNG.Cells(randomCell)
.Select
çalıştır
End With
End Sub
 
Makro ne zaman duracağını nasıl bilecek?
 
Makro ne zaman duracağını nasıl bilecek?

hocam haklısınız zaten sonsuza kadar döngüde kalmayacak belirtilen koşulları sağlayan hücrelere değeri atayıncaya kadar sadece ama en azından örnek dosyadaki makroyu çalıştırınca mevcut sürenin 10 katı kadar çalışsa yeterli olur
 
Şartlar devlet sırrı galiba :)
 
Do until kullanımı ş
Rich (BB code):
Sub çalıştır()
On Error Resume Next

Dim RNG As Range
Set RNG = Range("A1:P1")
Dim randomCell As Long
Do until şu şart gerçeklecince
    randomCell = Int(Rnd * RNG.Cells.Count) + 1
    With RNG.Cells(randomCell)
        .Select
    End With
Loop
End Sub

Kod çalıştığında kırmızı olan şart gerçekleşinceye kadar mavi olan işlemleri yapar. Örneğin

Rich (BB code):
Sub çalıştır()
On Error Resume Next

Dim RNG As Range
Set RNG = Range("A1:P1")
Dim randomCell As Long
Do until [A1] = 100
    randomCell = Int(Rnd * RNG.Cells.Count) + 1
    With RNG.Cells(randomCell)
        .Select
    End With
Loop
End Sub

Bu kodda A1 hücresi 100 oluncaya kadar Do ve Loop arasındaki işlemler tekrar edilir.
 
Do until kullanımı ş
Rich (BB code):
Sub çalıştır()
On Error Resume Next

Dim RNG As Range
Set RNG = Range("A1:P1")
Dim randomCell As Long
Do until şu şart gerçeklecince
    randomCell = Int(Rnd * RNG.Cells.Count) + 1
    With RNG.Cells(randomCell)
        .Select
    End With
Loop
End Sub

Kod çalıştığında kırmızı olan şart gerçekleşinceye kadar mavi olan işlemleri yapar. Örneğin

Rich (BB code):
Sub çalıştır()
On Error Resume Next

Dim RNG As Range
Set RNG = Range("A1:P1")
Dim randomCell As Long
Do until [A1] = 100
    randomCell = Int(Rnd * RNG.Cells.Count) + 1
    With RNG.Cells(randomCell)
        .Select
    End With
Loop
End Sub

Bu kodda A1 hücresi 100 oluncaya kadar Do ve Loop arasındaki işlemler tekrar edilir.
Hocam ilgilendiniz alaka gösterdiniz çok çok teşekkür ederim bu yoldan yapmaya çalışayım.
 
teşekkür ederim
 
Geri
Üst