• DİKKAT

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

Kullandığım koda ilave yaparmısınız

Katılım
3 Mart 2011
Mesajlar
15
Excel Vers. ve Dili
2007 türkce
Merhaba
Aşağıdaki kodu kullanarak,
excelde Sayfa2 de üçüncü satırdan başlayarak H sütununda değer olan satırlara karşılık gelen B sütunundaki isimleri M7 hücresinden başlayarak sırayla aşağı doğru yazdırıyorum,

yardım istediğim konu ise, makronun M7 hücresinden M18 hücresine kadar max 12 adet veri girişi yapmasını, bulunan veri 12 adetten fazla ise 12 adet (M18 hücresine kadar) veri girişi yaptıktan sonra girilebilecek maksimum isim sayısını aştınız şeklinde bir mesaj vererek M18 den aşağıya başka veri girmemesini istiyorum. (M19 da başka bilgiler var durmazsa üzerine yazıyor)

Yardımlarınız için şimdiden teşekkürler

Sub doluysa_al ()
Sheets("Sayfa2").Range("M7:M17").ClearContents
Dim s1 As Worksheet: Dim i As Integer
Set s1 = Sheets("Sayfa2")
son = Cells(65336, "H").End(3).Row
sat = 7
For i = 3 To son
If Range("H" & i) > 0 Then
Range("M" & sat) = Range("B" & i)
sat = sat + 1
End If
Next i
End Sub
 
sat = sat + 1 ifadesinin altına aşağıdaki satırı yazıp deneyiniz.

If sat = 19 Then Exit For
 
sat = sat + 1 ifadesinin altına aşağıdaki satırı yazıp deneyiniz.

If sat = 19 Then Exit For

Çok teşekkürler, sorunumu çözdü, 19. satıra yazmıyor, ancak sınırı aşarsa, bunu belirten bir uyarı mesajı da alabilirsem çok sevinirim
tekrar teşekkürler
 
Deneyiniz.

If sat = 19 Then
MsgBox "Son satıra ulaştınız!", VbCritical
Exit For
End If
 
Uyguladığınız halini paylaşınız. Sanırım hatalı uygulamışsınız.
 
Bu satırları eklediğimde

Compile error:
Next witout For

hata mesajı alıyorum

Öncelikle bu saatte cevap veriğiniz için çok teşekkür ederim,
aşağıdaki şekilde ekledim.
tekrar teşekkür ederim.

Sub doluysa_al ()
Sheets("Sayfa2").Range("M7:M17").ClearContents
Dim s1 As Worksheet: Dim i As Integer
Set s1 = Sheets("Sayfa2")
son = Cells(65336, "H").End(3).Row
sat = 7
For i = 3 To son
If Range("H" & i) > 0 Then
Range("M" & sat) = Range("B" & i)
sat = sat + 1
If sat = 19 Then
MsgBox "Son satıra ulaştınız!", VbCritical
Exit For
End If
Next i
End Sub
 
İlk IF bloğunu kapatmamışsınız. Sorun bundan kaynaklanıyor.

Deneyiniz.

C++:
Sub doluysa_al ()
Sheets("Sayfa2").Range("M7:M17").ClearContents
Dim s1 As Worksheet: Dim i As Integer
Set s1 = Sheets("Sayfa2")
son = Cells(65336, "H").End(3).Row
sat = 7
For i = 3 To son
If Range("H" & i) > 0 Then
Range("M" & sat) = Range("B" & i)
sat = sat + 1
End If
If sat = 19 Then
MsgBox "Son satıra ulaştınız!", VbCritical
Exit For
End If
Next i
End Sub
 
İlk IF bloğunu kapatmamışsınız. Sorun bundan kaynaklanıyor.

Deneyiniz.

C++:
Sub doluysa_al ()
Sheets("Sayfa2").Range("M7:M17").ClearContents
Dim s1 As Worksheet: Dim i As Integer
Set s1 = Sheets("Sayfa2")
son = Cells(65336, "H").End(3).Row
sat = 7
For i = 3 To son
If Range("H" & i) > 0 Then
Range("M" & sat) = Range("B" & i)
sat = sat + 1
End If
If sat = 19 Then
MsgBox "Son satıra ulaştınız!", VbCritical
Exit For
End If
Next i
End Sub

Tekrar çok teşekkür ederim,
iyi geceler ve sağlıklı günler dilerim
 
Geri
Üst