başlattığım döngü boş hücreye geldiğinde durmasın istiyorum?

Katılım
14 Ekim 2006
Mesajlar
408
Excel Vers. ve Dili
excel 2003 TR
selamlar sevgili üstadlar;

aşağıda yazdığım kodlar "x" ile işaretlenen satırlardaki bilgileri başka bir sekmeye almama yarıyor. ancak kodlar çalışırken ilk boş hücreye gelindiğinde for döngüsü duruyor. yani aralıklı olarak işaretleme yapıldığında kodlar istediğim işlemi tamamlayamamış oluyor. kodlar üzerinde nasıl bir değişiklik yapmalıyım sizce??



Kod:
Sub kisi_sec_x()
Set S1 = Sheets("VERİ")
Set s2 = Sheets("FORM")
For m = 2 To [a65536].End(3).Row
If S1.Cells(m, 3) = "X" Then
s2.Cells(3, "d") = S1.Cells(m, "a")
yazdir_selcuk
End If
Next
End Sub
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Gördüğüm kadarıyla kodlarınızda bir problem yok.
yazdir_selçuk kodlarını da ekleyebilirmisiniz?
 
Katılım
14 Ekim 2006
Mesajlar
408
Excel Vers. ve Dili
excel 2003 TR
yazdir_selcuk makrosunun kodları aşağıdadır:

Kod:
Sub yazdir_selcuk()
    Dim Say As Integer
    Say = WorksheetFunction.CountIf([K5:K65536], True)
    If Say = 0 Then
    MsgBox "SAYFA SEÇİMİ YAPILMAMIŞ !" & Chr(10) & "LÜTFEN YAZDIRILACAK SAYFALARI SEÇİNİZ.", vbExclamation, "DİKKAT !"
    Exit Sub
    End If
    For y = 5 To [F65536].End(3).Row
    If Cells(y, 11) = True Then Sheets("" & Cells(y, 6)).PrintOut copies:=2, collate:=True
    Next
End Sub
aslında bu iki soru az önce sorduğum diğer soru ile de alakalı. çünkü checkboxlar ile işlem uzadığı için satır seçme işlemini "X" ile yapmak istedim ancak o zamanda dediğim gibi döngü sorunu ortaya çıktı. yani boş hücreye kadar her şey normal, bulduğu verileri istediğim hücreye atıyor ve yazdır makrosu çalışıyor, ancak her satır işaretlenmemiş ve aralıklı olarak işaretlenmişse hata veriyor??? ilginize teşekkürler, değerli fikirlerinizi bekliyorum...

saygılar...
 
Katılım
7 Aralık 2006
Mesajlar
83
Excel Vers. ve Dili
Excel 2002 ingilizce
for ..to [a65536].End(3).Row

çok çabucak baktım ama sanırım bu değer e kadar çalışıyor.. sorun burda debug et kaç değerini alıyor takip et.. muhtemeleln umduğun değer değil ..
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
yazdir_selcuk makrosunun kodları aşağıdadır:

Kod:
Sub yazdir_selcuk()
    Dim Say As Integer
    Say = WorksheetFunction.CountIf([K5:K65536], True)
    If Say = 0 Then
    MsgBox "SAYFA SEÇİMİ YAPILMAMIŞ !" & Chr(10) & "LÜTFEN YAZDIRILACAK SAYFALARI SEÇİNİZ.", vbExclamation, "DİKKAT !"
    Exit Sub

Büyük ihtimalle kodlarda bu satır çalışmıyor.Dolayısıyla Exit Sub ile makrodan çıkılıyor.Say değişkenini kontrol edebilirsiniz.
 
Katılım
14 Ekim 2006
Mesajlar
408
Excel Vers. ve Dili
excel 2003 TR
for ..to [a65536].End(3).Row

çok çabucak baktım ama sanırım bu değer e kadar çalışıyor.. sorun burda debug et kaç değerini alıyor takip et.. muhtemeleln umduğun değer değil ..

sn cenk bey;

bu konularda çok yeniyim, bilmediğim çok nokta var. ancak, bildiğim kadarıyla yani örneklerde gördüğüm kadarıyla .End(3).Row komutu en son dolu hücreye kadar çalışmasını sağlıyor. (en azından ben öyle biliyorum, forumda öyle bir açıklama okumuştum çünkü). Sorun burda zaten, buraya ne yazmalıyım ki, en son dolu satıra kadar değil mesela B2:B5000 arasında sorgulama yapsın?? bunu nasıl sağlayabilirim? üstelik kod hata vermiyor. bu yüzden debug yapmadım. yani sorunsuz çalışıyor ancak benim istediğim işi yapmıyor??

sevgili üstadlarım, bu konuda fikri olan var mı?
 
Katılım
14 Ekim 2006
Mesajlar
408
Excel Vers. ve Dili
excel 2003 TR
sn ripek;

yazdırma makrosunda bir sorun yok yani işaretli olan satırlardaki kişilerle ilgili bilgileri benim istediğim sayfaya alıyor ve oradan işaretlediğim sayfaları yazdırıyor. yani yazdır makrosunda bir hata yok diye düşünüyorum. ancak şunu gözlemledim;

mesela 1-20nci satırlarda veriler var. 2,3,4,5,9,12 nci satırları işaretleyip makroyu çalıştırdığımda, 2-3-4 ve 5nci satırlarda işlemi yapıyor ve duruyor. yani 9 ve 12nci satırlarda işaretli olmasına rağmen onlara işlem yapmıyor? benim asıl çözmeye çalıştığım problem bu.

birde söylediklerinizi tam olarak anlayamadım, belki sizin önerdiğiniz çözümde bununla alakalıdır ama ben anlayamamışımdır. biraz açarmısınız lütfen?
 
Katılım
7 Aralık 2006
Mesajlar
83
Excel Vers. ve Dili
Excel 2002 ingilizce
koduna baktımda
dikkatlice


Sub kisi_sec_x()
Set S1 = Sheets("VERİ")
Set s2 = Sheets("FORM")
For m = 2 To [a65536].End(3).Row ' to 65536 yazarsan tüm sütunu tarar
If S1.Cells(m, 3) = "X" Then
s2.Cells(3, "d") = S1.Cells(m, "a")
yazdir_selcuk
End If
Next '********* netx m yi dene :) döngü kapansın kapansın *****
End Sub
 
Katılım
14 Ekim 2006
Mesajlar
408
Excel Vers. ve Dili
excel 2003 TR
sayın üstadlar ve değerli arkadaşlarım;

sorunum çözüldü. ilginize teşekkürler sn. cenk bey.

Kod:
For m = 2 To [a65536].End(3).Row
kod satırında " .End(3).Row " kodunu silip satırı

Kod:
For m=2 to 65536
yapınca sorun kalmadı. yani tüm sütunu tarayarak işaretli olan satırları doğru tespit etti... ilgi gösteren herkese teşekkürler..

saygılar.
 
Üst