Hallo zusammen,
ich baue mir gerade eine Vorlage mit der Bemaßungspfeile in eine Exceldatei automatisch eingefügt werden können.
Dabei möchte ich aber verhinder, dass wenn bereits diese Maßpfeile eingefügt sind, der Button nochmal die selben Pfeile einfügt (wegen der Namensgebung).
Jetzt kann ich mir vorstellen, dass sich diese problem auf viele Arten und wege umsetzen lässt...
Zum beispiel:
- Nach dem erstellen der Pfeile den Button deaktivieren.
- Eine Schleife in der Namensgebung einbauen, dass das problem garnicht entsteht.
Oder ich prüfe vor der erstellung, ob bereits ein Pfeil mit einem definierten Namen existiert und breche dann den Ablauf ab.
letzteres wäre das, was ich mir jetzt vorgestellt habe.
In meiner Ausführung habe ich jetzt momentan auf Variablen verzichtet, kann mir aber vorstellen alles nochmal etwas auf zu arbeiten um es flexibler zu machen.
Mein bisheriger Code sieht wie folgt aus:
Dieser funktioniert an sich auch. Jedoch fehlt mir die Prüfung bzw. die oben genannte Möglichkeit zu prüfen, ob da eine der Formen bereits vorhanden ist oder nicht.
Hab es wie folgt versucht:
Dabei kommt aber nicht wirklich was raus... er findet den Namen nicht.
Ich wäre allen über sämtlichen Vorschläge dankbar wie ich mein Problem lösen kann!
Hab auch bereits nach anderen möglichkeiten gesucht, jedoch nicht wirklich viel hilfreiches gefunden!
Ich bedanke mich schon mal im Vorfeld für eure Antworten!
Grüße,
Casimus
ich baue mir gerade eine Vorlage mit der Bemaßungspfeile in eine Exceldatei automatisch eingefügt werden können.
Dabei möchte ich aber verhinder, dass wenn bereits diese Maßpfeile eingefügt sind, der Button nochmal die selben Pfeile einfügt (wegen der Namensgebung).
Jetzt kann ich mir vorstellen, dass sich diese problem auf viele Arten und wege umsetzen lässt...
Zum beispiel:
- Nach dem erstellen der Pfeile den Button deaktivieren.
- Eine Schleife in der Namensgebung einbauen, dass das problem garnicht entsteht.
Oder ich prüfe vor der erstellung, ob bereits ein Pfeil mit einem definierten Namen existiert und breche dann den Ablauf ab.
letzteres wäre das, was ich mir jetzt vorgestellt habe.
In meiner Ausführung habe ich jetzt momentan auf Variablen verzichtet, kann mir aber vorstellen alles nochmal etwas auf zu arbeiten um es flexibler zu machen.
Mein bisheriger Code sieht wie folgt aus:
Visual Basic-Quellcode
- Sub FrontArrows()
- '
- ' FrontArrows Makro
- '
- '
- Application.ScreenUpdating = False
- ActiveSheet.Shapes.AddConnector(msoConnectorStraight, 90, 93.75, 90, 262.5). _
- Select
- Selection.ShapeRange.Name = "FrontLineLeft"
- Selection.Name = "FrontLineLeft"
- With Selection.ShapeRange.Line
- .Visible = msoTrue
- .ForeColor.RGB = RGB(255, 0, 0)
- .Transparency = 0
- .Visible = msoTrue
- .Weight = 3
- End With
- Selection.Copy
- ActiveSheet.Paste
- Selection.ShapeRange.IncrementLeft -8.25
- Selection.ShapeRange.IncrementTop -12
- Selection.ShapeRange.IncrementLeft 262.5
- Selection.ShapeRange.Name = "FrontLineRight"
- Selection.Name = "FrontLineRight"
- ActiveSheet.Shapes.AddConnector(msoConnectorStraight, 91.5, 251.25, 355.5, _
- 251.25).Select
- Selection.ShapeRange.Name = "FrontArrow"
- Selection.Name = "FrontArrow"
- Selection.ShapeRange.Line.BeginArrowheadStyle = msoArrowheadOpen
- Selection.ShapeRange.Line.EndArrowheadStyle = msoArrowheadOpen
- With Selection.ShapeRange.Line
- .Visible = msoTrue
- .ForeColor.RGB = RGB(255, 0, 0)
- .Transparency = 0
- .Visible = msoTrue
- .Weight = 3
- End With
- ActiveSheet.Shapes.Range(Array("FrontLineLeft", _
- "FrontLineRight", "FrontArrow")).Select
- Selection.ShapeRange.Group.Select
- Selection.ShapeRange.Name = "FrontMeasuring"
- Selection.Name = "FrontMeasuring"
- Application.ScreenUpdating = True
- End Sub
Dieser funktioniert an sich auch. Jedoch fehlt mir die Prüfung bzw. die oben genannte Möglichkeit zu prüfen, ob da eine der Formen bereits vorhanden ist oder nicht.
Hab es wie folgt versucht:
Dabei kommt aber nicht wirklich was raus... er findet den Namen nicht.
Ich wäre allen über sämtlichen Vorschläge dankbar wie ich mein Problem lösen kann!
Hab auch bereits nach anderen möglichkeiten gesucht, jedoch nicht wirklich viel hilfreiches gefunden!
Ich bedanke mich schon mal im Vorfeld für eure Antworten!
Grüße,
Casimus