• DİKKAT

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

vba içinde son satır yazımı

Katılım
25 Ocak 2006
Mesajlar
763
Excel Vers. ve Dili
2019 tr
Kod:
Set HG = Sheets("HÜCRE GİRİŞ"): Set ko = Sheets("KOORO")
bekle = "DUR"
Application.ScreenUpdating = False
Application.DisplayAlerts = False
    For sat = 1 To 30
        ko.[V3] = HG.Cells(sat, "Q")
        ActiveSheet.Copy
        belge = ThisWorkbook.Path & "\İLLER" & "\" & ko.[x2].Value & "\" & Replace(Replace(HG.Cells(sat, "Y").Value, ":", "="), "/", "&") & ".xlsx"
        ActiveWorkbook.SaveAs belge
        ActiveWorkbook.Close

30 yerine HG.Cells(sat, "Y") bu sütundaki son dolu hücre nasıl yazdırılır. (not: dolu olmasa da aşağı doğru formül var aslında hücrelerde ve 50 satır kontrol etse yeter.)
 
Merhaba,
Şunu deneyiniz:
HG.Cells(Rows.Count, "Q").End(3).Row

Bir de if sorgusu ekleyebilirsiniz
if HG.Cells(sat, "Q").Value = "" then gibi
 
Kod:
Public bekle
Sub DIŞARI_il_SUNU()
Set HG = Sheets("HÜCRE GİRİŞ"): Set ko = Sheets("KOORO")
bekle = "DUR"
Application.ScreenUpdating = False
Application.DisplayAlerts = False
    For sat = 1 To HG.Cells(Rows.Count, "Q").End(3).Row
        ko.[V3] = HG.Cells(sat, "Q")
        ActiveSheet.Copy
        belge = ThisWorkbook.Path & "\İLLER" & "\" & ko.[x2].Value & "\" & Replace(Replace(HG.Cells(sat, "Y").Value, ":", "="), "/", "&") & ".xlsx"
        ActiveWorkbook.SaveAs belge
        ActiveWorkbook.Close
    Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
bekle = ""
MsgBox "İllerin Dışa Aktarımı Tamamlandı", vbInformation
End Sub

evet oldu. ama hata verdi ve ben de mantığı yeni çözdüm. son hücreyi ben de yazmışım aslında ama hata başka yerdenmiş. anlatayım ve tam kodu yazayım. hücre girişi sekmesinde q sütununu sırayla kooro sekmesine v3 e yazarak sırayla dışarı aktarıyor. isim olarak da y sütunundan alıyor. hg deki y sütununda son hücreye geldiği zaman tekrar q sütunda sıradaki veriyi yazınca ve y sütununda karşılığını bulamayınca sıkıntı çıkarıyor
 
O zaman siz de Y sütunundaki son satırı alın: HG.Cells(Rows.Count, "Y").End(3).Row
Ya da yukarıda belirttiğim gibi if sorgusu kullanabilirsiniz.
Kod:
if HG.Cells(sat, "Y").Value <> "" then
    kayıt kodları
end if
gibi
 
O zaman siz de Y sütunundaki son satırı alın: HG.Cells(Rows.Count, "Y").End(3).Row
Ya da yukarıda belirttiğim gibi if sorgusu kullanabilirsiniz.
Kod:
if HG.Cells(sat, "Y").Value <> "" then
    kayıt kodları
end if
gibi

nereye yazacağımı anlamadım. bir kaç yer denedim ama olmadı. ekleyebilir misiniz koda?
 
Y sütunundaki son satıra kadar işlem yapması için for döngüsünün başına yazacaksınız. For sat = 1 To HG.Cells(Rows.Count, "Y").End(3).Row

Eğer if sorgusunu nasıl kuracağınızı çözemediyseniz o da şu şekilde olabilir:
Kod:
For sat = 1 To HG.Cells(Rows.Count, "Q").End(3).Row
    If HG.Cells(sat, "Y").Value <> "" Then
        ko.[V3] = HG.Cells(sat, "Q")
        ActiveSheet.Copy
        belge = ThisWorkbook.Path & "\İLLER" & "\" & ko.[x2].Value & "\" & Replace(Replace(HG.Cells(sat, "Y").Value, ":", "="), "/", "&") & ".xlsx"
        ActiveWorkbook.SaveAs belge
        ActiveWorkbook.Close
    End If
Next
 
Y sütunundaki son satıra kadar işlem yapması için for döngüsünün başına yazacaksınız. For sat = 1 To HG.Cells(Rows.Count, "Y").End(3).Row

Eğer if sorgusunu nasıl kuracağınızı çözemediyseniz o da şu şekilde olabilir:
Kod:
For sat = 1 To HG.Cells(Rows.Count, "Q").End(3).Row
    If HG.Cells(sat, "Y").Value <> "" Then
        ko.[V3] = HG.Cells(sat, "Q")
        ActiveSheet.Copy
        belge = ThisWorkbook.Path & "\İLLER" & "\" & ko.[x2].Value & "\" & Replace(Replace(HG.Cells(sat, "Y").Value, ":", "="), "/", "&") & ".xlsx"
        ActiveWorkbook.SaveAs belge
        ActiveWorkbook.Close
    End If
Next


sorunsuzzzz. teşekkürler
 
Rica ederim, iyi çalışmalar...
 
Geri
Üst