VBA-/Excel-Variablen

Hallo,

ich zeichne in Excel einen Makro auf (Fläche farbig schraffieren), der entsprechende VBA-Code wird in einem Modul abgelegt.
Starte ich jetzt diesen Makro, meldet VBA einen Fehler „Variable nicht definiert“
Die angemeckerte Zeile lautet

 Selection.Fill.Patterned Pattern:=msoPatternDarkUpwardDiagonal

darin die Variable „msoPatternDarkUpwardDiagonal“. Sie gibt es angeblich nicht!?
Aber der Makrorecorder hat sie doch selbst angelegt!

Was kann da falsch sein? Was kann ich tun?

Danke
Laika

Hallo,

Hallo!

ich zeichne in Excel einen Makro auf (Fläche farbig
schraffieren), der entsprechende VBA-Code wird in einem Modul
abgelegt.
Starte ich jetzt diesen Makro, meldet VBA einen Fehler
„Variable nicht definiert“
Die angemeckerte Zeile lautet

Selection.Fill.Patterned
Pattern:=msoPatternDarkUpwardDiagonal

darin die Variable
„msoPatternDarkUpwardDiagonal“. Sie gibt es angeblich nicht!?
Aber der Makrorecorder hat sie doch selbst angelegt!

Das kommt manchmal vor, dass aufgezeichnete Konstanten nicht belegt sind. Ist wohl ein Excel-Bug.
Ich behelfe mir dann damit, den Wert der Konstante im Objektkatalog herauszusuchen und den Konstantennamen in der Prozedur damit zu ersetzen
Also:

Selection.Fill.Patterned Pattern:=16

Alternativ kann man die Konstante auch im Kopf der Prozedur nachträglich einrichten, so dass der Konstantenname so wie aufgezeichnet verwendet werden kann.:

Const msoPatternDarkUpwardDiagonal = 16

Gruß, tester.

Hallo,

Ich behelfe mir dann damit, den Wert der Konstante im
Objektkatalog herauszusuchen und den Konstantennamen in der
Prozedur damit zu ersetzen

Danke erstmal, mit dem Wert 16 funktionierts wie gewünscht. Aber: Woher bekomme ich den Wert? Ich habe im Objektkatalog gesucht und nicht gefunden!? Ich finde immer nur „vb…“-Konstanten. Gebe ich „mso“ als Suchbegriff ein, findet es nix …

Gruss
Laika