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
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,330
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
sat = sat + 1 ifadesinin altına aşağıdaki satırı yazıp deneyiniz.

If sat = 19 Then Exit For
 
Katılım
3 Mart 2011
Mesajlar
15
Excel Vers. ve Dili
2007 türkce
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
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,330
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

If sat = 19 Then
MsgBox "Son satıra ulaştınız!", VbCritical
Exit For
End If
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,330
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Uyguladığınız halini paylaşınız. Sanırım hatalı uygulamışsınız.
 
Katılım
3 Mart 2011
Mesajlar
15
Excel Vers. ve Dili
2007 türkce
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
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,330
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
İ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
 
Katılım
3 Mart 2011
Mesajlar
15
Excel Vers. ve Dili
2007 türkce
İ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
 
Üst