Moin zusammen,
ich benötige mal wieder eure Hilfe.
der folgende Code blendet mir über eine Gültigkeitsabfrage (ja/nein)
zwei Rechtecke mit Text ein oder aus:
Private Sub Worksheet_Calculate()
If Range(„O55“).Value = 400 Then
ActiveSheet.Shapes(„Rectangle 367“).Visible = True
ActiveSheet.Shapes(„Rectangle 372“).Visible = True
Else
If Range(„O55“).Value 400 Then
ActiveSheet.Shapes(„Rectangle 367“).Visible = False
ActiveSheet.Shapes(„Rectangle 372“).Visible = False
End If
End If
End Sub
Das funktioniert bestens.
Sobald ich eine weitere Ecxel-Datei öffne, egal welche, bekomme ich die Fehlermeldung:
Das Element mit dem angegebenen Namen wurde nicht gefunden.
Wenn ich dann auf Debuggen klicke, ist die Zeile
ActiveSheet.Shapes(„Rectangle 367“).Visible = False
markiert.
Schließe ich den VBA-Editor, erhalte ich noch die Meldung:
Anwendungs- oder objektdefinierter Fehler.
Hat jemand eine Idee?
Excel 2003
Makro in Tabelle 1
Gruß und danke
Rolf
Ich vermute mal, dass durch das öffnen nicht mehr das Tabellenblatt mit den auszublendeten bzw. einzublendenden Felder Aktiv ist. Und mit dem Code „ActiveSheet.Shapes(„Rectangle 367“).Visible = True“ wird sich genau darauf bezogen…
Dies kann man umgehen indem man z.Bsp. per Variable das enstsprechende sheet benennt:
dim tabellenblatt as string
tabellenblatt = "Pfad/dateiname.xls/tabelle1
und danach im Aufruf anstatt:
„ActiveSheet.Shapes(„Rectangle 367“).Visible = True“
„tabellenblatt.Shapes(„Rectangle 367“).Visible = True“
verwenden…
www.termin-klick.de
Termine bucht man online
der folgende Code blendet mir über eine Gültigkeitsabfrage
(ja/nein) zwei Rechtecke mit Text ein oder aus:
Hallo Rolf,
Private Sub Worksheet\_Calculate()
With ThisWorkbook.Worksheets("Tabelle1")
.Shapes("Rectangle 367").Visible = .Range("O55").Value = 400
.Shapes("Rectangle 372").Visible = .Range("O55").Value = 400
End With
End Sub
Gruß
Reinhard
Danke
Hallo Reinhard,
der folgende Code blendet mir über eine Gültigkeitsabfrage
(ja/nein) zwei Rechtecke mit Text ein oder aus:
Private Sub Worksheet_Calculate()
With ThisWorkbook.Worksheets(„Tabelle1“)
.Shapes(„Rectangle 367“).Visible = .Range(„O55“).Value = 400
.Shapes(„Rectangle 372“).Visible = .Range(„O55“).Value = 400
End With
End Sub
Das klappt prima.
Danke Dir.
Gruß
Rolf
Danke
Hallo Terminklick,
das klappt auch.
Vielen Dank für die schnelle Hilfe.
Gruß
Rolf