Sayfa İsminin Hücreye Yazılması

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Sayfa Ýsminin Hücreye Yazılması

Merhabalar,
Bir Çalışma Kitabında 10 sayfa var. Birinci sayfaya (sayfa adı) "Ali" yazıldığında A1 hücresine de "Ali" yazsın. İkinci sayfaya "Veli" yazıldığında (ikinci sayfanın A1 hücresine "Veli" yazsın. Bu şekilde 10 sayfaya yada istenildiği kadar isim verilebilir mi? Mümkün müdür acaba?
Birde bunun tersi yapılabilir mi? Yani A1 hücresine "Ali" yazalım Sayfa1'in ismi otomatik olarak "Ali" yazsın. Olabilir mi? Yani birbirine bağlı olsun. A1 hücresine ne yazılsa sayfa isminede o yazılsın...
Teşekkür ediyorum...
 

Kemal Demir

Özel Üye
Katılım
29 Temmuz 2004
Mesajlar
2,108
sub sayfaisimler()
Range("a1").value=ActiveSheet.Name
End sub


sub isimisayfayaver()
ActiveSheet.Name=Range("a1").value
End sub

Zannedersem bolebirşey istediniz
 

Kemal Demir

Özel Üye
Katılım
29 Temmuz 2004
Mesajlar
2,108
buda farklı bir yaklasım olarak dusunebilirsiniz.


sub a_kolonuna_göre_sayfaismiver()

Sheets(1).Name = Range("a1").Value
Sheets(2).Name = Range("a2").Value
Sheets(3).Name = Range("a3").Value
Sheets(4).Name = Range("a4").Value
Sheets(5).Name = Range("a5").Value
Sheets(6).Name = Range("a6").Value
Sheets(7).Name = Range("a7").Value
Sheets(8).Name = Range("a8").Value
Sheets(9).Name = Range("a9").Value
Sheets(10).Name = Range("a10").Value

End sub

İyi Çalışmalar.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,030
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki kodu sayfa1 in kod sayfasına kopyalayarak deneyin. A sütununa bir değer yazdığınızda "b" sayfası kopyalanarak ismi yazılan isimle değiştirilir.

[vb:1:dcba359ddd]Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 1 Or Target = "" Then Exit Sub
For a = 1 To Sheets.Count
If Target = Sheets(a).Name Then
Target.Select
MsgBox "AYNI İSİMLE SAYFA MEVCUTTUR"
Exit Sub
End If
Next
Sheets("b").Copy After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = Target
Sheets("sayfa1").Select
End Sub
[/vb:1:dcba359ddd]
 
Katılım
2 Ekim 2005
Mesajlar
104
Excel Vers. ve Dili
Excell 2003
Fakat aynı hücredeki ismi değiştirince sayfa adı onunla değişmiyor. Ayrıca hücredeki ismi silince o sayfayı silmesi mümkünmü?
 

Kemal Demir

Özel Üye
Katılım
29 Temmuz 2004
Mesajlar
2,108
ben uğraşana kadar sn levent yapmıs bile
valla onun yaptıuklarını gorunce yaptıklarımdan ve yapacaklarımdan zannedersem utanıcam

ama yınede yapıstırmak ıstedım

Sn . altan147 nin sorduğu ilk soru için

Private Sub CommandButton1_Click()
Sheets("a").Name = Range("a4").Value
Sheets("b").Name = Range("a5").Value
Sheets("c").Name = Range("a6").Value

End Sub

zannedersem ısını gorur ama diğer sorunu pek anlayamadım.
Saygılar.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,030
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki kodları deneyin.

[vb:1:54987492c1]Dim ad As String

Private Sub Worksheet_Change(ByVal Target As Range)
Application.DisplayAlerts = False
On Error Resume Next
If Target = "" Then Sheets(ad).Delete
If Target.Column <> 1 Or Target = "" Then Exit Sub
For a = 1 To Sheets.Count
If ad = Sheets(a).Name Then
Sheets(a).Name = Target
Exit Sub
End If
Next
Sheets("b").Copy After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = Target
Sheets("sayfa1").Select
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
ad = Selection.Cells.Value
End Sub
[/vb:1:54987492c1]

Sn rakkas utanma kelimesini kabul etmiyorum. Gayretinizi takdir ettiğimi daha öncede belirtmiştim. Ancak bu şekilde kendinizi geliştirebilirsiniz. Böyle devam ederseniz bilginizdeki gelişmenin ne kadar hızlı olduğunu sizde fark edeceksiniz.
 
Katılım
2 Ekim 2005
Mesajlar
104
Excel Vers. ve Dili
Excell 2003
İstediğim tam olarak buydu teşekkür ederim. Fakat önceki örnekte çıkan msgboxu kendim eklemeye çalıştım hata verdi. Aynı sayfa ismini yazınca bu kodda B(2) diye kopyalıyor ve sayfa ile bağı kopuyor. Bunu nasıl çözebilirim?



Teşekkürler Rakkas İlgilendiğin için. Çabalarına minnettarım.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,030
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki gibi deneyin. Þunuda belirteyim, sayfanın kendisine yazılan kodlarla her şeyi kontrol altında tutmak pek mümkün olmayacağı gibi kodlar çok karmaşık hale gelecektir.

[vb:1:bb29829387]Dim ad As String

Private Sub Worksheet_Change(ByVal Target As Range)
Application.DisplayAlerts = False
On Error Resume Next
If Target = "" Then Sheets(ad).Delete
If Target.Column <> 1 Or Target = "" Then Exit Sub
For a = 1 To Sheets.Count
If Target = Sheets(a).Name Then
Target.ClearContents
MsgBox "AYNI İSİMDE SAYFA MEVCUTTUR"
Exit Sub
End If
If ad = Sheets(a).Name Then
Sheets(a).Name = Target
Exit Sub
End If
Next
Sheets("b").Copy After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = Target
Sheets("sayfa1").Select
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
ad = Selection.Cells.Value
End Sub[/vb:1:bb29829387]
 
Katılım
2 Ekim 2005
Mesajlar
104
Excel Vers. ve Dili
Excell 2003
Kodların artması excellin hata vermesine yol açarmı? Yoksa kodu yazarken hata yapma ihtimali mi artar. Ayrıca yardımın için sağol
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,030
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Kodların artması excellin hata vermesine yol açarmı?
Eğer kod doğru yazılmışsa hayır. Fakat çok uzun işlemler yapan bir kod ise belki işlemciyi yorarak kilitlenmeye neden olabilir, oda çok zayıf bir ihtimaldir.
Yoksa kodu yazarken hata yapma ihtimali mi artar.
Kasdettiğim buydu. Eğer yapılacak işlem çok fazla işlev içeriyorsa yazılacak kodda bütün ihtimalleri gözönüne almak mümkün olmayabilir. Sonradan tespit edilecek bir hatada yazılan tüm kodların değiştirilmesine neden de olabilir. Ã?zellikle bir sayfanın change veya selectionchange olaylarına yazılacak kodlarda hata yapılma ihtimali çok fazladır. Çünkü bu olaylarda imleçin sayfa üzerindeki her hareketinde kod çalışacaktır. Bazende çalışmasını istemediğiniz bir durumda da çalışacaktır.
 
Üst