Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1548to1552
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Wahr zu True

Wahr zu True
04.04.2017 18:41:13
Enrico
Hi,
ich habe folgendes Problem, dass mein Makro (Werte von einer Tabelle in eine andere übertragen und daraus eine XML-Datei erstellen) auf verschiedenen Rechnern mit unterschiedlichen Länder/Spracheinstellungen laufen muss. Am Ende soll aber immer das amerikanische Format dargestellt werden.
Das Komma zu Punkt Problem habe ich schon folgendermaßen gelöst:
Application.DecimalSeparator = "."
Application.UseSystemSeparators = False
Gibt es eine ähnliche Funktion fuer wahr und true?
Die Werte holt er sich aus der Grundtabelle (coordtable) - dort steht "True" als Inhalt, wandelt Excel aber beim abholen der Zelle in "Wahr" um.
.Cells(X + 1, 9) = Worksheets("CoordTable").Cells(y + 1, 1).Value
Danke und viele Grüsse
Rico

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

Betreff
Datum
Anwender
Anzeige
AW: Wahr zu True
04.04.2017 18:47:26
Enrico
Neues Problem: ...gerade bemerkt... :-(
In meiner Tabelle sind die Werte mit Punkten getrennt. Nach meinem XML-Export per VBA sind diese in der XML aber mit Kommas versehen. Wie kann ich Excel oder per VBA den Punkt erzwingen?
AW: Wahr zu True
04.04.2017 19:02:49
Enrico
Hab das Punkt zu Komma Problem gelöst mit:
Print 1# "<double>" & Replace(Cells(lngRow, 12), ",", ".") & "</double>"
Beim Wahr/True-Problem würde ich auch so vorgehen, nur habe ich da ja zwei Möglichkeiten "Wahr" oder "Falsch".
AW: Wahr zu True
04.04.2017 20:03:55
ChrisL
Replace kannst du auch "verschachteln"
Replace(Replace(String, "Falsch", "False"), "Wahr", "True")
Aber, Wahr/Falsch müsste man in der "Landessprache" dynamisch ermitteln, damit es auch in anderen Ländern funktioniert. Ich dachte es wäre Application.International, aber konnte keinen entsprechenden Index finden.
cu
Chris
Anzeige
AW: Wahr zu True
05.04.2017 08:32:29
ChrisL
Hi nochmal
OK, ich habe mich gestern ein wenig verrannt :)
Entweder machst du einen (Hilfs-)Blatt Export, dort gibt es m.W. einen Parameter "Local" o.ä., wo du die Länderthematik steuern kannst.
Falls du mit Open For Output deine eigene Datei "printest", dann müsstest du ein Replace machen. Die Variante von gestern sollte funktionieren d.h. CStr(True) liefert "Wahr" in Landessprache, was du dann durch das englische True ersetzen kannst.
cu
Chris
AW: Wahr zu True
04.04.2017 19:36:12
ChrisL
Hi Rico
"Formatierung", "Wert" und "Text" sind gedanklich zu trennen.
Den True-Wahr-Dreher kann man erklären, wenn "True" als Text steht, was VBA als Wert erkennt und entsprechend auch als WAHR-Wert überträgt. :)
Ein Ansatz wäre, nur mit "Text" zu arbeiten.
.Cells(X + 1, 9) = Worksheets("CoordTable").Cells(y + 1, 1).Text
Dennoch würde ich davon abraten. Die Ländereinstellung würde ich nicht antasten und Excel die Werte als solche erkennen lassen. Erst im Moment vom Export/Import wandelst du das Format in US um.
Ich nehme an, du exportierst das Blatt als ganzes. Achte darauf, dass du eine klare Grenze (Exportblatt = Text / andere Blätter = Wert) herstellst. Vielleicht funktioniert es mit der .Text Ergänzung und bei Bedarf zusätzlich Verwendung von Format(). Der Import könnte schwieriger werden, weil Texte möglicherweise - je nach Land unterschiedlich - automatisch in Werte umgewandelt werden.
Darum könnte es sich anbieten das XML File quasi manuell, Zeile für Zeile zu erstellen und auch so wieder einzulesen. Nur mal als Ansatz (nicht ADO, aber die anderen Beiträge mit Open For Output):
http://stackoverflow.com/questions/2766760/how-to-generate-xml-from-an-excel-vba-macro
Damit hättest du die klare Trennung, XML = Text, Excel = Wert.
Muss es denn wirklich XML sein? ;)
Hast du nur Text und Zahl oder auch Datum, Monat, Wochentag... Inch, Feet, Meter, kg ;)
cu
Chris
Anzeige
AW: Wahr zu True
04.04.2017 19:57:16
ChrisL
Dein Print# habe ich erst später gesehen. Dein Problem ist noch nicht gelöst, darum offen...
Ein ungetester Versuch...
Replace(String, CStr(True), "True")

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige