• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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

  • Konbuyu başlatan Konbuyu başlatan ikikan
  • Başlangıç tarihi Başlangıç tarihi
Katılım
3 Mart 2009
Mesajlar
519
Excel Vers. ve Dili
excel 2003 tr
Arkadaşlar sayfa üzerindeki Shapes object 'lerin "ID" numaraları değiştirilebilir mi. "changing reset Replace"
Şimdiden Teşekkürler.
 
Merhaba.
Shape ID sadece okunan bir özelliktir değiştirilemez.

Tam olarak ne yapmak istediğinizi yazarsanız belki farklı bir çözüm bulunabilir.
 
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
 
Merhaba
İsmi "Menü_" ile başlayan "shape"lere mi referans vermek istiyorsunuz.
 
Belirleyici olan o numaralar, Menü_ ile başlayan tüm shape lere referans vermeye çalışmış olursunuz. Buda geçersiz bir kodlama olur
 
İ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
 
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
 
Örnek dosyanızı ekleyip tam olarak ne yapmak istediğinizi açıklarsanız daha sağlıklı yanıtlar verebiliriz.
 
İ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
 
İ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
 
yıldız (*) kullanarak bir veya daha çok shapeye referans veremezsiniz.
Ne yapmak istediğinizi açıklarsanız, değişik alternatifler buluna bilir.
 
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
 
Geri
Üst