2017-06-02 3 views
4

Ich habe eine Excel-Datei, die sich mit Checkboxen befassen muss. Die Namen der Checkboxen werden automatisch in Französisch definiert (aufgrund meiner französischen Installation). Zum Beispiel "Case à cocher 100" anstelle von "Checkbox 100".Excel VBA Checkboxen Englisch vs Französisch

Wenn unsere Schwesterfirma diese Excel-Datei verwendet, stürzt sie jedoch ab, da ihre Installation Englisch ist.

Gibt es eine Möglichkeit, die folgende Arbeit für Englisch und Französisch zu erledigen?

ActiveSheet.CheckBoxes("Case à cocher 488").Interior.Color = RGB(255, 255, 255) 
ActiveSheet.CheckBoxes("Case à cocher 383").Interior.Color = RGB(255, 255, 255) 
ActiveSheet.CheckBoxes("Case à cocher 467").Interior.Color = RGB(255, 255, 255) 
ActiveSheet.CheckBoxes("Case à cocher 461").Interior.Color = RGB(255, 255, 255) 
ActiveSheet.CheckBoxes("Case à cocher 460").Interior.Color = RGB(255, 255, 255) 
ActiveSheet.CheckBoxes("Case à cocher 459").Interior.Color = RGB(255, 255, 255) 
ActiveSheet.CheckBoxes("Case à cocher 458").Interior.Color = RGB(255, 255, 255) 
ActiveSheet.CheckBoxes("Case à cocher 8").Interior.Color = RGB(255, 255, 255) 

Ich kann nicht einen Weg zu finden, scheinen die Checkbox Namen umzubenennen.

+0

Dies ist ein sehr häufiges Problem ist. Im Allgemeinen sollten Sie keinen anderen sprachspezifischen Code als Englisch verwenden, um sicherzustellen, dass der Code in anderen Sprachen ausgeführt wird. Ich vermute, dass es in Ihrem Fall das in Ihrem Code ist. Um dies zu vermeiden, verwenden Sie ein Arbeitsblatt, um diese Felder zu benennen. Verwenden Sie Verweise auf die Zellen, die Namen enthalten. Abhängig von den Spracheinstellungen verwenden Sie eine andere Spalte. – ksauter

+0

Das sieht nach viel Code aus. Wenn Sie können, sollten Sie in Betracht ziehen, eine Schleife zu implementieren und das Gleiche mit jedem der Kontrollkästchen in Ihrem aktiven Blatt zu tun, indem Sie etwas verwenden, das ähnlich ist wie [was hier zu finden ist] (http://www.excel-easy.com/vba) /example/loop-through-controls.html). Dies bringt den Vorteil, dass Sie nicht einmal die Namen der einzelnen Checkboxen kennen müssen. Aber ich weiß nicht, ob Sie nur bestimmte ansprechen müssen ... Selbst dann würde ich überlegen, ein Unterprogramm zu definieren, das damit umgehen soll. –

+0

@ChristopherKyleHorton Ja, ich weiß für die Schleife. Dies ist ein Code, der von einem Ingenieur erstellt wurde, der keine Ahnung von Schleifen hat. Sie erkannten, dass es abgehört wurde, also bin ich dafür verantwortlich es zu reparieren. – Alex

Antwort

7

Überprüfen Sie die regionalen Einstellungen und entscheiden Sie dann, welche verwendet werden soll.

Versuchen Sie, diese

Sub Sample() 
    Dim CBNAME As String 

    Select Case Application.International(XlApplicationInternational.xlCountryCode) 
     Case 1 '<~~ English 
      CBNAME = "CheckBox" 
     Case 33 '<~~ French 
      CBNAME = "Case à cocher" 
    End Select 

    ActiveSheet.CheckBoxes(CBNAME & " 488").Interior.Color = RGB(255, 255, 255) 
End Sub 
+0

Funktioniert super !! – Alex

Verwandte Themen