Rastgele boş hücre seçimi

Katılım
19 Eylül 2012
Mesajlar
322
Excel Vers. ve Dili
2010 türkçe
Merhaba aşağıdaki kod belirtilen aralıkta rastgele hücre seçiyor. Yapmak istediğim bu aralıktaki sadece boş hücreleri rastgele seçsin. yapılabilir mi?

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

Dim RNG As Range
Set RNG = Range("A1:b1")
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
 
Katılım
19 Eylül 2012
Mesajlar
322
Excel Vers. ve Dili
2010 türkçe
Sub çalıştır()
On Error Resume Next
Dim RNG As Range
Set RNG = Range("A1:b1")
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 konuyu çok aradım fakat hiçbir yerde cevabını bulamadım. Sadece boş olan hücreleri rastgele seçsin çünkü bakacağı aralık çok fazla olduğu için döngüde zaman aşımına uğramasını istemiyorum.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,653
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub bosHucreSec()
    Dim RNG As Range
    Set RNG = Range("b3:f6")
    Dim randomCell As Long
    
    If WorksheetFunction.CountBlank(RNG) > 0 Then
        Do
            randomCell = Int(Rnd * RNG.Cells.Count) + 1
        Loop Until RNG.Cells(randomCell) = Empty
        RNG.Cells(randomCell).Select
    End If
End Sub
 
Katılım
19 Eylül 2012
Mesajlar
322
Excel Vers. ve Dili
2010 türkçe
Kod:
Sub bosHucreSec()
    Dim RNG As Range
    Set RNG = Range("b3:f6")
    Dim randomCell As Long
   
    If WorksheetFunction.CountBlank(RNG) > 0 Then
        Do
            randomCell = Int(Rnd * RNG.Cells.Count) + 1
        Loop Until RNG.Cells(randomCell) = Empty
        RNG.Cells(randomCell).Select
    End If
End Sub
Aradığım tamda buydu çok çok teşekkür ederim
 
Katılım
19 Eylül 2012
Mesajlar
322
Excel Vers. ve Dili
2010 türkçe
Kod:
Sub bosHucreSec()
    Dim RNG As Range
    Set RNG = Range("b3:f6")
    Dim randomCell As Long
  
    If WorksheetFunction.CountBlank(RNG) > 0 Then
        Do
            randomCell = Int(Rnd * RNG.Cells.Count) + 1
        Loop Until RNG.Cells(randomCell) = Empty
        RNG.Cells(randomCell).Select
    End If
End Sub
Veysel hocam bu yazdığınız kod çok işime yaradı teşekkür ederim. Aynı kod ile devam etmek istesek seçtiği hücreyi bir daha seçtirmeme gibi bir durum yaptırabilir miyiz?
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,653
Excel Vers. ve Dili
Pro Plus 2021
Veysel hocam bu yazdığınız kod çok işime yaradı teşekkür ederim. Aynı kod ile devam etmek istesek seçtiği hücreyi bir daha seçtirmeme gibi bir durum yaptırabilir miyiz?
1- Seçilen hücrelerin başka yerde not alınması gerekir.
2- Seçilen hücrelere açıklama eklenebilir.
3- Seçim olayı not alınmadan sadece dosya kapanana kadar ve vba hata verene kadar hafızada tutulabilir.

Seçilen hücre doldurulursa bir daha seçmez, doldurulmayacaksa yukardaki yöntemlerden birisini kullanarak yapılabilir,
 
Üst