Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1600to1604
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

Umwandlung Trennzeichen bei Datenüberprüfung

Umwandlung Trennzeichen bei Datenüberprüfung
05.01.2018 13:56:03
Peter
Guten Tag,
ich bin dabei mir über ein VBA Script dynamische Dropdownlisten zu erstellen.
Dabei verweise ich bewusst nicht auf eine Liste mit den Inhalten, sondern hinterlege die Inhalte direkt in dem Quellfeld der Datenüberprüfung.
Wenn ich das manuell mache, sieht das folgendermaßen aus: Datenüberprüfung, Zulassen = Liste, Quelle = "Option1;Option2;etc"
Das funktioniert soweit, und wenn ich die Tätigkeit aufzeichne, wird auch der oben beschriebene Text in dem Sub angezeigt. Wenn ich das Sub dann abspiele, werden die verschiedenen Optionen nicht mehr einzeln im Dropdown angeboten, sondern der gesamte Inhalt als eine Option dargestellt. Öffne ich nun das Menü zur Datenüberprüfung und schließe es ohne was verändert zu haben, klappt es wieder. Das ist natürlich auf dauer keine Lösung immer manuell das Menü zu öffnen.
Ich habe den Verdacht, das es mit der Problematik der Spracheinstellung zutun hat. Excel scheint in der VBA Welt intern die US Trennzeichen und Dezimalzeichen zu verwenden und in der Manuellen die Deutschen Zeichen :( Wenn ich im VBA Script die ";" durch "," ersetze, funktioniert es direkt. Wenn ich mir jetzt das Menü zur Datenüberprüfung anschaue, tauchen hier wieder ";" Trennzeichen auf. Excel hat das offentsichtlich selbst umgewandelt.
Diese Erkenntnis hilft mir jetzt solange weiter, bis ich das Dezimaltrennzeichen "," für Zahlen in den Optionen verwenden will. Diese werden konsequelnter Weise auch umgewandelt :(. Verwende ich stattdessen "." als Dezimaltrennzeichen werden diese nicht von Excel konvertiert und in meinen Optionen stehen dann die Dezimalzahlen als text mit ".".
Hat jemand eine Tipp für mich, wie ich die Problematik umgehen kann? Ich sehe nurnoch die Möglichkeit alle Optionen einzeln in Zellen zu übertragen und dann wieder bei Quelle auf die Bereiche zu verweisen. Das wollte ich aber gerade verhindern.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Umwandlung Trennzeichen bei Datenüberprüfung
05.01.2018 15:16:56
EtoPHG
Hallo Peter,
Ja vieles ist richtig und bei VBA gut müsste man annehmen, dass es dem Anfrager bekannt ist, dass VBA intern US-english 'geredet' wird und die sprachliche Lokalisierung weitgehend nur in der XL-Oberfläche bzw. in den Local-Eigenschaften von Objekten (z.B. Range.FormulaLocal) automatisch durchgeführt werden.!
Das Listentrennzeichen in US-english ist das Komma und das Dezimaltrennzeichen der Punkt. Darum kommst du mit der deutschen Schreibweise der Zahlen durcheinander. Warum du die Listen nicht in (nicht sichtbaren Zellen / Blatts) so aufbereitest, wie du sie sehen willst und als Quelle benutzt, ist m.E. zu wenig begründet.
Gruess Hansueli
Anzeige
DasProblem …
05.01.2018 17:18:13
RPP63
… entsteht IMMER dann, wenn der Rekorder versucht, einen String aufzuzeichnen, Mensch ohne Namen.
Heißt, Bezug nehmend auf den VBA-Level:
Vermeide den Rekorder und benutze die Dokumentation!
VBA kann einen String nicht übersetzen!
Vor allem, wenn er als Parameter einer Methode übergeben werden soll.
… ich könnte jetzt noch etliche Beispiele posten …
AW: DasProblem …
08.01.2018 08:39:08
Peter
Guten Tag,
vielen Dank für die Rückmeldungen.
Das VBA intern in US-Englisch arbeitet und wie sich das auf die Trennzeichen auswirkt ist mir durchaus bewusst.
Mich hat halt stutzig gemacht, dass ich aus VBA heraus sowohl ";" als auch "," als Trennzeichen verwenden kann und Excel das entsprechend zu "übersetzen" scheint. Daraufhin habe ich mal geschaut, ob es diese "Übersetzung" auch beim Rekorder anwendet, was nicht der Fall zu sein scheint.
Das Excel einen String eigentlich nicht "übersetzen" kann leuchtet ja ein. Das ich aber ein andere Ergebnis erhalte, wenn ich manuell einen String in das Feld "Quelle" eingebe, als wenn ich den Parameter über VBA manipuliere wirkt irgendwie inkonsequent. Da scheint ja dann doch was intern mit dem String zu geschehen.
Ich hatte gehofft, dass es vlt. einen Befehlt oder Workaround gibt, dass der String einfach so interpretiert wird, wie er auch manuell entsprechend der Spracheinstellung funktionieren würde.
Aus der Antwort von "RPP63" entnehme ich mal, dass das generell ein schwieriges Thema zu sein scheint, worauf es keine einfache Antwort/Lösung zu gibt :(
@Hansueli: Vielen Dank für die Rückmeldung, aber warum sollte ich näher begründen warum ich die Listen umgehen möchte? Das hat doch mit dem konkreten Problem nichts zutun.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige