for next ile veri aktarmada boş satırlar

burhancavus61

Altın Üye
Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
03.11.2024
aktar sayfasındaki o sütunu evet olan tc noları b sayfası B sütununa alt alta aktarmak istiyorum ama boşluklar oluşuyor. b sütununa sıradan nasıl aktarabilirim kodun o kısmını düzenleyemedim.
 

Ekli dosyalar

Cengiz Demir

Altın Üye
Katılım
29 Haziran 2018
Mesajlar
604
Excel Vers. ve Dili
Office 365 TR (32 Bit)
Altın Üyelik Bitiş Tarihi
05-04-2025
Kodunuzdaki ilgili bölümü aşağıdaki gibi değiştirin.
x=3 demişsiniz o yüzden 3. satırdan başlıyor. 2. satırdan başlamasını istiyorsanız 2 olarak değiştirin. :)

C++:
    For i = 2 To 100
        If s1.Cells(i, "O") = "EVET" Then
        s2.Cells(x, "B").Value = s1.Cells(i, "B")
        x = x + 1
        End If
    Next i
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,371
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Döngüyü yanlış kurmuşsunuz. x değerine İ değerini ekliyorsunuz.
Başlangıçta x değerine 1 atarsanız, aşağıdaki kodları kullanabilirsiniz.

Kod:
    For i = 2 To 100
        If s1.Cells(i, "O") = "EVET" Then
            x = x + 1
        s2.Cells(x, "B").Value = s1.Cells(i, "B")
        End If
    Next i
Geç kalmışım :)
 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Alternatif olarak FİLTRE yöntemiyla aktarım tekniği kullanılmıştır. Belki kullanmak istersiniz.

C++:
Option Explicit

Sub Verileri_Aktar()
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
        .DisplayAlerts = False
        .Calculation = xlCalculationManual
    End With
    
    ActiveWorkbook.Unprotect
    
    Sheets("aktar").Range("B2:B" & Rows.Count).ClearContents
    
    With Sheets("veri")
        .Unprotect "61"
        .Range("$B$1:$O$" & Rows.Count).AutoFilter Field:=14, Criteria1:="EVET"
        .Range("B2:B" & .Cells(.Rows.Count, 2).End(3).Row).SpecialCells(xlCellTypeVisible).Copy
         Sheets("aktar").Range("B2").PasteSpecial Paste:=xlPasteValues
         On Error Resume Next
        .ShowAllData
         On Error GoTo 0
        .Protect "61", DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:=True
        .EnableSelection = xlUnlockedCells
    End With
    
    ActiveWorkbook.Protect Structure:=True, Windows:=False
    
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
        .DisplayAlerts = True
        .Calculation = xlCalculationAutomatic
    End With

    MsgBox "Kişiler Bordroya aktarıldı...", vbInformation
End Sub
 

burhancavus61

Altın Üye
Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
03.11.2024
Cevaplarınız için teşekkür ederim sayenizde düzeldi.
 

burhancavus61

Altın Üye
Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
03.11.2024
Teşekkür ederim Korhan hocam deneyeceğim ileride ihtiyacım olabilir hem tekniğini öğrenmiş olurum.
 
Üst