moin moin,
ich hab ein script geschrieben, das der reihe nach folgendes macht
- temporäre grafiken (objekte) löschen
- abhängig von einem zellinhalt diese Grafik in einem anderen sheet suchen und kopieren
- in das erste sheet einfügen und ihm den temporären Namen zuweisen.
Nun möchte ich noch sicherheitsabfragen einbauen, weil das Makro abbricht resp. abbrechen würde, wenn eine der Grafiken nicht selektiert werden kann.
Allerdings fehlt mir so ein wenig der Ansatz dabei, wie man das realisieren kann.
Kann mir jemand einen Tipp dazu geben?
Vielen Dank
Munich
hi,
meinst du sowas ?
Sub Löschen()
Dim Grafik As Shape
For Each Grafik In ActiveSheet.Shapes
If Grafik.Type = msoPicture Then
Grafik.Delete
End If
Next
End Sub
cu MIcha
nein nein…
ich meine etwas wie
if not Activesheets.Shape(„name“).exists then msgbox „die Grafik gibt es nicht“
also ein check, ob es eine bestimmte Grafik gibt oder eben nicht.
Danke trotzdem
Hallo Munich Freak,
Ich kann mir diese Syntax „object is nothing“ nicht angewöhnen:
if (Activesheets.Shape(„name“) is nothing) then msgbox „die Grafik gibt es nicht“
Allerdings gibts auch noch isNUll(bla) oder so ähnliche Sachen. Ptobiers mal wie oben, und dann schaun wir mal… (Die Klammern sind nur zur Verdeutlichung.
mfg
Dirk.Pegasus
Hi Dirk,
Ich kann mir diese Syntax „object is nothing“ nicht
angewöhnen:
ich mich auch nicht
hab zwar darüber gelesen, aber es nicht zum laufen gebracht…
if (Activesheets.Shape(„name“) is nothing) then msgbox „die
Grafik gibt es nicht“
das bringt mir leider einen
Laufzeitfehler ‚424‘:
Objekt erforderlich.
ich habs auch mal noch versucht das vorher zu deklarieren mit
Sub Makro1()
Dim test As Object
test = Activesheets.Shape("werweisswas")
If (test Is Nothing) Then MsgBox "die Grafik gibt es nicht"
End Sub
aber auch das mag er nicht… *seufz*
Allerdings gibts auch noch isNUll(bla) oder so ähnliche
Sachen. Ptobiers mal wie oben, und dann schaun wir mal… (Die
Klammern sind nur zur Verdeutlichung.
ich werd mich mal auf die Suche begeben… Danke! 
Hallo MF,
hab da nochmal gesucht und nichts richtiges gefunden. Hab Selber mal das gemacht:
Public Function existsItem(obj As Object, name As String) As Boolean
Dim str As String
existsItem = False
On Error GoTo ende
str = obj(name).name
existsItem = True
ende:
End Function
Wenns VBA halt nicht kann? Oder hast du was gefunden?
mfg
Dirk.Pegasus
ähm… ich bin nicht so ganz firm in Funktionsaufruf mittels vba.
Kannst Du mir da noch eine Hilfestellung geben?
Vielen Dank!
Die einzige Möglichkeit, die ich noch sehe ist mit einem loop durch alle Grafiken des Sheets zu gehen und den Namen zu überprüfen…
Hallo Munich Freak,
Aber gerne:
if (existsItem(meinObjekt, "werweisswas")) then
'gibts wohl
else
'na denn nicht
end if
Dabei ist meinObjekt in deinem Fall:
ActiveSheet.Shapes
Also die Auflistung der Objekte in der mit einem Namen nach einem Objekt gesucht werden soll.
mfg
Dirk.Pegasus
1 „Gefällt mir“
Dankeschön!
Jetzt wird es etwas klarer 