Satır eklemek

gundoganmusa

Altın Üye
Katılım
27 Haziran 2014
Mesajlar
18
Excel Vers. ve Dili
Office 2016 + Office 365
Altın Üyelik Bitiş Tarihi
04-07-2025
Merhabalar,

excelde her 2 satırdan sonra 3 satır ekleme nasıl yaparım,
1 1.satır
2 2.satır
3 1.eklenen
4 2.eklemen
5 3.eklenen
6 3.satır

yapmak istediğim tabi listem uzun
Teşekkürler
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,744
Excel Vers. ve Dili
Excel 2019 Türkçe
Chatgpt...
excelde her 2 satırdan sonra 3 satır ekleme nasıl yaparım,

ChatGPT:
Excel'de her 2 satırdan sonra 3 satır eklemek için aşağıdaki adımları izleyebilirsiniz:
  1. Yeni Satırları Manuel Ekleyerek Yapma:
    • Excel dosyanızda ekleme yapacağınız hücreyi seçin.
    • İlk başta 2 satırın sonrasını seçin (örneğin, 2. satırın altındaki 3. satırı).
    • Sağ tıklayın ve "Ekle" seçeneğini seçin.
    • 3 satır eklemek için bu işlemi 2 satırda bir tekrar edin. Excel, her defasında yeni satırları ekleyecektir.
  2. Makro ile Otomatik Ekleme: Eğer her 2 satırdan sonra 3 satır eklemeyi sürekli yapacaksanız, VBA (Visual Basic for Applications) kullanarak bunu otomatikleştirebilirsiniz.
Aşağıda, her 2 satırdan sonra 3 satır ekleyecek bir VBA kodu örneği bulabilirsiniz:
  1. Excel dosyanızı açın.
  2. Alt + F11 tuşlarına basarak VBA editorüne girin.
  3. Menüden Insert > Module seçeneğini tıklayın.
  4. Aşağıdaki kodu kopyalayın ve yeni modüle yapıştırın:
vba
KopyalaDüzenle
Sub SatirEkle()
Dim i As Long
Dim satirSayisi As Long

' Aktif sayfadaki toplam satır sayısını al
satirSayisi = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row

' Her 2 satırda bir 3 satır ekle
For i = satirSayisi To 1 Step -2
Rows(i + 1 & ":" & i + 3).Insert Shift:=xlDown
Next i
End Sub
  1. Kodunuzu çalıştırmak için F5 tuşuna basabilirsiniz.
Bu kod, aktif çalışma sayfasındaki mevcut verilere göre, her 2 satırda bir 3 yeni satır ekler.
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
772
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Sub HerIkiSatirdanSonraUcSatirEkle()
Dim i As Long
Dim LastRow As Long

LastRow = Cells(Rows.Count, 1).End(xlUp).Row

For i = LastRow To 2 Step -2
Rows(i + 1 & ":" & i + 3).Insert
Next i
End Sub
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,519
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,
Dosyadaki B sütunundaki formülü inceleyin.
B1 deki formülü A sütunundaki satır sayısı kadar uzatın.
Sonra B sütununda tüm formüllerden kurtarın.
B sütununu kopyalayın ve bunu 3 kere tekrarlayın (3 satır boşluk olacağı için)
Sonra A ve B sütununu B sütununa göre sıralatın.
B sütununu silin.
 

Ekli dosyalar

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,519
Excel Vers. ve Dili
Ofis 365 Türkçe
Benim önerim de alternatif olsun, ben yazarken yanıtlar gelmiş :)
 

gundoganmusa

Altın Üye
Katılım
27 Haziran 2014
Mesajlar
18
Excel Vers. ve Dili
Office 2016 + Office 365
Altın Üyelik Bitiş Tarihi
04-07-2025
Merhaba,
Dosyadaki B sütunundaki formülü inceleyin.
B1 deki formülü A sütunundaki satır sayısı kadar uzatın.
Sonra B sütununda tüm formüllerden kurtarın.
B sütununu kopyalayın ve bunu 3 kere tekrarlayın (3 satır boşluk olacağı için)
Sonra A ve B sütununu B sütununa göre sıralatın.
B sütununu silin.

Hocam anlamadım maalesef,
93 satırım var
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,519
Excel Vers. ve Dili
Ofis 365 Türkçe
Hocam anlamadım maalesef,
93 satırım var
Gönderdiğim dosyada B sütunundaki formülü yazacaksınız. bunu a sütunundaki veri kadar uzatacaksınız.
Sonra B sütununu kopyalayıp değer olarak yapıştıracaksınız.
Sonra B sütununu kopyalayıp b sütununun altına 2 kere yapıştıracaksınız.
Örnek dosyada H ve I gibi olacak.
sonra B sütununa göre sıralama yapacaksınız.
Yani B sütunu dosyadaki I sütunu gibi olacak.
 
Katılım
11 Temmuz 2024
Mesajlar
308
Excel Vers. ve Dili
Excel 2021 Türkçe
Deneyip sonucu paylaşabilir misiniz;

Kod:
Sub HerIkiSatirdanSonraUcSatirEkle()
    Dim i As Long
    Dim LastRow As Long
    
    Application.ScreenUpdating = False
    
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    For i = LastRow To 3 Step -2
        Rows(i + 1).Resize(3).Insert Shift:=xlDown
    Next i
    
    Application.ScreenUpdating = True
End Sub
 

gundoganmusa

Altın Üye
Katılım
27 Haziran 2014
Mesajlar
18
Excel Vers. ve Dili
Office 2016 + Office 365
Altın Üyelik Bitiş Tarihi
04-07-2025
Deneyip sonucu paylaşabilir misiniz;

Kod:
Sub HerIkiSatirdanSonraUcSatirEkle()
    Dim i As Long
    Dim LastRow As Long
   
    Application.ScreenUpdating = False
   
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row
   
    For i = LastRow To 3 Step -2
        Rows(i + 1).Resize(3).Insert Shift:=xlDown
    Next i
   
    Application.ScreenUpdating = True
End Sub

Hocam denedim hata mesajı vermedi ama sayfada değişiklik yapmadı
 
Katılım
11 Temmuz 2024
Mesajlar
308
Excel Vers. ve Dili
Excel 2021 Türkçe
Hocam denedim hata mesajı vermedi ama sayfada değişiklik yapmadı
Şöyle
Kod:
Sub HerIkiSatirdanSonraUcSatirEkle()
    Dim i As Long
    Dim LastRow As Long
    Dim EklenenSatir As Long
    
    Application.ScreenUpdating = False
    
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row
    EklenenSatir = 0
    
    For i = LastRow To 1 Step -2
        If i + EklenenSatir > 2 Then
            Rows(i + EklenenSatir + 1).Resize(3).Insert Shift:=xlDown
            EklenenSatir = EklenenSatir + 3
        End If
    Next i
    
    Application.ScreenUpdating = True
    
    MsgBox "İşlem tamamlandı!", vbInformation
End Sub
ya da şöyle dener misiniz;

Kod:
Sub HerIkiSatirdanSonraUcSatirEkle2()
    Dim i As Long
    Dim LastRow As Long
    Dim SatirSayaci As Long
    
    Application.ScreenUpdating = False
    
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row
    SatirSayaci = 0
    
    i = 1
    Do While i <= LastRow + SatirSayaci
        SatirSayaci = SatirSayaci + 1
        
        If SatirSayaci = 2 Then
            Rows(i + 1).Resize(3).Insert Shift:=xlDown
            i = i + 3
            LastRow = LastRow + 3
            SatirSayaci = 0
        End If
        
        i = i + 1
    Loop
    
    Application.ScreenUpdating = True
    
    MsgBox "İşlem tamamlandı!", vbInformation
End Sub
 

gundoganmusa

Altın Üye
Katılım
27 Haziran 2014
Mesajlar
18
Excel Vers. ve Dili
Office 2016 + Office 365
Altın Üyelik Bitiş Tarihi
04-07-2025
Şöyle
Kod:
Sub HerIkiSatirdanSonraUcSatirEkle()
    Dim i As Long
    Dim LastRow As Long
    Dim EklenenSatir As Long
   
    Application.ScreenUpdating = False
   
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row
    EklenenSatir = 0
   
    For i = LastRow To 1 Step -2
        If i + EklenenSatir > 2 Then
            Rows(i + EklenenSatir + 1).Resize(3).Insert Shift:=xlDown
            EklenenSatir = EklenenSatir + 3
        End If
    Next i
   
    Application.ScreenUpdating = True
   
    MsgBox "İşlem tamamlandı!", vbInformation
End Sub
ya da şöyle dener misiniz;

Kod:
Sub HerIkiSatirdanSonraUcSatirEkle2()
    Dim i As Long
    Dim LastRow As Long
    Dim SatirSayaci As Long
   
    Application.ScreenUpdating = False
   
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row
    SatirSayaci = 0
   
    i = 1
    Do While i <= LastRow + SatirSayaci
        SatirSayaci = SatirSayaci + 1
       
        If SatirSayaci = 2 Then
            Rows(i + 1).Resize(3).Insert Shift:=xlDown
            i = i + 3
            LastRow = LastRow + 3
            SatirSayaci = 0
        End If
       
        i = i + 1
    Loop
   
    Application.ScreenUpdating = True
   
    MsgBox "İşlem tamamlandı!", vbInformation
End Sub

Hocam bu kod 2. satırın altına 3 boş satır ekledi gerisini yapmadı,

Birde örnek olarak "5. satırdan başla 170. satıra kadar" diye belirleye bilirmiyim
teşekkürler
 
Katılım
11 Temmuz 2024
Mesajlar
308
Excel Vers. ve Dili
Excel 2021 Türkçe
Evet belirleyebilirsiniz hocam;

Kod:
Sub HerIkiSatirdanSonraUcSatirEkle()
    Dim i As Long
    Dim BaslangicSatiri As Long
    Dim BitisSatiri As Long
    Dim EklenenSatirSayisi As Long
    
    Application.ScreenUpdating = False
    BaslangicSatiri = 5   
    BitisSatiri = 170     
    EklenenSatirSayisi = 0
    
    i = BitisSatiri
    
    Do While i >= BaslangicSatiri
        If (i - BaslangicSatiri + 1) Mod 2 = 0 Then
            Rows(i + EklenenSatirSayisi + 1).Resize(3).Insert Shift:=xlDown
            EklenenSatirSayisi = EklenenSatirSayisi + 3
            i = i - 2
        Else
            i = i - 1
        End If
    Loop
    
    Application.ScreenUpdating = True
    
    MsgBox "İşlem tamamlandı! Toplam " & EklenenSatirSayisi & " satır eklendi.", vbInformation
End Sub
 

gundoganmusa

Altın Üye
Katılım
27 Haziran 2014
Mesajlar
18
Excel Vers. ve Dili
Office 2016 + Office 365
Altın Üyelik Bitiş Tarihi
04-07-2025
Evet belirleyebilirsiniz hocam;

Kod:
Sub HerIkiSatirdanSonraUcSatirEkle()
    Dim i As Long
    Dim BaslangicSatiri As Long
    Dim BitisSatiri As Long
    Dim EklenenSatirSayisi As Long
   
    Application.ScreenUpdating = False
    BaslangicSatiri = 5  
    BitisSatiri = 170    
    EklenenSatirSayisi = 0
   
    i = BitisSatiri
   
    Do While i >= BaslangicSatiri
        If (i - BaslangicSatiri + 1) Mod 2 = 0 Then
            Rows(i + EklenenSatirSayisi + 1).Resize(3).Insert Shift:=xlDown
            EklenenSatirSayisi = EklenenSatirSayisi + 3
            i = i - 2
        Else
            i = i - 1
        End If
    Loop
   
    Application.ScreenUpdating = True
   
    MsgBox "İşlem tamamlandı! Toplam " & EklenenSatirSayisi & " satır eklendi.", vbInformation
End Sub

Hocam seni çok uğraştırdım kusura bakma çalışmadı buda
Bende bir yandan verdiğiniz fikirlerle yapay zekayla denedim sonunda oldu,

DeepSeek

Sub SatirEkle()
Dim i As Long
Dim baslangicSatir As Long
Dim bitisSatir As Long

' Sadece 20-100 arasındaki satırlara uygula:
baslangicSatir = 4
bitisSatir = 75

' B sütununda en son dolu satırı kontrol et (opsiyonel, sınırlama için)
Dim sonDoluSatir As Long
sonDoluSatir = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row

' Bitiş satırı, son dolu satırdan küçükse ayarla
If bitisSatir > sonDoluSatir Then bitisSatir = sonDoluSatir

' Tersten döngü (150'den 5'e kadar, 2'şer adımla)
For i = bitisSatir To baslangicSatir Step -2
' 3 boş satır ekle (i+1'den i+3'e kadar)
Rows(i + 1 & ":" & i + 3).Insert Shift:=xlDown
Next i
End Sub
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,519
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba, Dener misiniz.
1. satırda başlık olduğunu varsayarak kodu ona göre düzenledim.
Eğer başlık yoksa i=4 değil i=3 olarak kodda değişiklik yapınız.

Kod:
Sub ekle()

Dim i As Long
Dim a As Integer
Dim b As Integer
Dim j As Long

a = 2
b = 5
i = 4

Do
    j = i + a
    Rows(i & ":" & j).EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
    i = i + b
Loop Until Cells(i, "A") = ""

End Sub
 
Üst