3.6k Aufrufe
Gefragt in Tabellenkalkulation von ahorn38 Experte (3.3k Punkte)
Hallo,

hat jemand einen Code um aus der string-Variablen "Januar" nur "Jan" zu machen. Habe es mit Format("Januar","MMM") probiert, klappt aber nicht.
Gruß

15 Antworten

0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo,

hilft Dir das?

Sub test()
Dim strMon As String
strMon = "Januar"
MsgBox Left(strMon, 3)
End Sub


Gruß
Rainer
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
das geht auch ohne Code.
=("01." & B162 &".2014")*1
und Format MMM
in B162 steht der Monat

Gruß Hajo
0 Punkte
Beantwortet von
Hallo Rainer
Das Reicht leide nicht. Ich brauche allgemeinen Code für alle Monate.
Im excel klappt das mit text(1&"Januar","MMM"), aber leider nicht als
Code. Gruss
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo,

das geht auch mit Code

Sub test()
MsgBox WorksheetFunction.Text(1 & Range("A1"), "MMM")
End Sub

In A1 stehen die Monate.

Es wäre schön, wenn Du etwas ausführlicher schildern würdest, was Du vor hast..

Gruß
Rainer
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo noch mal,

hab gerade festgestellt, das mein Vorschlag nicht bei allen Monaten funktioniert.

Schreib doch mal etwas mehr über Dein Vorhaben.

Gruß
Rainer
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo,
versuch es mal so:

Sub test()
MsgBox Format(Now(), "MMM")
End Sub

Gruß
fedjo
0 Punkte
Beantwortet von ahorn38 Experte (3.3k Punkte)
Hallo Zusammen,

danke erst einmal für eure Vorschläge. Aber ganz ist damit mein Problem noch nicht gelöst.
Ich habe eine Tabelle mit den Spaltenüberschriften der einzelnen 12 Monate voll ausgeschrieben. Aus dieser Tabelle ziehe ich Daten heraus und erstelle damit Rechnungs-Nummern. Die Rechnungsnummer beinhalten u.a. den Monat, in dem der Rechnungsbetrag angefallen ist, darf aber lt. Vorgabe nur aus drei Buchstaben bestehen.
Ich nehme also den Monat aus der Spaltenüberschrift und muss diesen ins Format "MMM" kriegen und zwar für jeden Monat von Januar bis Dezember.

Das klappt im Excel mit =TEXT(1&T14;"MMM") wobei inT14 der Monatsname steht, einwandfrei, ich brauch aber einen Code dafür.
Gruß
Andreas
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Andreas,

was hindert Dich daran. meinen ersten Vorschlag geringfügig zu ändern?

Sub test()
Dim strMon As String
strMon = Range("T14").Value
MsgBox Left(strMon, 3)
End Sub


Gruß
Rainer
0 Punkte
Beantwortet von ahorn38 Experte (3.3k Punkte)
Hallo Rainer,

damit werden wirklich immer die ersten drei Buchstaben angezeigt, aber ich brauche aus Konformitätsgründen ein Darstellung wie Jan, Feb, Mrz, .... und nicht Mär.
Der Vorschlag von Hajo würde das richtige Ergebnis liefern, nur müsste ich ".2014" durch year(date) ersetzen, aber das geht dann auch wieder nicht...?

Momentan sieht die Zeile folgendermaßen aus:
.....
text = " " & "VT-" & Year(Date) & "-" & Format("01." & Cells(2, j - 2) & ".2014", "MMM"), wobei der Monatsname unter Cells(2,j,-2) steht.
Das Ergebnis ist text= VT-2014-Mrz

Gruß Andreas
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Andreas,

mir fällt dazu nur ein Umweg ein, ob er Dir was nützt, musst Du selbst entscheiden.

In A1 bis L1 stehen keine Monatsnamen sondern vollständige Daten (formatiert als "MMMM"

Folgender Code bringt Dir dann eine Zeile tiefer das gewünschte Ergebnis.

Sub test()
Dim rngC As Range
For Each rngC In Range("A1:L1")
rngC.Offset(1, 0).Value = " VT-" & Format(rngC, "yyyy-mmm")
Next
End Sub


Gruß
Rainer
...