Shapes object 'lerin "ID" değiştirilmesi Hakında.

ikikan

Altın Üye
Katılım
3 Mart 2009
Mesajlar
519
Excel Vers. ve Dili
excel 2003 tr
Altın Üyelik Bitiş Tarihi
12.02.2026
Arkadaşlar sayfa üzerindeki Shapes object 'lerin "ID" numaraları değiştirilebilir mi. "changing reset Replace"
Şimdiden Teşekkürler.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
Shape ID sadece okunan bir özelliktir değiştirilemez.

Tam olarak ne yapmak istediğinizi yazarsanız belki farklı bir çözüm bulunabilir.
 

ikikan

Altın Üye
Katılım
3 Mart 2009
Mesajlar
519
Excel Vers. ve Dili
excel 2003 tr
Altın Üyelik Bitiş Tarihi
12.02.2026
Aslında yapmak istediğim for next döngüsü deki "i" sayacı yerine joker karakter "*" yıldız kullanmak...
With ws1.Shapes("Menü_" & i)
"""makro kodlarım """
End With
 
Katılım
12 Aralık 2015
Mesajlar
1,207
Excel Vers. ve Dili
Türkçe Ofis 2007
Merhaba
İsmi "Menü_" ile başlayan "shape"lere mi referans vermek istiyorsunuz.
 
Katılım
12 Aralık 2015
Mesajlar
1,207
Excel Vers. ve Dili
Türkçe Ofis 2007
Belirleyici olan o numaralar, Menü_ ile başlayan tüm shape lere referans vermeye çalışmış olursunuz. Buda geçersiz bir kodlama olur
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
İlgili nesneleri döngüye alarak ve isimlerini sorgulayarak sonuca gidebilirsiniz.

Kendinize uyarlayabilirsiniz..

Örnek;

C++:
Option Explicit

Sub Test()
    Dim Nesne As Shape
    
    For Each Nesne In Sheets("Sheet1").Shapes
        MsgBox Nesne.Name
    Next
End Sub
 

ikikan

Altın Üye
Katılım
3 Mart 2009
Mesajlar
519
Excel Vers. ve Dili
excel 2003 tr
Altın Üyelik Bitiş Tarihi
12.02.2026
Belirleyici olan o numaralar, Menü_ ile başlayan tüm shape lere referans vermeye çalışmış olursunuz. Buda geçersiz bir kodlama olur
Peki üstadım for each ve if ile "Menü_ " ile başlayan tüm shape lere genel referans verilebilirmi?
x= x+1 saydırması yaptırılmadan?

For Each Şekil In ws1.Shapes
if .name = ws1.Shapes("Menü_" & "*" ) Then
...kodlar
else
...kodlar
End if
Next Şekil
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Örnek dosyanızı ekleyip tam olarak ne yapmak istediğinizi açıklarsanız daha sağlıklı yanıtlar verebiliriz.
 
Katılım
12 Aralık 2015
Mesajlar
1,207
Excel Vers. ve Dili
Türkçe Ofis 2007
İhtiyacınız aşağıdaki gibi bir kod mu?
Kod:
Sub Test()
    Dim Nesne As Shape
    For Each Nesne In Sheets("Sheet1").Shapes
       if Left(Nesne.Name, 5) = "Menü_" Then
'Kodlar.....
Else
'Kodllar.....
End if
    Next
End Sub
 

ikikan

Altın Üye
Katılım
3 Mart 2009
Mesajlar
519
Excel Vers. ve Dili
excel 2003 tr
Altın Üyelik Bitiş Tarihi
12.02.2026
İhtiyacınız aşağıdaki gibi bir kod mu?
Kod:
Sub Test()
    Dim Nesne As Shape
    For Each Nesne In Sheets("Sheet1").Shapes
       if Left(Nesne.Name, 5) = "Menü_" Then
'Kodlar.....
Else
'Kodllar.....
End if
    Next
End Sub
Evet buna benze aslında buda işime yaradı teşekkürler. Birşey daha danışmam gerekirse "Menü_" & "*" şeklin de yapılabilir mi
sizin tafsiye etiğinizin biraz farklısı .... "*" karakteri kullanıla bilirmi?
if Left(Nesne.Name, 5) = "Menü_" Then yerine if Nesne.Name = "Menü_" & "*" Then
 
Katılım
12 Aralık 2015
Mesajlar
1,207
Excel Vers. ve Dili
Türkçe Ofis 2007
yıldız (*) kullanarak bir veya daha çok shapeye referans veremezsiniz.
Ne yapmak istediğinizi açıklarsanız, değişik alternatifler buluna bilir.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
sizin tafsiye etiğinizin biraz farklısı .... "*" karakteri kullanıla bilirmi?
if Left(Nesne.Name, 5) = "Menü_" Then yerine if Nesne.Name = "Menü_" & "*" Then
Instr fonksiyonunu kullanın. Örneğin;

if instr(Nesne.name,"Menü")>0 then
 
Üst