• DİKKAT

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

Otomatik sekme açtırma ...

Katılım
11 Eylül 2006
Mesajlar
29
Excel Vers. ve Dili
excel 2003
İki adet sekmem var.
1.sinde sıra ile
100
200
300
400
....
1500
e kadar bir satırda numaralar var.
2.sekmemde ise bir tablom var

Yapmak istediğim
Butona tıklayında 1.sekmemdeki her satırdaki isimle yeni sekme açılp içlerine 2. sekmedeki tablo yazılsın.

Yardımda bulunanlara şimdiden teşekkürler.
 
Aşağıdaki gibi deneyin.

Kod:
Sub sayfaolustur()
Application.ScreenUpdating = False
For a = 1 To Sheets(1).[a65536].End(3).Row
Sheets(2).Copy After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = Sheets(1).Cells(a, "a")
Next
End Sub
 
Merhaba Levent Bey,
İkinci kez butona bastığımda hata veriyor.
Aynı sayfa isimleri varsa, hata vermemesini sağlayabilir miyiz ?

Teşekkür ederim.
 
İkinci kez mevcutsa ne işlem yapılacaktır.
 
İlk butona bastığımda A sütunundaki veriler için yeni birer sayfa açacak, ki bunu zaten yapıyor.
Eğer ikinci kez butona bastığımda, sütuna yeni eklenen veriler varsa ve A sütununda bulunan veri için daha önce oluşturulan bir sayfa mevcut ise; mevcut eklenen verileri hem daha önce açılan ilgili sayfalara aktaracak, hem de yeni sayfalar oluşmuşsa, sütundaki ilgili verileri oluşturulan bu sayfalara aktaracak.

Kısaca; yeni eklenen bir veri varsa zaten yeni bir sayfa açıyor, ama daha önceden açılan bir sayfa var ise üzerine yazsın istiyorum.
 
Merhaba,
Levent Bey'in koduna aşağıdaki gibi bir ek yapınca sanırım istediğiniz gibi oluyor. Sayfa1 ve Sayfa2'nin adını kendi sayfalarınıza uyarlayın. Ya da ilk halindeki gibi sayısal değerleri girin.
Kod:
Sub sayfaolustur()
Dim knt As Boolean
Application.ScreenUpdating = False
For x = 1 To Sheets("Sayfa1").[a65536].End(3).Row
knt = False
For Each syf In Worksheets
If Sheets("Sayfa1").Cells(x, "a").Text = syf.Name Then
Sheets("Sayfa2").Cells.Copy syf.Cells
knt = True
Exit For
End If
Next
If knt = False Then
Sheets("Sayfa2").Copy After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = Sheets("Sayfa1").Cells(x, "a")
End If
Next
Sheets("Sayfa1").Select
End Sub
 
Evet Mustafa bey, istediğim tam olarak buydu. Teşekkür ederim.

Peki, sütundaki veriye göre açılan sayfalara da, bulunan verilerin olduğu satırları kopyalayabilir miyiz ?
Bir de sütunda bir veriyi manule olarak sildiğimde o veriye ait sayfayı nasıl silebiliriz ?
 
Evet Mustafa bey, istediğim tam olarak buydu. Teşekkür ederim.

Peki, sütundaki veriye göre açılan sayfalara da, bulunan verilerin olduğu satırları kopyalayabilir miyiz ?
Bir de sütunda bir veriyi manule olarak sildiğimde o veriye ait sayfayı nasıl silebiliriz ?
Bunun için çeşitli alternatifler düşünülebilir. Aklıma gelen en garanti yol DoubleClick olayı... Verileri silmek için DoubleClick'i kullanmalısınız. Eğer o isimde sayfa varsa sayfayı ve hücreyi siler.
Diğer sorunuz için daha önce verdiğim copy kısmı yerine bul ekle kodlarını eklemeniz yeterli...
Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("a1:a" & [a65536].End(3).Row)) Is Nothing Then Exit Sub
If Target = "" Then Exit Sub
Cancel = True
For Each syf In Worksheets
If Target.Text = syf.Name Then
syf.Delete
Target = ""
Exit For
End If
Next
End Sub
 
Geri
Üst