Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA: zum verzweifeln! Deutsche od. engl. Zahlen?

VBA: zum verzweifeln! Deutsche od. engl. Zahlen?
15.06.2009 15:10:03
André
Moin zusammen,
ich habe da schon wieder ein sehr komisches Problem mit einer XLSM-Datei. Diese enthält ein auto_open()-Makro, welches unter anderem einige bedingte Formate zuweist. Dafür steht in dem Makro z.B. folgender Befehl:
EinBereich.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreaterEqual, Formula1:="=0,19"
Man beachte die deutsche Schreibweise des Wertes, mit KOMMA. Öffne ich diese Datei, läuft das Makro sauber durch. Notiere ich den Wert in englischer Schreibweise, also mit PUNKT, dann gibts einen Fehler.
Nun habe ich eine zweite XLSM-Datei, in dieser befindet sich ein Makro, welches die o.g. XLSM-Datei öffnet. Tut sie das, dann läuft ja das auto-open()-Makro dieser Datei ab und ... läuft in einen Fehler. Angemeckert wird offensichtlich die deutsche Dezimalzahl, denn ändere ich nun das Makro in Datei 1 auf englische Schreibweise, dann kann mein Makro aus der zweiten Datei die erste problemlos öffnen. Allerdings kann ich dann die erste Datei nicht mehr direkt öffnen, ohne einen Makro-Fehler zu erhalten.
OK, in diesem einen Fall kann ich mir noch damit aushelfen, daß ich statt =0,19 oder =0.19 einfach =19/100 schreibe. Trotzdem würde ich gerne Wissen, wie ich zukünftig ohne solche "Workarounds" auskomme.
Gruß, André

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW:Formatconditions.Delete fehlt
15.06.2009 19:18:18
Daniel
HI
eigentlich müssten doch die bestehenden bedingten Formate erstmal gelöscht werden, bevor neue mit .ADD hinzugefügt werden.
Wenn nicht, wird bei einem erneuten ausführen des Makros der Index für die neu hinzugefügte Bedingung erhöht, die alte bleibt bestehen und irgendwann hast du mehr Bedingte Formate in der Zelle stehen als zulässig, was natürlich auch zu einem Fehler führt.
Gruß, Daniel
Anzeige
AW: AW:Formatconditions.Delete fehlt
16.06.2009 07:33:26
André
Moin Daniel,
danke für den Hinweis, aber was hat das mit meinem Problem zu tun? Natürlich besteht mein Code aus mehr als nur dieser einen Zeile. Nur wollte ich hier nicht zeilenweise Code aufführen, der mit dem eigentlichen Problem nichts zu tun hat. Die beiden Dateien sollen ja nur verdeutlichen, was passiert.
Gruß, André
vielleicht so...
16.06.2009 09:42:57
Tino
Hallo,
im VBA wird mit dem Punkt als Dezimaltrennzeichen gearbeitet.
Übergibst Du nun diesen Wert an eine Variable vom Typ String,
wird automatisch ein Komma oder ein Punkt gesetzt,
diesen String baust Du nun in Deine Codezeile ein.
Beispiel:

Dim strWert As String
strWert = 0.19 'hier Wert angeben, aber nicht als String.
EinBereich.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreaterEqual, Formula1:=strWert


Gruß Tino

Anzeige
AW: vielleicht so...
16.06.2009 10:11:52
André
Moin Tino,
gute Idee, funktioniert allerdings nicht, weil dann in der Bedingten Formatierung steht >= "0.19". Aber Dein Vorschlag hat mich zumindest drauf gebracht, wie es richtig geht:

Dim Wert As Double
Wert = 0.19
EinBereich.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreaterEqual, Formula1:=Wert


So funktioniert es, egal ob ich die Datei einzeln öffne oder aus einer anderen per Makro öffnen lasse.
Gruß, André

AW: vielleicht so...
16.06.2009 10:30:12
Tino
Hallo,
verstehen kann ich es jetzt zwar nicht, habe es bei mir getestet.
Aber egal es geht ja jetzt bei Dir.
Gruß Tino
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige