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

Forumthread: Problem Deutsch<-->Englisch

Problem Deutsch<-->Englisch
Martin
Hallo ich hab gestern schon mein Problem hier reingestellt, keiner konnte mir helfen.
Dann probier ich heut halt nochmal:
Ich hab eine deutsche Excel - Version und möchte bestimmten Zellen über VBA boolsche Werte zuweisen, die jedoch in Englisch (also "true" oder "false") dargestellt werden sollen. Die Darstellung soll auch auf anderen Excel - Versionen sprachenunabhängig immer in Englisch geschehen. Bisher mach ich das so, indem ich eine umständliche "if" Abfrage reinpack, die dann den String "true" oder "false" der Zelle zuweist.
Eingabe für die Bedingung ist eine 0 oder 1 (aus einer csv - file)
Da das ganze in einer Schleife ca. 72000 mal durchläuft bekomm ich da Probleme mit der Performance.
Gibt es da irgendeine Methode, die das einfach in Englisch konvertiert?
Danke für Eure Hilfe
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Problem Deutsch<-->Englisch
ChrisL
Hi Martin
Die Antwort von Por scheint mir tatsächlich nicht besonders hilfreich, aber ein Feedback hättest du trotzdem geben können, dann hätte sich sicher jemand der Frage angenommen (gibt dafür auch die CheckBox "Frage noch offen")...
https://www.herber.de/forum/messages/410550.html
aber vermutlich versteht niemand dein Problem.
In VBA programmiere ich IMMER in Englisch und dies führt auch in der deutschen Version nicht zu Problemen. False wird automatisch als Falsch interpretiert resp. True als Wahr.
Probleme gibt es nur dann, wenn du die Variable nicht als Boolean sondern als String deklarierst, aber dann ist es ja auch kein boolscher Wert mehr :-)
Gruss
Chris
Anzeige
AW: Problem Deutsch<-->Englisch
Martin
Hi chris
Das Problem ist, dass laut der Spezifikation, nach der ich die Software erstellen soll, die Darstellung in der Tabelle grundsäztlich in Englisch erfolgen soll, also auch in einer deutschen Version soll dann da nicht "WAHR" sondern "true" stehen.
Gruß
Martin
AW: Problem Deutsch<-->Englisch
ChrisL
Hi Martin
Stehen tut auch "True" und nicht "Wahr", meine es wird einfach als "Wahr" interpretiert.
Im Anhang mal folgendes Codebeispiel...

Private Sub CommandButton1_Click()
Dim TestBl As Boolean
TestBl = True
If TestBl = True Then MsgBox "jajaja"
End Sub

https://www.herber.de/bbs/user/5069.xls
Wenn du die Datei öffnest, steht da True oder Wahr drin. Bei mir True, auch wenn ich es in der deutschen Version anschaue.
Gruss
Chris
Anzeige
AW: Problem Deutsch<-->Englisch
ChrisL
Hi Martin
Verstehe langsam... du könntest ein Makro verwenden, welches das CSV Dokument erzeugt. Der nachstehende Code könnte man als Add-In verwenden und so einen zusätzlichen Menüpunkt erzeugen...
Gruss
Chris

Private Sub Workbook_Open()
Dim cbmCommandBarMenu As CommandBar
Dim cbmDemoMenu As CommandBarPopup
Dim cbmCommandBarMenuCascade As CommandBarPopup
' Clear the way for new menu.
On Error Resume Next
Application.CommandBars("Worksheet Menu Bar") _
.Controls("&Location Management").Delete
' Identify built-in menu bar to work with.
Set cbmCommandBarMenu = Application _
.CommandBars("Worksheet Menu Bar")
' Add the new menu.
With cbmCommandBarMenu.Controls
Set cbmDemoMenu = _
.Add(Type:=msoControlPopup)
' Set caption for new menu.
With cbmDemoMenu
.Caption = "&Location Management"
.Visible = True
' Add single menu item and set properties.
With .Controls.Add(msoControlButton)
.OnAction = "CSVExport"
.Caption = "&CSV Export"
.Visible = True
End With
End With
End With
End Sub

Option Explicit
Sub CSVExport()
Dim sFile As Variant, msgAntwort As Variant
Dim Daten As Range, Zeile As Object, Zelle As Object
Dim strTemp As String
On Error GoTo errorhandler
With ActiveSheet
sFile = Application.GetSaveAsFilename(InitialFilename:="Location Management " & .Range("A2") & ".csv", _
FileFilter:="CSV-Datei (*.csv), *.csv")
If sFile = False Then Exit Sub
If Dir(sFile) "" Then
msgAntwort = MsgBox("Die Datei '" & sFile & "' besteht bereits. Möchten Sie die bestehende Datei ersetzen?", _
vbQuestion + vbYesNo, "Warnung")
If msgAntwort = vbNo Then Exit Sub
End If
Set Daten = .UsedRange
Close
Open sFile For Output As #1
For Each Zeile In Daten.Rows
If Zeile.Row > .Range("A65536").End(xlUp).Row Then
MsgBox "Die Datei wurde erfolgreich exportiert.", vbInformation, "Export erfolgreich"
Exit Sub
End If
For Each Zelle In Zeile.Cells
If CStr(Zelle) = "Wahr" Then strTemp = "True" & ";"
Else
strTemp = strTemp & CStr(Zelle.Text) & ";"
End If
Next Zelle
Print #1, strTemp
strTemp = ""
Next Zeile
Close #1
End With
MsgBox "Die Datei wurde erfolgreich exportiert.", vbInformation, "Export erfolgreich"
Exit Sub
errorhandler:
MsgBox "Es ist ein Fehler aufgetreten. Die Datei konnte nicht vollständig exportiert werden.", vbCritical, "Fehlermeldung"
End Sub
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Problem Deutsch<-->Englisch in Excel


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Neues Modul erstellen:

    • Klicke mit der rechten Maustaste auf VBAProject (DeinDateiname), wähle Einfügen und dann Modul.
  3. Code einfügen:

    • Füge den folgenden Code in das Modul ein, um boolsche Werte in Englisch darzustellen:
    Sub ConvertToEnglish()
       Dim Zelle As Range
       For Each Zelle In Selection
           If Zelle.Value = True Then
               Zelle.Value = "True"
           ElseIf Zelle.Value = False Then
               Zelle.Value = "False"
           End If
       Next Zelle
    End Sub
  4. Makro ausführen:

    • Markiere die Zellen, die Du umwandeln möchtest, gehe zurück zum VBA-Editor und drücke F5, um das Makro auszuführen.
  5. Ergebnisse überprüfen:

    • Die ausgewählten Zellen sollten jetzt die Werte "True" oder "False" anstelle von "Wahr" oder "Falsch" anzeigen.

Häufige Fehler und Lösungen

  • Problem: Die Werte ändern sich nicht.

    • Lösung: Stelle sicher, dass Du die richtigen Zellen ausgewählt hast und dass sie tatsächliche boolsche Werte enthalten.
  • Problem: Fehler beim Ausführen des Makros.

    • Lösung: Prüfe, ob die Makros in Excel aktiviert sind (Datei -> Optionen -> Vertrauensstellungeinstellungen).

Alternative Methoden

Eine alternative Methode zur Umwandlung in Englisch wäre die Verwendung von Excel-Formeln. Zum Beispiel kannst Du die WENN-Funktion nutzen:

=WENN(A1=WAHR; "True"; "False")

Diese Formel gibt "True" zurück, wenn A1 den Wert WAHR hat, andernfalls gibt sie "False" zurück.


Praktische Beispiele

Hier ist ein Beispiel, wie Du eine CSV-Datei erzeugen kannst, die boolsche Werte in Englisch ausgibt:

Sub CSVExport()
    Dim sFile As Variant
    Dim Daten As Range
    Dim Zeile As Object
    Dim Zelle As Object
    Dim strTemp As String

    sFile = Application.GetSaveAsFilename(FileFilter:="CSV-Datei (*.csv), *.csv")

    If sFile = False Then Exit Sub

    Set Daten = ActiveSheet.UsedRange

    Open sFile For Output As #1
    For Each Zeile In Daten.Rows
        strTemp = ""
        For Each Zelle In Zeile.Cells
            If Zelle.Value = WAHR Then
                strTemp = strTemp & "True;"
            Else
                strTemp = strTemp & CStr(Zelle.Value) & ";"
            End If
        Next Zelle
        Print #1, strTemp
    Next Zeile
    Close #1
End Sub

Tipps für Profis

  • Bedingte Formatierung: Nutze die bedingte Formatierung, um die Zellen farblich hervorzuheben, die "True" oder "False" enthalten.

  • Automatisierung: Setze den VBA-Code in ein Add-In, um die Funktionalität in verschiedenen Excel-Umgebungen zu nutzen.

  • Performance: Wenn Du mit großen Datenmengen arbeitest, überlege, die Schleifen zu optimieren, um die Performance zu verbessern.


FAQ: Häufige Fragen

1. Wie kann ich Excel auf Englisch umstellen? Du kannst die Sprache in den Excel-Optionen unter "Sprache" ändern. Achte darauf, dass Du die englische Version oder die Spracheinstellungen installiert hast.

2. Warum erscheinen die Werte in einer anderen Sprache als erwartet? Excel interpretiert die Werte basierend auf der Sprache der Excel-Version. Stelle sicher, dass Du die richtigen Formeln und Bedingungen verwendest.

3. Kann ich die VBA-Programmierung auch in der deutschen Version verwenden? Ja, die VBA-Programmierung ist unabhängig von der Sprache, allerdings erscheinen die Standardwerte in der Sprache Deiner Excel-Version.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige