Herkese merhaba,

Yazmis oldugum VBA'yi gelirstirmek istiyorum ancak nasil yapacagim konusunda bilgim yok. Yardimci olursaniz sevinirim.

Kodlamadaki amacim su sekilde. Ekteki fotoda da göreceginiz gibi 4 adet sekme (sheet) bulunmakta. 4. sekmede butona basinca diger üc sekmenin isimlerini benim belirledigim hücreye (örnek: D5'den itibaren) yazmasini ve bitonun bulundugu sayfa'nin ismini yazmamasi gerekiyor. Ancak benim kodumda direk A2'den baslamakta ve bütün sekmelerin isimlerini yazmakta.
Asagida kodu bulabilirisniz.
Yardimlariniz icin simdiden tesekkürler.


Sub PageNames()

Dim IngSheets As Long

IngSheets = ThisWorkbook.Sheets.Count

For i = 1 To IngSheets

'ThisWorkbook.Sheets("Tabelle1").C


ActiveWorkbook.ActiveSheet.Cells(1 + i, 1) = ThisWorkbook.Sheets(i).Name

Next i

End Sub

 

if yapısı ekleyeceksin. "Eğer Sheets(i) sayfası ile aktif sayfa adı aynı ise hiçbir şey yapma, değilse (else) sayfa adını yaz."

Dim IngSheets As Long

IngSheets = ThisWorkbook.Sheets.Count

For i = 1 To IngSheets

'ThisWorkbook.Sheets("Tabelle1").C

If ThisWorkbook.Sheets(i).Name = ActiveWorkbook.ActiveSheet.Name Then

' Burada hiçbir şey yapılmayacak

Else

ActiveWorkbook.ActiveSheet.Cells(1 + i, 1) = ThisWorkbook.Sheets(i).Name

End If
Next i


yukarıdakini yaparsan bulunduğun sayfa adını yazmaz ama ilgili hücre boş kalır. yani arada bir sayfa ise boşluk görünür. bunun sebebi de sayfa isimleri için kullandığın indeks ile (sheets(i) indeksi yani), sayaç için kullandığın indeks aynı.

bunun yerine j değişkeni tanımlayıp 'Else' yapısının altına j = j + 1 ifadesi eklersen sayaç yazdırdığı sayfa için bir artar ve boş sayfa kalmaz.

Kısacası;

Else

ActiveWorkbook.ActiveSheet.Cells(j, 1) = ThisWorkbook.Sheets(i).Name
j = j + 1

End If

şeklinde olmalı.

himmet dayi
1

mobil görünümden çık