Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" 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