• DİKKAT

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

Birden Fazla Excel Sayfasına Satır Ekleme

Katılım
23 Şubat 2010
Mesajlar
90
Excel Vers. ve Dili
Excel 2007/ İngilizce
Herkese Selamlar,

Aşağıda gördüğünüz kodu kullanarak excel çalışma kitabımın tüm sayfalarında 4. satırın altına bir satır daha eklemek istiyorum ve bunu 3. sayfadan başlayıp 17. sayfaya kadar yapmak istiyorum.

Fakat kodu çalıştırdığım zaman "Run-time Error '9': Subscript out of range" hatası alıyorum. Kodun "Sheets("a").select kısmında bir hata var kanısındayım ama çözüm üretemedim.

Yardımcı olabilirseniz sevinirim. Şimdiden teşekkürler.

Kod:
Sub eklee()
Dim i As Byte
Dim a As String
i = 3
For i = 3 To 17
a = "Sheet" & i
Sheets("a").Select
Rows(4).Select
Selection.EntireRow.Insert
Next i
End Sub
 
Böyle deneyin. Ayrıca sayfa sayılarınızın 17 adet olduğundan emin olun.
Kod:
Sub eklee()
Dim i As Byte
Dim a As String
i = 3
For i = 3 To 17
Sheets(i).Rows(4).EntireRow.Insert
Next i
End Sub
 
Hamitcan,

Yardım için teşekkür ederim. Sanırım farkı yaratan "Sheets(i)" ifadesi.
 
Kod:
Sheets(a).Select
dese idiniz sizinki de çalışırdı...

ama hamitcan bey'in yazdığı kodun daha "nezih" (frenkler "elegant code" diyorlar) ve kod tekniğine uygun olduğu, benim gibi orta karar bilgili biri için dahi, aşikar...
 
Kod:
Sheets(a).Select
dese idiniz sizinki de çalışırdı...

ama hamitcan bey'in yazdığı kodun daha "nezih" (frenkler "elegant code" diyorlar) ve kod tekniğine uygun olduğu, benim gibi orta karar bilgili biri için dahi, aşikar...

Mancubus,

dediğinize katılıyorum. ben de acemi olduğum için bu tarz nüanslara da özen göstermeye gayret ediyorum. Ancak ifade ettiğiniz şekilde denemiş olmama rağmen başarılı sonuç elde edemedim.

Bunun sebebi kanımca sayfa ismi ile (Name), sayfanın asıl ismi ((Name)) arasındaki fark diye düşünüyorum. Çalışmamdaki sayfa isimleri farklı ve belli bir düzene oturmadığı için asıl sayfa isimlerini kullanmak istemiştim...
 
o isimde sayfa bulamaz ise elbette hata verecektir.

ancak sizin örnekte "Sheet" ile başladığı için sondaki rakamları değişkene atamışsınız.
a = "Sheet" diyerek VBA'nin metinleri ayırdetmesi için gerekli olan çift tırnakı eklemişsiniz.
(özellikle gerekmedikçe artık tırnak kullanmamak lazım. gerektiğinde de zaten (""" & a & """) vb vb kullanılmakta.)
Sheets("a") dediğinizde VBA "a" isminde sheet arar, a değişkenine bağlı olarak değişen sayfaları değil.

hamitcan bey sayfa index'ini kullanmış. bu kodda sahfa isimlerinin ne olduğu önemli değildir.
çalışma kitabındaki sayfalar, en soldakinden başlayarak, 1'den kitaptaki toplam sayfa sayısına kadar sıra numarası alırlar.
 
Geri
Üst