Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Tabellennamen ändern je nach eingestellter Sprache

Begonnen von Pergus, Februar 18, 2014, 13:32:40

⏪ vorheriges - nächstes ⏩

Pergus

Hallo Excel-Guru's!

Ich stehe vor einer Frage, die mich langsam aber sicher verzweifeln lässt.
Ich habe eine Tabelle, die in Spalte A eine fortlaufende Nummerierung beinhaltet, in Spalte B stehen die Tabellennamen der aktuellen Arbeitsmappe in deutsch, in Spalte C in italienisch und in Spalte D in englisch.
Je nach Benutzersprache soll der Name aller Tabellen in der jeweiligen Sprache "umgetauft" werden, wenn keine Sprache zutrifft, dann soll die Sprache Englisch ausgegeben werden.
Die Sprache ermittle ich wiefolgt:
Sub Code()
   Country_Code = Application.International(xlCountryCode)
   If Country_Code = 49 Then
      MsgBox ("de")
   ElseIf Country_Code = 39 Then
      MsgBox ("it")
   ElseIf Country_Code = 1 Then
      MsgBox ("en")
   End If
End Sub

Wer hat da eine Idee, wie ich das bewältigen kann?

Danke im Voraus!
LG, Gustav
Win7, Office Professional 2010

database

#1
Hallo,

eine interessante Problemstellung!

Hmmm... versuch mal so:



Sub Code()

   Dim i As Long, Country_Code as Long

   Country_Code = Application.International(xlCountryCode)

   If Country_Code = 49 Then
       MsgBox "Sprache = de"
       For i = 1 To Worksheets.Count
           Worksheets(i).Name = Cells(i, 2) 'Beginnt in Zeile 1(i) und Spalte 2 (B)
       Next
   ElseIf Country_Code = 39 Then
       MsgBox "Sprache = it"
       For i = 1 To Worksheets.Count
           Worksheets(i).Name = Cells(i, 3) 'Beginnt in Zeile 1(i) und Spalte 3 (C)
       Next   
   ElseIf Country_Code = 1 Then
       MsgBox "Sprache = en"
       For i = 1 To Worksheets.Count
           Worksheets(i).Name = Cells(i, 4) 'Beginnt in Zeile 1(i) und Spalte 4 (D)
       Next   
   End If
End Sub



oder eine andere Variante, die mir persönlich besser gefällt  :)



Sub Code()

   Dim i As Long, Country_Code as Long

   Country_Code = Application.International(xlCountryCode)

   Select Case Country_Code
       Case 49
           MsgBox "Sprache = de"
           For i = 1 To Worksheets.Count
               Worksheets(i).Name = Cells(i, 2) 'Beginnt in Zeile 1(i) und Spalte 2 (B)
           Next
       Case 39
           MsgBox "Sprache = it"
           For i = 1 To Worksheets.Count
               Worksheets(i).Name = Cells(i, 3) 'Beginnt in Zeile 1(i) und Spalte 3 (C)
           Next   
       Case Else
           MsgBox "Sprache = en"
           For i = 1 To Worksheets.Count
               Worksheets(i).Name = Cells(i, 4) 'Beginnt in Zeile 1(i) und Spalte 4 (D)
           Next   
   End Select
End Sub




Voraussetzung ist dass für jedes Arbeitsblatt ein Eintrag in deiner Auflistung der Namen steht - die Liste der Tabellennamen muss in der ersten Zeile beginnen - sonst hast du unbenannte Arbeitsblätter,
das dann wiederum einen Laufzeitfehler 1004 (anwendungs- oder objektdefinierter Fehler) hervorrufen würde.

Beachte bitte, dass auch dein Arbeitsblatt mit den Tabellennamen umbenannt wird, da es sich in der gleichen Arbeitsmappe befindet.

HTH