Excel Sayfalarına Hücre ile aynı isimleri çekebilmek

Katılım
29 Kasım 2023
Mesajlar
3
Excel Vers. ve Dili
Excel 2017
Merhaba, bir sipariş formu oluşturuyorum, bunun için küçük bir makro buldum onu denedim isimleri hücrelerden çekmem de herhangi bir sorun yok ama aynı isimden iki kez olunca hata veriyor bu hatayı nasıl çözebilirim?
 
Katılım
9 Şubat 2022
Mesajlar
204
Excel Vers. ve Dili
Office 2021 Türkçe (x64)
Altın Üyelik Bitiş Tarihi
09-02-2027
Kodu yazmaya üşenmişsiniz sanırım. Hangi aynı isime takılıyor makro? Bunu bilmeden yardım etmek zor. Eğer makronuz belirli bir liste üzerinde dönüyorsa ve aynı isim birden fazla kez geldiğinde bir işlem yapmasını istiyorsanız, bir kontrol mekanizması ekleyebilirsiniz. Bu Aynı isim zaten işlenmişse onu atlamak / farklı bir işlem yapmak için kullanılabilşr. Muhtemelen çok daha basit bir çözümü vardır.
 
Katılım
29 Kasım 2023
Mesajlar
3
Excel Vers. ve Dili
Excel 2017
Kodu yazmaya üşenmişsiniz sanırım. Hangi aynı isime takılıyor makro? Bunu bilmeden yardım etmek zor. Eğer makronuz belirli bir liste üzerinde dönüyorsa ve aynı isim birden fazla kez geldiğinde bir işlem yapmasını istiyorsanız, bir kontrol mekanizması ekleyebilirsiniz. Bu Aynı isim zaten işlenmişse onu atlamak / farklı bir işlem yapmak için kullanılabilşr. Muhtemelen çok daha basit bir çözümü vardır.
Excel'i fazla bilmiyorum, işime yarayan şeyleri bakarak yapıyorum takıldığım yerlerde sormam gerekiyor. Üşengeçlikten ziyade size ne lazım onu bilmediğim için bir şey eklemedim. Muhtemelen dediğiniz gibi basit bir çözümü vardır. Bulduğum kod bu ekledim aşağıya, teşekkür ederim şimdiden.

Kod:
Private Sub worksheet_change(ByVal target As Range)
If Not Intersect(target, Range("B4")) Is Nothing Then
ActiveSheet.Name = ActiveSheet.Range("B4")
End If
End Sub
 
Katılım
9 Şubat 2022
Mesajlar
204
Excel Vers. ve Dili
Office 2021 Türkçe (x64)
Altın Üyelik Bitiş Tarihi
09-02-2027
Sayfanın ismini değiştiriyorsunuz, aynı isim ile hata vermesi normal. Çok dolaylı ve uzun bir çözüm olsa da, aşağıdaki makro ile ismin sonuna 1 ekletmeyi deneyebilirsiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As Worksheet
Dim baseName As String
Dim newName As String
Dim i As Integer
If Not Intersect(Target, Me.Range("B4")) Is Nothing Then
baseName = Me.Range("B4").Value
newName = baseName
i = 1
Do While Not IsUniqueName(newName)
newName = baseName & i
i = i + 1
Loop
Me.Name = newName
End If
End Sub
Function IsUniqueName(name As String) As Boolean
Dim ws As Worksheet
IsUniqueName = True
For Each ws In ThisWorkbook.Worksheets
If ws.Name = name Then
IsUniqueName = False
Exit Function
End If
Next ws
End Function
 
Son düzenleme:
Katılım
29 Kasım 2023
Mesajlar
3
Excel Vers. ve Dili
Excel 2017
Sayfanın ismini değiştiriyorsunuz, aynı isim ile hata vermesi normal. Çok dolaylı ve uzun bir çözüm olsa da, aşağıdaki makro ile ismin sonuna 1 ekletmeyi deneyebilirsiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As Worksheet
Dim baseName As String
Dim newName As String
Dim i As Integer
If Not Intersect(Target, Me.Range("B4")) Is Nothing Then
baseName = Me.Range("B4").Value
newName = baseName
i = 1
Do While Not IsUniqueName(newName)
newName = baseName & i
i = i + 1
Loop
Me.Name = newName
End If
End Sub
Function IsUniqueName(name As String) As Boolean
Dim ws As Worksheet
IsUniqueName = True
For Each ws In ThisWorkbook.Worksheets
If ws.Name = name Then
IsUniqueName = False
Exit Function
End If
Next ws
End Function
Yardımın için teşekkür ederim. Sonuna 1 ekliyor bu şekilde de işimi görecektir.
 
Üst