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

Umlaute in VBA Code von selbst geändert

Forumthread: Umlaute in VBA Code von selbst geändert

Umlaute in VBA Code von selbst geändert
19.08.2021 16:15:48
selbst
Hallo an alle,
bei einer Datei mit VBA Code, ändern sich gelegentlich die Umlaute im Code. Ich musste Umlaute benutzen für eine Weiterverarbeitung. Die Umlaute verändern sich in sehr verrückte Sonderzeichen.
Hier hat jemand das sehr ähnlich: https://www.computerbase.de/forum/threads/excel-vba-umlaute-wurden-ersetzt.2028650/
Weiß hier einer woran das liegen könnte. Im Beitrag oben wird ein Mac Nutzer vermutet. Kann man das irgendwie verhindern?
Danke im Voraus
Gruß Sven
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Umlaute in VBA Code von selbst geändert
19.08.2021 16:18:46
selbst
Hier noch ein Beispiel aus meinen Code

If Target.Value = "Druckluftanlage: Bremsprobegerät" Then
With Bereich2.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Bremsprobegerät"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End If

Anzeige
AW: Umlaute in VBA Code von selbst geändert
19.08.2021 17:37:05
selbst
"Im Beitrag oben" wird aber auch geschrieben, dass Umlaute im Code eigentlich nix zu suchen haben. Was soll denn passieren, wenn du die Datei z.B. einem Ami schickst? Er hat kein "ä", "ö" usw.
;
Anzeige
Anzeige

Infobox / Tutorial

Umlaute im VBA-Code richtig handhaben


Schritt-für-Schritt-Anleitung

  1. Umlaute im VBA-Code vermeiden: Wenn Du Umlaute in Deinem VBA-Code verwenden möchtest, ist es ratsam, stattdessen die Unicode-Darstellung zu nutzen. Zum Beispiel kann das Zeichen "ä" durch ChrW(228) ersetzt werden.

  2. VBA-Code anpassen: Stelle sicher, dass Du Umlaute durch ihre entsprechenden Unicode-Werte ersetzt. Hier ein Beispiel:

    If Target.Value = "Druckluftanlage: Bremsprobegerät" Then
       ' Verwende Unicode für Umlaute
       With Bereich2.Validation
           .Delete
           .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
           xlBetween, Formula1:="=Bremsprobegerät"
           .IgnoreBlank = True
           .InCellDropdown = True
           .InputTitle = ""
           .ErrorTitle = ""
           .InputMessage = ""
           .ErrorMessage = ""
           .ShowInput = True
           .ShowError = True
       End With
    End If
  3. Dateiformat überprüfen: Speichere Deine Excel-Datei im .xlsm Format, um sicherzustellen, dass der VBA-Code korrekt interpretiert wird.

  4. Kollisionsprüfungen: Bei der Weitergabe von Dateien an Nutzer ohne deutsche Zeichencodierung, prüfe, ob es Alternativen gibt, um die Umlaute zu ersetzen oder zu umgehen.


Häufige Fehler und Lösungen

  • Fehler: Umlaute werden in Sonderzeichen umgewandelt
    Lösung: Verwende die Unicode-Darstellung, um sicherzustellen, dass die Umlaute im VBA-Code korrekt dargestellt werden.

  • Fehler: Umlaute fehlen nach dem Kopieren
    Lösung: Überprüfe, ob beim Kopieren in andere Programme die Zeichencodierung beachtet wurde. Es kann hilfreich sein, die Umlaute zuvor in ein Textformat zu kopieren, das Unicode unterstützt.


Alternative Methoden

  • Excel-Funktionen nutzen: Du kannst auch Excel-Formeln verwenden, um Umlaute in andere Zeichen umzuwandeln. Beispielsweise kannst Du die Funktion SUBSTITUTE verwenden:

    =SUBSTITUTE(A1, "ä", "ae")
  • Makros erstellen: Erstelle ein Makro, das automatisch Umlaute in einem bestimmten Bereich umwandelt. So kannst Du sicherstellen, dass Deine Daten in der gewünschten Form vorliegen.


Praktische Beispiele

  1. Umlaute umwandeln: Wenn Du eine Liste von Namen hast, in der Umlaute enthalten sind, kannst Du sie mit einem einfachen Makro umwandeln:

    Sub UmlauteErsetzen()
       Dim Zelle As Range
       For Each Zelle In Selection
           Zelle.Value = Replace(Zelle.Value, "ä", "ae")
           Zelle.Value = Replace(Zelle.Value, "ö", "oe")
           Zelle.Value = Replace(Zelle.Value, "ü", "ue")
       Next Zelle
    End Sub
  2. Umlaute kopieren: Wenn Du Umlaute aus einer externen Quelle einfügen möchtest, stelle sicher, dass die Quelle in Unicode gespeichert ist, um Probleme zu vermeiden.


Tipps für Profis

  • Verwende die Option Explicit Anweisung: Dadurch zwingst Du Dich, alle Variablen zu deklarieren, was Fehler durch nicht definierte Umlaute minimiert.

  • Schreibe Kommentare: Wenn Du Umlaute in Deinen Code einfügst, kommentiere diese Stellen, um anderen Nutzern zu helfen, den Code besser zu verstehen.

  • Testumgebung nutzen: Erstelle eine Testdatei, in der Du verschiedene Methoden ausprobierst, bevor Du Änderungen an produktiven Dateien vornimmst.


FAQ: Häufige Fragen

1. Warum ändern sich Umlaute im VBA-Code?
Umlaute können sich ändern, wenn die Datei in einem Format gespeichert wird, das keine korrekte Zeichencodierung unterstützt, oder wenn sie in ein nicht-supportendes Programm kopiert werden.

2. Wie kann ich Umlaute in Excel umwandeln?
Du kannst die SUBSTITUTE-Funktion verwenden, um Umlaute durch alternative Zeichenfolgen zu ersetzen. Auch VBA-Makros können helfen, Umlaute effizient zu ersetzen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige