• DİKKAT

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

alttaki satır boş ise sonrakini kopyala ve gönder

Katılım
12 Şubat 2007
Mesajlar
144
Excel Vers. ve Dili
2003
Aşağıdaki makro ile belirli bir aralıktaki veriyi veritabanına gönderiyorum ancak veriler bazen tek satır bazen 2 bazen 3 bazen 4 ,5,6 satıra kadar doluyor.Her seferinde 6 satır yolldığımdan(aslındailk 1 veya 2. satır dolu bazende 3,4,5 gibi) veritabanı excel dosyası bir süre sonra zorlanıyor.Bunu önlemek için kaç satır dolu ise o kadarını yollamak istiyorum.Aşağıdaki makroyu buna göre yeniden nasıl yazabiliriz.?Teşekkür ediyorum.Hayırlı ramazanlar.
Private Sub CommandButton1_Click()
Range("DJ157:GJ162").Select(ÖNCE DJ157 GJ157 BAKACAK ALTTAKİ 5 SATIR BOŞ İSE TEK SATIR KOPYALAYACAK(DAHA SONRA DJ158:GJ158)BUDA DOLU İSERANGE(DJ157:GJ158) YOLLAYACAK.Range("DO157:DO162")hücre aralığına bakabilir yani her seferinde 157,158,...162 kontrol etsin ve hangisi dolu ise sadece o satırı yollasın.
Selection.Copy
ChDir "C:\Documents and Settings\happy\2004"
Workbooks.Open Filename:="C:\Documents and Settings\happy\2004\VER"
Range("A7").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.EntireRow.Insert
Range("A8").Select
ActiveWorkbook.Save
ActiveWindow.Close
Range("D6").Select
End If
CommandButton4.BackColor = RGB(500, 150, 50)
son:
End Sub
 
Son düzenleme:
Selamlar,

Örnek dosya eklerseniz çözüme ulaşmak daha kolay olacaktır.
 
Selamlar,

Dosyanızı inceledim ama hangi veri nereye aktarılacak çözemedim. Açıklarsanız yardımcı olmaya çalışırız.
 
selam

Korhan bey formda veri girişi yapıldığında veriler DJ157:GJ165 arasına eşittir ile geliyor istediğim sadece bu raporda bazen sadece Dj157:GJ157 ye veri giriliyor.ilk satır yani.toplam 6 satır var her vardiyede kaç satır girileceği belli olmuyor.Şöyle yapabiliriz bu aralıkta yani dn157 ile dn162 hangi hücre dolu ise o satırı kopyalayacak.örneğin dn 157 dolu ise dj157:gj157 aralığını kopyalayacak.Diğer kısmı önemli değil diğer kısımlara bakmayın kafanız karışmasın.İlginiz için teşekkürler.
 
Selamlar,

Sn. MUTLUXXX,

Dosyanızın detayını bilemediğim için siz yardımcı bir kod öneriyorum. Sanırım kendinize uyarlayabilirsiniz. Koddaki mantığı sadece kendi kodlarınızın arasına uyarlayacaksınız.

Kod:
Sub AKTAR()
    Dim X As Integer, ADRES As String
    
    For X = 162 To 157 Step -1
        If Cells(X, "DN") <> "" Then
        ADRES = "DJ157:GJ" & X
        GoTo Devam
        End If
    Next
Devam:
    If ADRES <> "" Then
    Range(ADRES).Copy
    Else
    MsgBox "Aktarılacak veri bulunamamıştır !", vbCritical
    Exit Sub
    End If
End Sub
 
Sayın Korhan

Teşekkür ediyorum.
 
Geri
Üst