'msoArrowheadTriangle'

… das ist u.a. eine VBA-Konstante, die beim Aufzeichnen eines Makros in den Code eingebaut wird.

Moin,

tja, und beim Aufruf gibt es einen Fehler „Variable nicht definiert.“

Da muss man irgendwo was setzen, einbinden. Sagt mir doch bitte, wo? Hatte es mir seinerzeit nicht aufgeschrieben.
Office 2003 auf Win 7.

Danke
Laika

Hallo Laika,

… das ist u.a. eine VBA-Konstante, die beim Aufzeichnen
eines Makros in den Code eingebaut wird.

ja.
msoArrowheadTriangle ist „nur“ ein Sprechender Name für eine Zahl.
In dem Fall 2.
Man sieht am Namen daß sie keine reine Excelkonstante ist sondern eine für das gesamte Office.
(mso=MS Office)
Reine Excelkonstanten beginnen mit xl, in Word mit wd.

ArrowheadTriangle deutet auf eine dreieckige Pfeilspitze hin,
ergo mutmaßlich auf eine gezeichnete Linie mit Pfeilspitze.
So war’s dann auch wie nachstehender Code beweist.

Aber bitte Laika, gib das nächste mal bitte mehr Informationen, z.B. den Code. Nicht immere sind Konstantennamen so rel. leicht zu deuten.

Da muss man irgendwo was setzen, einbinden. Sagt mir doch
bitte, wo? Hatte es mir seinerzeit nicht aufgeschrieben.

Dann mache das nun, schreibe zuoberst in den Code:

’ Bitte unter Extras—Verweise den Verweis setzen aus
’ Microsoft Office X.0 Object Library
’ das X steht für Version, 2000 = 9.0, 2007 = 12.0, 2010 = 14.0

Gruß
Reinhard

Sub tt()
ActiveSheet.Shapes.AddConnector(msoConnectorElbow, 333.75, 134.25, 66#, 98.25 _
).Select
Selection.ShapeRange.Line.BeginArrowheadStyle = msoArrowheadTriangle
Selection.ShapeRange.Line.EndArrowheadStyle = msoArrowheadTriangle
End Sub

(getestet mit XL2000

N’abend Reinhard,

msoArrowheadTriangle ist „nur“ ein Sprechender Name für eine
Zahl.

Klar, davon gibt es ja 'ne ganze Menge - vbok, vbyes usw. und eben die ganze mso…-Sippe.

ArrowheadTriangle deutet auf eine dreieckige Pfeilspitze hin, …

So ist es. Ich mache manchmal viele Zeichnungen zur Erläuterung in meine Tabellen, da brauche ich häufig Pfeile, also habe ich mir eine Taste in einer eigenen Symbolleiste gemacht, die mir den Pfeil mit einem einzigen Mausklick einbaut. Hat bisher (in Vista) immer funktioniert. Nun, mit Win 7, muss ich alles wieder neu aufsetzen.

Dann mache das nun, schreibe zuoberst in den Code:

’ Bitte unter Extras—Verweise den Verweis setzen aus
’ Microsoft Office X.0 Object Library
’ das X steht für Version, 2000 = 9.0, 2007 = 12.0, 2010 =
14.0

Bei „Microsoft Office 11.0 Object Library“ - 11 steht wohl für 2003 - ist bei mit ein Häkchen - schon von Anfang an. Ich finde es einigermaßen merkwürdig, dass diese mso-Konstanten beim Aufzeichnen eines Makros eingebaut werden, für den Benutzer völlig unsichtbar, wenn er nicht in den VBA-Code guckt, und dann beim Aufruf des Makros ein Fehler kommt. Das hätte man bei MS sicher eleganter machen können!

Hier mein Code:

Sub Pfeil\_einfügen()
' Pfeil\_einfügen Makro
' Makro am 16.04.2010 von admin aufgezeichnet
 ActiveChart.Shapes.AddLine(693.27, 212.55, 693.27, 309.74).Select
 Selection.ShapeRange.Line.EndArrowheadStyle = msoArrowheadTriangle
 Selection.ShapeRange.Line.EndArrowheadLength = msoArrowheadLengthMedium
 Selection.ShapeRange.Line.EndArrowheadWidth = msoArrowheadWidthMedium
 Selection.ShapeRange.Flip msoFlipVertical
End Sub

Gruss
Laika

Hallo Laika,

ArrowheadTriangle deutet auf eine dreieckige Pfeilspitze hin, …

So ist es.
also habe ich mir eine Taste in einer eigenen Symbolleiste
gemacht, die mir den Pfeil mit einem einzigen Mausklick
einbaut. Hat bisher (in Vista) immer funktioniert. Nun, mit
Win 7, muss ich alles wieder neu aufsetzen.

Bei „Microsoft Office 11.0 Object Library“ - 11 steht wohl für
2003 - ist bei mit ein Häkchen - schon von Anfang an.

ist das Problem nun gelöst?
So sieht der Code und die Verweise bei meinem XL 2007 aus:
http://www.uploadagent.de/show-183338-1331925925.html
Deaktiviere ich den genannten Verweis so funktioniert der Code nicht
und es kommt der Fehler wie bei dir.

Code ist dein Code, habe nur ActiveChart gegen ActiveSheet getauscht.

Ich
finde es einigermaßen merkwürdig, dass diese mso-Konstanten
beim Aufzeichnen eines Makros eingebaut werden, für den
Benutzer völlig unsichtbar, wenn er nicht in den VBA-Code
guckt, und dann beim Aufruf des Makros ein Fehler kommt. Das
hätte man bei MS sicher eleganter machen können!

*Schulterzuck* Wende dich an [email protected] :smile:)

Gruß
Reinhard