Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
668to672
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
668to672
668to672
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Englische Monate als Deutsche erkennen

Englische Monate als Deutsche erkennen
19.09.2005 16:42:59
Horst
Hallo Forum,
habe ein kniffliges Problem. Wie ist es möglich in einem VBA-Code englische Monatsbezeichnungen wie z.B. Oct-05, in ein stinknormales Okt. 05 oder Okt 05 umzuwandeln, ohne die Ländereinstellung im System zu verändern.
Horst

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Englische Monate als Deutsche erkennen
19.09.2005 16:46:30
joko0803
Hallo Horst,
es ist davon abzuraten ein VBA in deutscher Sprache zu installieren.
Die Monatsnamen in deinem Excel-Sheet kannst du allerdings umstellen wenn du die Ländereinstellungen entsprechend anpasst.
Gruß
John
AW: Englische Monate als Deutsche erkennen
19.09.2005 17:04:12
Peter
Hallo Horst,
wie und wo bekommst du die englischen Monate geliefert?
Wie sehen die aus? Jan-05, Feb-05, Mar-05 oder wie?
Mit Select Case solltest du doch relativ schnell zu einer Übersetzung kommen!?
Viele Grüße Peter
Das Forum lebt auch von den Rückmeldungen.
AW: Englische Monate als Deutsche erkennen
19.09.2005 18:15:47
Horst
Hallo Peter,
danke für die Rückmeldung. Folgende Formate sind möglich:
Oct-05 für Oktober 05
Q4 05 für Quartal 4 in 05
Cal 06 für Kalenderjahr 06
15-Oct-2005 für diesen 15 Oktober.
Ich selber benötige daraus die Angabe wie Okt. 05 oder KJ 06, bzw. 15.Okt. 05
Die Daten bekomme ich aus einen externen Excelmappe geliefert und dachte ich könnte sie bequem umwandeln. Allerdings sind die Daten jeden Tag neu in dieser englischen Schreibweise. Deshalb möchte ich diese Umwandlung automatisieren.
Denke mittlerweile auch, dass ein case-Anweisung am schnellsten zum Ziel führt. Oder hast Du noch einen Trick in der Tasche :-)
Horst
Anzeige
AW: Englische Monate als Deutsche erkennen
19.09.2005 18:22:55
Peter
Hallo Horst,
ich habe keinen weiteren Trick - nur reelle 'Handarbeit' - siehe beigefügtes Muster.
https://www.herber.de/bbs/user/26748.xls
Viele Grüße Peter
Das Forum lebt auch von den Rückmeldungen.
AW: Englische Monate als Deutsche erkennen
19.09.2005 18:34:12
Horst
Danke Peter,
Problem damit gelöst.
Schönen Abend noch.
Horst
AW: Englische Monate als Deutsche erkennen
21.09.2005 21:18:41
Peter
Hallo Horst,
spät, aber nicht zu spät (hoffe ich) eine Lösung für all deine Probleme.


Option Explicit
Option Base 1
Sub Uebersetzen()   '  Kürzel von Englisch nach Deutsch übersetzen
'   Wichtig: 'Option Base 1' - muss eingefügt werden!
'
'   es werden zwei Varianten angeboten: Einmal als Select Case für
'   Spalte D & Variante zwei als kürzere Array-Lösung für Spalte E
'
Dim iZeile     As Integer          ' For/Next für die lfd. Zeile
Dim iPosition  As Integer          ' Position im String
Dim iIndx      As Integer          ' For/Next Index
Dim aMonatE    As Variant          ' die Monatsnamen englisch
Dim aMonatD    As Variant          ' die Monatsnamen deutsch
Dim sMonat     As String * 3       ' Zwischenbereich für engl. Monat
   Application.ScreenUpdating = False
   
   Range("D1:E15").ClearContents
'                         Monat nach Spalte D übersetzen
   For iZeile = 1 To 12
      Select Case Left(LCase(Range("C" & iZeile).Value), 3)
         Case "jan": Range("D" & iZeile).Value = "Jan"
         Case "feb": Range("D" & iZeile).Value = "Feb"
         Case "mar": Range("D" & iZeile).Value = "Mrz"
         Case "apr": Range("D" & iZeile).Value = "Apr"
         Case "may": Range("D" & iZeile).Value = "Mai"
         Case "jun": Range("D" & iZeile).Value = "Jun"
         Case "jul": Range("D" & iZeile).Value = "Jul"
         Case "aug": Range("D" & iZeile).Value = "Aug"
         Case "sep": Range("D" & iZeile).Value = "Sep"
         Case "oct": Range("D" & iZeile).Value = "Okt"
         Case "nov": Range("D" & iZeile).Value = "Nov"
         Case "dec": Range("D" & iZeile).Value = "Dez"
      End Select
      Range("D" & iZeile).Value = Range("D" & iZeile).Value & "-" & Right(Year(Date), 2)
   Next iZeile
'                        CalenderYear übersetzen
   If LCase(Left(Range("C13").Value, 3)) = "cal" Then
      Range("D13").Value = "KJ " & Mid(Range("C13").Value, 5, 2)
   End If
'                        Datum in Form TT-Mmm-JJJ übersetzen
   aMonatE = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", _
                  "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
   
   aMonatD = Array("Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", _
                  "Jul", "Aug", "Sep", "Okt", "Nov", "Dez")
   
   For iIndx = 1 To 12               ' aMonatE abarbeiten
      sMonat = LCase(aMonatE(iIndx)) ' englische Monat nach Zwischenbereich
      iPosition = InStr(LCase(Range("C14").Value), sMonat)
      If iPosition > 0 Then          ' gefunden, wenn größer Null
         Range("D14").Value = Left(Range("C14").Value, 2) & ". " & _
            aMonatD(iIndx) & ". " & Right(Range("C14").Value, 2)
         Exit For                    ' For/Next verlassen
      End If
   Next iIndx
'                         Quartal übersetzen
   iPosition = InStr(UCase(Range("C15").Value), "Q")
   If iPosition > 0 Then
      Range("D15").Value = "Quartal " & Mid(Range("C15").Value, iPosition + 1, 1) _
         & " in " & Mid(Range("C15").Value, iPosition + 3, 2)
   End If
'                         Monat nach Spalte E übersetzen
   For iZeile = 1 To 12
      For iIndx = 1 To 12               ' aMonatE abarbeiten
         sMonat = LCase(aMonatE(iIndx)) ' englische Monat nach Zwischenbereich
         iPosition = InStr(LCase(Range("C" & iZeile).Value), sMonat)
         If iPosition > 0 Then          ' gefunden, wenn größer Null
            Range("E" & iZeile).Value = aMonatD(iIndx) & "-" & Right(Year(Date), 2)
            Exit For                    ' For/Next verlassen
         End If
      Next iIndx
   Next iZeile
   
   Application.ScreenUpdating = True
Viele Grüße Peter
Das Forum lebt auch von den Rückmeldungen.
Anzeige

229 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige