Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Sprachenunterschiede in Excel/VBA

Forumthread: Sprachenunterschiede in Excel/VBA

Sprachenunterschiede in Excel/VBA
03.05.2018 16:59:26
Obsti
Hallo Liebe VBA-Freunde,
ich habe ein kleines Problem mit den unterschiedlichen Sprachen von Excel und VBA.
Ich habe einen Code gebaut, der von einer Excel Datei Spalten rauskopiert und in eine neues Excel Workbook einfügt, um dieses Workbook anschließend in eine CSV zu exportieren. Mein Problem besteht jetzt darin, dass ich die englische Version benutze, aber meine Kollegin mit der deutschen Version arbeitet und ein 3. mit der Französichen.
Bei ihr tritt das Problem auf, dass sie das Makro nicht ausführen kann, weil bei ihr der Befehl Set newS = newWB.Sheets("Sheet1") nicht ausgeführt werden kann,da ein "Sheet1" in Deutsch "Tabelle1" heißt und es somit nicht erkannt wird, weil die Sprachen unterschiedlich sind. Meine Frage ist nun, ob es eine generische Lösung dafür gibt, mit der das Makro in unterschiedlichen Sprachen ausgeführt werden kann?
Danke im Vorraus!
Anbei der Teil des Codes:
'Copy the data you need
Set currentWB = ThisWorkbook
Set currentS = currentWB.Sheets("Master Data Product")
ActiveSheet.Range("C5:H5,C7:H1505").Select
Selection.Copy
'Create a new file that will receive the data
Set newWB = Workbooks.Add
With newWB
Set newS = newWB.Sheets("Sheet1")
newS.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Sprachenunterschiede in Excel/VBA
03.05.2018 17:04:30
Hajo_Zi
Französichen VBA hat nichts mit dem englischen VBA zu tun, die haben eine eigen Sprache.
Deutsch und Englisch gibt kein Unterschied, da auch in Deutsch in englisch programmiert wird.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Anzeige
AW: Sprachenunterschiede in Excel/VBA
03.05.2018 17:04:38
ChrisL
Hi
Verwende den Codenamen
Userbild
cu
Chris
AW: Sprachenunterschiede in Excel/VBA
03.05.2018 20:28:29
Gerd
Hallo,
oder den Index ... .Sheets(1)
Gruss Gerd
AW: Sprachenunterschiede in Excel/VBA
04.05.2018 09:37:49
Rainer
Hallo Obsti,
ich kenne das Problem und mache es so:
Sheets.Add after:=Sheets(ThisWorkbook.Worksheets.Count)
Set newS = newWB.Sheets(ThisWorkbook.Worksheets.Count)
Gruß,
Rainer
Anzeige
;
Anzeige

Infobox / Tutorial

Sprachenunterschiede in Excel und VBA


Schritt-für-Schritt-Anleitung

  1. Verwenden von Codenamen: Anstatt auf die Blattnamen zuzugreifen, nutze die Codenamen der Blätter. Diese bleiben unabhängig von der Sprache gleich.

    Set newS = ThisWorkbook.Sheets("Master Data Product")
  2. Index verwenden: Du kannst die Blätter auch über ihren Index ansprechen. Das ist unabhängig von der Sprache.

    Set newS = newWB.Sheets(1)
  3. Variablen für Sprache definieren: Erstelle Variablen, die die entsprechenden Blattnamen in der jeweiligen Sprache enthalten, und wechsle zwischen diesen, je nach Benutzer.

    Dim sheetName As String
    sheetName = IIf(Application.LanguageSettings.LanguageID(msoLanguageIDUI) = 1031, "Tabelle1", "Sheet1")
    Set newS = newWB.Sheets(sheetName)

Häufige Fehler und Lösungen

  • Problem: Das Makro läuft nicht, weil die Blattnamen aufgrund der Sprache unterschiedlich sind.

    • Lösung: Nutze die oben genannten Methoden, um die Kompatibilität zu gewährleisten.
  • Problem: Fehlermeldungen beim Export in CSV.

    • Lösung: Stelle sicher, dass die Daten in dem neu erstellten Workbook korrekt formatiert sind, bevor du sie exportierst.

Alternative Methoden

  • VBA-Sprache anpassen: Wenn Du häufig mit unterschiedlichen Sprachen arbeitest, kann es hilfreich sein, Deine VBA-Skripte so zu gestalten, dass sie die Excel Makro Sprache erkennen und entsprechend reagieren.

  • Excel-Funktionen verwenden: Statt VBA direkt zu nutzen, kannst Du auch Excel-Funktionen wie TRANSPOSE verwenden, um Daten in die gewünschte Form zu bringen. Achte darauf, die Funktionen in der entsprechenden Sprache aufzurufen.


Praktische Beispiele

Hier ist ein einfaches Beispiel, das zeigt, wie Du eine Tabelle unabhängig von der Sprache kopieren kannst:

Sub CopyData()
    Dim currentWB As Workbook
    Dim newWB As Workbook
    Dim newS As Worksheet
    Set currentWB = ThisWorkbook
    Set newWB = Workbooks.Add

    ' Verwende den Index
    Set newS = newWB.Sheets(1)

    ' Kopiere die Daten
    currentWB.Sheets("Master Data Product").Range("A1:C10").Copy
    newS.Range("A1").PasteSpecial Paste:=xlPasteValues
End Sub

Tipps für Profis

  • Dokumentation: Halte immer die Excel-Dokumentation in verschiedenen Sprachen bereit. So kannst Du schnell zwischen den verschiedenen VBA-Syntaxen wechseln.

  • Versionskontrolle: Arbeite mit einer Versionierung Deiner Excel-Dateien, um alte Versionen zu behalten, falls es zu Problemen mit der Sprachkompatibilität kommt.


FAQ: Häufige Fragen

1. Warum funktioniert mein Makro nicht in einer anderen Sprache?
Das liegt daran, dass die Blattnamen in Excel je nach Sprache unterschiedlich sind. Verwende Codenamen oder Indizes, um dies zu umgehen.

2. Kann ich VBA in einer bestimmten Sprache programmieren?
VBA selbst ist unabhängig von der Sprache, in der Excel betrieben wird. Du kannst jedoch die Spracheinstellungen deiner Excel-Umgebung berücksichtigen, um die Nutzung zu optimieren.

3. Was ist der beste Weg, um ein Excel-Makro für mehrere Sprachen zu erstellen?
Nutze die Methoden des Codenamens und Indizes, um sicherzustellen, dass Dein Makro in jeder Sprachversion funktioniert. Achte auch darauf, die Excel VBA Sprache entsprechend anzupassen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige