1 den n e kadar sekme açma makrosu (1 nolu ilk sekme var iken)

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,648
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
merhaba sayın hocalarım
VERİ sekmesinden ibaret olan sayfamda 1 sekmesini açtım içinde birçok formülü barındırıyor. 1 sekmesi VERİ sekmesinden formülelrden ve kendi içinde formüllerden oluşuyo.
sekmelerim 1 den başlayarak 1 er 1 er artarak seçeceğim bir sayıya kadar örneğin 221 tane adı sayı olan sekme (not : excelin sekme sınırını bilmiyorum)
makro ile bunu nasıl yaparım
en son haliyle sekmelerin VERİ-1-2-3...........221 olmalı (Az önce öğrendim en fazla 255 sekme açabiliyormuşuz)
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
C++:
Sub SayfaEkle()
Dim Ws As Worksheet
Set Ws = Worksheets("1")
For i = 2 To 221
    Ws.Copy After:=Worksheets(i - 1)
    ActiveSheet.Name = i
Next i
End Sub
 

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,648
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
birşey eklemeyi unuttum sayın hocalarım özür dilerim
her sekmenin C3 hücresi de sayfa numarasının adını alacak

örnek 204 sekmesinde C3 = 204 olacak
ayrıca eklenecek sekme sayısını (221) kod içine değil VERİ sekmesinde L2 hücresine yazabilir miyiz. kod öyle yazılsa
 
Son düzenleme:

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,648
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
sorumu biraz değiştirmeye karar verdim hocam
çalışmamdaki VERİ sekmem aynen duruyor ve 1 dediğim sekmenin adını "ŞABLON" diye adlandırdım
yapılacak bir makro ile başlangıç ve bitiş sayısı seçilecek ve arası 1 er artırılarak sekmeler yazlacak
şöyleki
başlangıç = 4 bitiş = 9 yazıp makroyu çalıştırdığımda
ekranında VERİ-ŞABLON-4-5-6-7-8-9 diye sekmeler olcak ve 4-5-6-7-8-9 sekmeleri şablon sekmesinden kopya alınmış olacak ve kopyalanamış her sekmede V3 hücreside o sekmenin adı olcak yani sayısı yazılacak

çünkü az önce 221 adet kopya oluştu sayın hocamdan gelen cevapla ama 2 dakika kadar sürdü haliyle sayfaların oluşması. ben kısım kısım sekmeleri seçerek yaparsam daha iyi sonuç alırım diye düşünüyorum
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
C++:
Sub SayfaEkle()
Dim Ws As Worksheet
    If Not IsNumeric(Worksheets("Veri").Range("L2")) Then Exit Sub
    If Worksheets("Veri").Range("L2") < 2 Then Exit Sub
    Set Ws = Worksheets("1")
    For i = 2 To Worksheets("Veri").Range("L2")
        Ws.Copy After:=Worksheets(i - 1)
        [C3] = i
        ActiveSheet.Name = i
    Next i
End Sub
 

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,648
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
sayın Ömer hocam sizden gelen cevap gelmeden isteğimi başka değişiklikler ekledim
lütfen kusuruma bakmayın
şimdilik son isteğim 4 nolu mesajımdır. çok özür dilerim tekrardan
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Sonradan bahsettiğiniz değişiklikler verdiğim kod üzerinde ufak bir uğraşla yapabileceğinize inanıyorum.
3.315 mesajınız var. Benim mesaj sayım 2.972(bu mesaj hariç)
Bence yapabilecek seviyedesiniz.
 

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,648
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
"Veri" sekmesinden C2 hücresine örneğin 4 yazılacak D2 hücresine 9 yazılacak VERİ-ŞABLON-4-5-6-7-8-9 oluşacak
yapılacak kodla çalıştırılacak her sekmede C3 yerine sekme sayı numarası yazılacak

hocam mesaj sayılarımı biliyorum elbet ama makro işlerini yapamıyorum formüllerle çözebiliyorum (o kadarını anlayabiliyorum)
kodun son halini yapabilir miyiz hocam
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
C++:
Sub SayfaEkle()
Dim Ws As Worksheet
    If Not IsNumeric(Worksheets("Veri").Range("C2")) Then Exit Sub
    If Not IsNumeric(Worksheets("Veri").Range("D2")) Then Exit Sub
    If Worksheets("Veri").Range("D2") < Worksheets("Veri").Range("C2") Then Exit Sub
    Set Ws = Worksheets("Şablon")
    For i = Worksheets("Veri").Range("C2") To Worksheets("Veri").Range("D2")
        Ws.Copy After:=Worksheets(Worksheets.Count)
        [C3] = i
        ActiveSheet.Name = i
    Next i
End Sub
 

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,648
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
sayın Hocam çok teşekkür ederim, emeğinize sağlık
uyguladım sonuçlar tamam
 

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,648
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,648
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
hocam birkaç deneme yaptıktan sonra bir hata oluştu
şöyle ki 4 den 9 a kadar sekmeleri sıralıyor VERİ-Sekme-4-5-6-7-8-9 diye (sekme sıralama ve numaralandırmada sorun yok) ancak 4 olan sekmede C3 hücresinde 4 yazması gerekirken 1 yazıyo
ve hemen peşine 5 olan sekmede C3 hücresinde 4 yazıyo, 8 sekmesinde C3 hücresinde 7 yazıyo
bu hatayı düzeltebilir miyiz.
 

Ekli dosyalar

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Gönderdiğim kodları ben de deniyorum ve sonuç doğru çıkıyor.
Hata sizden kaynaklanıyor.

For i = Worksheets("Veri").Range("C2") To Worksheets("Veri").Range("D2")
Ws.Copy After:=Worksheets(Worksheets.Count)
[C3] = i
ActiveSheet.Name = i
Next i

Burada her yeni oluşan sayfanın C3 hücresine i değişikeninin aldığı değeri yazıp aynı i değişkenini sayfaya atıyoruz.
Haliyle sayfa isminde 7 yazıp C3 de 7den farklı bir şey olması mümkün değil.
 

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,648
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
çözüldü hocam
daha önceki ilk makro kodu galiba sebep olmuş onu sildim denedim
 
Üst