Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1528to1532
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

Problem

Problem
21.12.2016 14:59:20
Eisi

Hallo zusammen,
Ich habe ein riesen Problem:
Die Buchstaben "ä, ü" erscheinen im VBA-Code auf einmal als Sonderzeichen.
Wenn ich den Code in Word kopiere, dann erscheinen die Buchstaben wieder normal.
Wie kann ich das wieder richtig stellen und wenn nicht, haben die Sonderzeichen Einfluss auf die Funktionstüchtigkeit des Programmes?
Im Moment startet das Programm unauffällig.
Vieeeelen Dank.
LG
Eisi

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Oh ja ...
21.12.2016 15:03:20
lupo1
Überall - außer bei Stringinhalten oder Kommentaren - verursachen Umlaute potenziell Probleme.
AW: Oh ja ...
21.12.2016 15:30:04
Eisi
Gibt es im VBA Fenster mit suchen und ersetzen die ä und ü gegen ae und ue auszutauschen?
Nimm doch Excel ...
21.12.2016 16:53:38
lupo1
Wenn Du es dort nicht findest, hilft Kopie des Codes in ein Arbeitsblatt und Strg-H. Danach Kopie zurück nach VBA.
Zwei Makros
22.12.2016 06:05:46
RPP63
Moin!
Wie Lupo bereits schrieb, sind Umlaute in VBA-Codes Mist.
Spätestens auf einer anderen Sprachversion gibt es Probleme.
Folgende beiden Makros tauschen die Sonderzeichen aus.
Entweder meine (einfache) Version:
Sub ReplaceTextInVBA()
Dim Suche, Ersetze
Dim k As Long, i As Long
Dim tmpLine As String
Dim VBComp As Object
Suche = Split("ä ö ü ß Ä Ö Ü")
Ersetze = Split("ae oe ue ss Ae Oe Ue")

For Each VBComp In ActiveWorkbook.VBProject.VBComponents
   With VBComp.CodeModule
      For k = 1 To .countoflines
         For i = 0 To Ubound(Suche)
            tmpLine = .Lines(k, 1)
            tmpLine = Replace(tmpLine, Suche(i), Ersetze(i))
            .ReplaceLine k, tmpLine
         Next
      Next
   End With
Next
End Sub
oder etwas (gewohnt ;)) kryptisches von snb:
Sub M_snb()
  sn = Split("ä ö ü ß Ä Ö Ü ae oe ue ss Ae Oe Ue")

  For Each it In ActiveWorkbook.VBProject.VBComponents
    With it.CodeModule
      c00 = .Lines(1, .countoflines)

      For j = 0 To Ubound(sn) \ 2
        c00 = Replace(c00, sn(j), sn(j + 7))
      Next

      .DeleteLines 1, .countoflines
      .addfromstring c00
    End With
  Next
End Sub
Achtung!
Da snb grundsätzlich auf Variablendeklaration verzichtet, darf oben im Modul NICHT Option Explicit stehen.
Gruß Ralf

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige