sayfa kopyalayıp hücredeki isimi vermek

Katılım
27 Ocak 2021
Mesajlar
96
Excel Vers. ve Dili
2019 turkce
merhabalar çalışma kitabımın 3. sayfasını son sayfadan sonraya kopyalayıp
sayfa(1) A2den başlayarak ne kadar dolu hücre varsa o kadar kopya oluşturmak ve isimleri bu hücrelerden verdirmek istiyorum
yazdığım kod kopyaları oluşturuyor fakat aynı sayfa ismini tekrar veremezsiniz diye hata veriyor kendi isim atıyor yardım ederseniz sevinirim

Sub Sayfa_olustur()
Application.ScreenUpdating = False
ActiveWorkbook.Unprotect "123"
say = WorksheetFunction.CountA(Sheets(1).Range("A:A"))
For a = 2 To say
Sheets(3).Copy After:=Worksheets(Worksheets.Count)
Sheets(Sheets.Count).Name = Sheets(1).Range("A" & say)
Next
ActiveWorkbook.Protect "123", Structure:=True, Windows:=False
Application.ScreenUpdating = True
End Sub
 
Katılım
27 Ocak 2021
Mesajlar
96
Excel Vers. ve Dili
2019 turkce
sorunumu şu kodla çözdüm

Sub Sayfa_olustur()
Dim rng As Range, say As Integer
Application.ScreenUpdating = False
ActiveWorkbook.Unprotect "123"
say = WorksheetFunction.CountA(Sheets(1).Range("A:A"))
For Each rng In Sheets(1).Range("A2:A" & say - 1)
Sheets(3).Copy After:=Worksheets(Worksheets.Count)
Sheets(Sheets.Count).Name = rng
Next
ActiveWorkbook.Protect "123", Structure:=True, Windows:=False
Application.ScreenUpdating = True
End Sub
teşekkürler
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

Sheets(Sheets.Count).Name = Sheets(1).Range("A" & say)

Sondaki say yerine a yazarak deneyiniz.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,265
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

Sheets(1).Range("A" & a)
 
Katılım
27 Ocak 2021
Mesajlar
96
Excel Vers. ve Dili
2019 turkce
Deneyiniz.

Sheets(1).Range("A" & a)
Sub Sayfa_olustur()
Dim say As Range, a As Byte
Application.ScreenUpdating = False
ActiveWorkbook.Unprotect "123"
say = WorksheetFunction.CountA(Sheets(1).Range("A:A"))
For a = 2 To say
Sheets(3).Copy After:=Worksheets(Worksheets.Count)
Sheets(Sheets.Count).Name = Sheets(1).Range("A" & a)
Next
ActiveWorkbook.Protect "123", Structure:=True, Windows:=False
Application.ScreenUpdating = True
End Sub
kodu bu şekilde denedim yine hata veriyor ilk 4 hücrenin ismini alıyor diğerlerinde hata veriyor anlamadım
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,265
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bu durumda "say" değişkeni ile ilgili sıkıntı olabilir.

Mümkünse örnek dosyanızı paylaşınız.
 
Üst