Hallo Experten,
wie bekomme ich aus einer Zahl 3 den Monat „März“?
Ich habe probiert FORMAT(„3“,„mmm“), aber das liefert immer nur „Januar“.
Danke
Martin
Hallo Experten,
wie bekomme ich aus einer Zahl 3 den Monat „März“?
Ich habe probiert FORMAT(„3“,„mmm“), aber das liefert immer nur „Januar“.
Danke
Martin
Hi,
format(dateserial(2010,3,3),„mmmm“)
Gruß. Timo
wie bekomme ich aus einer Zahl 3 den Monat „März“?
Ich habe probiert FORMAT(„3“,„mmm“), aber das liefert immer
nur „Januar“.
Hallo Martin,
Sub tt()
MsgBox Format(„1.3“, „mmmm“)
End Sub
oder
Sub tt2()
Dim Wert
Wert = 3
MsgBox Format(„1.“ & Wert, „mmmm“)
End Sub
Gruß
Reinhard
Hi Reinhard,
warum ca. 1,5 Stunden nach einer funktionierenden Lösung zwei weitere, sich kaum unterscheidende Wege postest, ist mir zwar nicht ganz klar, aber gut.
Nun aber ein völlig neuer Weg:
Public Function Monat(ByVal Zahl As Byte) As String
Monat = " "
If Zahl = 1 Then Mid(Monat, 1, 1) = "J"
If Zahl = 1 Then Mid(Monat, 2, 1) = "a"
If Zahl = 1 Then Mid(Monat, 3, 1) = "n"
If Zahl = 1 Then Mid(Monat, 4, 1) = "u"
If Zahl = 1 Then Mid(Monat, 5, 1) = "a"
If Zahl = 1 Then Mid(Monat, 6, 1) = "r"
If Zahl = 10 Then Mid(Monat, 1, 1) = "O"
If Zahl = 10 Then Mid(Monat, 2, 1) = "k"
If Zahl = 10 Then Mid(Monat, 3, 1) = "t"
If Zahl = 10 Then Mid(Monat, 4, 1) = "o"
If Zahl = 10 Then Mid(Monat, 5, 1) = "b"
If Zahl = 10 Then Mid(Monat, 6, 1) = "e"
If Zahl = 10 Then Mid(Monat, 7, 1) = "r"
If Zahl = 11 Then Mid(Monat, 1, 1) = "N"
If Zahl = 11 Then Mid(Monat, 2, 1) = "o"
If Zahl = 11 Then Mid(Monat, 3, 1) = "v"
If Zahl = 11 Then Mid(Monat, 4, 1) = "e"
If Zahl = 11 Then Mid(Monat, 5, 1) = "m"
If Zahl = 11 Then Mid(Monat, 6, 1) = "b"
If Zahl = 11 Then Mid(Monat, 7, 1) = "e"
If Zahl = 11 Then Mid(Monat, 8, 1) = "r"
If Zahl = 12 Then Mid(Monat, 1, 1) = "D"
If Zahl = 12 Then Mid(Monat, 2, 1) = "e"
If Zahl = 12 Then Mid(Monat, 3, 1) = "z"
If Zahl = 12 Then Mid(Monat, 4, 1) = "e"
If Zahl = 12 Then Mid(Monat, 5, 1) = "m"
If Zahl = 12 Then Mid(Monat, 6, 1) = "b"
If Zahl = 12 Then Mid(Monat, 7, 1) = "e"
If Zahl = 12 Then Mid(Monat, 8, 1) = "r"
If Zahl = 2 Then Mid(Monat, 1, 1) = "F"
If Zahl = 2 Then Mid(Monat, 2, 1) = "e"
If Zahl = 2 Then Mid(Monat, 3, 1) = "b"
If Zahl = 2 Then Mid(Monat, 4, 1) = "r"
If Zahl = 2 Then Mid(Monat, 5, 1) = "u"
If Zahl = 2 Then Mid(Monat, 6, 1) = "a"
If Zahl = 2 Then Mid(Monat, 7, 1) = "r"
If Zahl = 3 Then Mid(Monat, 1, 1) = "M"
If Zahl = 3 Then Mid(Monat, 2, 1) = "ä"
If Zahl = 3 Then Mid(Monat, 3, 1) = "r"
If Zahl = 3 Then Mid(Monat, 4, 1) = "z"
If Zahl = 4 Then Mid(Monat, 1, 1) = "A"
If Zahl = 4 Then Mid(Monat, 2, 1) = "p"
If Zahl = 4 Then Mid(Monat, 3, 1) = "r"
If Zahl = 4 Then Mid(Monat, 4, 1) = "i"
If Zahl = 4 Then Mid(Monat, 5, 1) = "l"
If Zahl = 5 Then Mid(Monat, 1, 1) = "M"
If Zahl = 5 Then Mid(Monat, 2, 1) = "a"
If Zahl = 5 Then Mid(Monat, 3, 1) = "i"
If Zahl = 6 Then Mid(Monat, 1, 1) = "J"
If Zahl = 6 Then Mid(Monat, 2, 1) = "u"
If Zahl = 6 Then Mid(Monat, 3, 1) = "n"
If Zahl = 6 Then Mid(Monat, 4, 1) = "i"
If Zahl = 7 Then Mid(Monat, 1, 1) = "J"
If Zahl = 7 Then Mid(Monat, 2, 1) = "u"
If Zahl = 7 Then Mid(Monat, 3, 1) = "l"
If Zahl = 7 Then Mid(Monat, 4, 1) = "i"
If Zahl = 8 Then Mid(Monat, 1, 1) = "A"
If Zahl = 8 Then Mid(Monat, 2, 1) = "u"
If Zahl = 8 Then Mid(Monat, 3, 1) = "g"
If Zahl = 8 Then Mid(Monat, 4, 1) = "u"
If Zahl = 8 Then Mid(Monat, 5, 1) = "s"
If Zahl = 8 Then Mid(Monat, 6, 1) = "t"
If Zahl = 9 Then Mid(Monat, 1, 1) = "S"
If Zahl = 9 Then Mid(Monat, 2, 1) = "e"
If Zahl = 9 Then Mid(Monat, 3, 1) = "p"
If Zahl = 9 Then Mid(Monat, 4, 1) = "t"
If Zahl = 9 Then Mid(Monat, 5, 1) = "e"
If Zahl = 9 Then Mid(Monat, 6, 1) = "m"
If Zahl = 9 Then Mid(Monat, 7, 1) = "b"
If Zahl = 9 Then Mid(Monat, 8, 1) = "e"
If Zahl = 9 Then Mid(Monat, 9, 1) = "r"
Monat = Trim(Monat)
End Function
Gruß. Timo
Hallo Timo,
warum ca. 1,5 Stunden nach einer funktionierenden Lösung zwei
weitere, sich kaum unterscheidende Wege postest, ist mir zwar
nicht ganz klar, aber gut.
vielleicht weil in deinem Code nicht eindeutig klar wird wie aus einer 3 ein Monatsname wird?
Sicher, mittels F1 käme man darauf…
Vielleicht weil viele Wege nach Rom führen und es gut für den Pilger ist wenn er auswählen kann.
Nun aber ein völlig neuer Weg:
*grins* Du schreibst du bist Programmierer, irgendwie schließe ich aus deinem neuen Weg daß du es gewohnt bist nach Codezeilenanzahl bezahlt zu werden )
Gruß
Reinhard
Hi Reinhard,
Hallo Tim,
warum ca. 1,5 Stunden nach einer funktionierenden Lösung zwei
weitere, sich kaum unterscheidende Wege postest, ist mir zwar
nicht ganz klar, aber gut.
Was spricht dagegen Dir mehrere Wege zu zeigen?
Nun aber ein völlig neuer Weg:
Public Function Monat(ByVal Zahl As Byte) As String
Monat = " "
If Zahl = 1 Then Mid(Monat, 1, 1) = „J“
If Zahl = 1 Then Mid(Monat, 2, 1) = „a“
If Zahl = 1 Then Mid(Monat, 3, 1) = „n“
If Zahl = 1 Then Mid(Monat, 4, 1) = „u“
If Zahl = 1 Then Mid(Monat, 5, 1) = „a“
If Zahl = 1 Then Mid(Monat, 6, 1) = „r“
If Zahl = 10 Then Mid(Monat, 1, 1) = „O“
If Zahl = 10 Then Mid(Monat, 2, 1) = „k“
If Zahl = 10 Then Mid(Monat, 3, 1) = „t“
If Zahl = 10 Then Mid(Monat, 4, 1) = „o“
If Zahl = 10 Then Mid(Monat, 5, 1) = „b“
If Zahl = 10 Then Mid(Monat, 6, 1) = „e“
If Zahl = 10 Then Mid(Monat, 7, 1) = „r“
If Zahl = 11 Then Mid(Monat, 1, 1) = „N“
If Zahl = 11 Then Mid(Monat, 2, 1) = „o“
If Zahl = 11 Then Mid(Monat, 3, 1) = „v“
If Zahl = 11 Then Mid(Monat, 4, 1) = „e“
If Zahl = 11 Then Mid(Monat, 5, 1) = „m“
If Zahl = 11 Then Mid(Monat, 6, 1) = „b“
If Zahl = 11 Then Mid(Monat, 7, 1) = „e“
If Zahl = 11 Then Mid(Monat, 8, 1) = „r“
If Zahl = 12 Then Mid(Monat, 1, 1) = „D“
If Zahl = 12 Then Mid(Monat, 2, 1) = „e“
If Zahl = 12 Then Mid(Monat, 3, 1) = „z“
If Zahl = 12 Then Mid(Monat, 4, 1) = „e“
If Zahl = 12 Then Mid(Monat, 5, 1) = „m“
If Zahl = 12 Then Mid(Monat, 6, 1) = „b“
If Zahl = 12 Then Mid(Monat, 7, 1) = „e“
If Zahl = 12 Then Mid(Monat, 8, 1) = „r“
If Zahl = 2 Then Mid(Monat, 1, 1) = „F“
If Zahl = 2 Then Mid(Monat, 2, 1) = „e“
If Zahl = 2 Then Mid(Monat, 3, 1) = „b“
If Zahl = 2 Then Mid(Monat, 4, 1) = „r“
If Zahl = 2 Then Mid(Monat, 5, 1) = „u“
If Zahl = 2 Then Mid(Monat, 6, 1) = „a“
If Zahl = 2 Then Mid(Monat, 7, 1) = „r“
If Zahl = 3 Then Mid(Monat, 1, 1) = „M“
If Zahl = 3 Then Mid(Monat, 2, 1) = „ä“
If Zahl = 3 Then Mid(Monat, 3, 1) = „r“
If Zahl = 3 Then Mid(Monat, 4, 1) = „z“
If Zahl = 4 Then Mid(Monat, 1, 1) = „A“
If Zahl = 4 Then Mid(Monat, 2, 1) = „p“
If Zahl = 4 Then Mid(Monat, 3, 1) = „r“
If Zahl = 4 Then Mid(Monat, 4, 1) = „i“
If Zahl = 4 Then Mid(Monat, 5, 1) = „l“
If Zahl = 5 Then Mid(Monat, 1, 1) = „M“
If Zahl = 5 Then Mid(Monat, 2, 1) = „a“
If Zahl = 5 Then Mid(Monat, 3, 1) = „i“
If Zahl = 6 Then Mid(Monat, 1, 1) = „J“
If Zahl = 6 Then Mid(Monat, 2, 1) = „u“
If Zahl = 6 Then Mid(Monat, 3, 1) = „n“
If Zahl = 6 Then Mid(Monat, 4, 1) = „i“
If Zahl = 7 Then Mid(Monat, 1, 1) = „J“
If Zahl = 7 Then Mid(Monat, 2, 1) = „u“
If Zahl = 7 Then Mid(Monat, 3, 1) = „l“
If Zahl = 7 Then Mid(Monat, 4, 1) = „i“
If Zahl = 8 Then Mid(Monat, 1, 1) = „A“
If Zahl = 8 Then Mid(Monat, 2, 1) = „u“
If Zahl = 8 Then Mid(Monat, 3, 1) = „g“
If Zahl = 8 Then Mid(Monat, 4, 1) = „u“
If Zahl = 8 Then Mid(Monat, 5, 1) = „s“
If Zahl = 8 Then Mid(Monat, 6, 1) = „t“
If Zahl = 9 Then Mid(Monat, 1, 1) = „S“
If Zahl = 9 Then Mid(Monat, 2, 1) = „e“
If Zahl = 9 Then Mid(Monat, 3, 1) = „p“
If Zahl = 9 Then Mid(Monat, 4, 1) = „t“
If Zahl = 9 Then Mid(Monat, 5, 1) = „e“
If Zahl = 9 Then Mid(Monat, 6, 1) = „m“
If Zahl = 9 Then Mid(Monat, 7, 1) = „b“
If Zahl = 9 Then Mid(Monat, 8, 1) = „e“
If Zahl = 9 Then Mid(Monat, 9, 1) = „r“
Monat = Trim(Monat)
End Function
Was soll der Mist?
Warum nutzt du nicht Select Case ?
Functionen dienen der erleichterung und sie nutzt man wenn diese Funktion mehrmals aufgerufen wird.
Gehen wir einmal davon aus und auch das die Variable Monat öffentlich declariert ist. Was passiert dann wenn du die Function einmal mit dem Wert 12 aufrufst und danach mit dem Wert 5!
Im ersten Aufruf erhaelst du Dezember, im zweiten danach „Maiember“ Ist das so gewollt ?
Was soll passieren wenn die Function einen Wert > 12 oder
Hallo,
ich weiß zwar nicht was an deiner Lösung „neu“ ist (außer dass sie mit 72 Zeilen doch recht … lang ist für so eine Lösung.
Auch verstehe ich nicht warum du dann nicht gleich geschrieben hast
"If Zahl = 1 Then Monat = „Januar“ etc. Da komme ich beim besten Willen nicht drauf.
Meine Lösung hat 6 Zeilen, und funktioniert auch
LG
Hallo,
ein kurzes 6-Zeiliges Makro reicht vollkommen aus
Function MonatWort(Zahl As Byte) As String
MonatWort = "#ungültig"
If Zahl \> 1 Or Zahl
diese Funktion kann man jetzt (unter "benutzerdefiniert") ganz normal unter den Funktionen finden und nutzen.
Reicht dir dies?
LG
Hallo Alex,
Was spricht dagegen Dir mehrere Wege zu zeigen?
das ist auch meine Verständnisfrage. Ich freue mich immer wenn in einer Beitragsfolge noch andere Lösungsansätze kommen, denn nur so kann ich lernen bzw. mich verbessern.
Und sei es nur die Erinnerung an einen VB(A)-Befehl oder einem Argument davon, den/das ich zwar mal kannte aber „vergessen“ habe.
Was „lernt“ denn jmd. der für das gleiche Problem immer nur eine Lösung hat und wie ANSCHEINEND Timo keine anderen Lösungen duldet dazu? Nix.
Das geschieht erst dann wenn er andere Lösungen für das gleiche Problem sieht.
Ich hab mein ganzes Halbwissen zu Vba in Foren gelernt. Anfangs sehr hart, kaum Erfolgserlebnisse, sehr zäh. Aber schau an, nach einigen Monaten konnte ich schon mal meine erste Anfrage beantworten, dann usw. usw.
Und umsomehr Lösungen zu einer Anfrage da stehen, desto mehr konnte ich lernen.
Ach, egal, ein schönes WE für Alle *wünsch*
Gruß
Reinhard
Oder so:
Function MonthOutOfNumber(no as Long) as String
Select Case no
Case 2: MonthOutOfNumber = "Februar"
Case 3: MonthOutOfNumber = "März"
Case 4: MonthOutOfNumber = "April"
Case 5: MonthOutOfNumber = "Mai"
Case 6: MonthOutOfNumber= "Juni"
Case 7: MonthOutOfNumber= "Juli"
Case 8: MonthOutOfNumber = "August"
Case 9: MonthOutOfNumber = "September"
Case 10: MonthOutOfNumber = "Oktober"
Case 11: MonthOutOfNumber = "November"
Case 12: MonthOutOfNumber = "Dezember"
Case Else: MonthOutOfNumber = "Januar"
End Function 'MonthOutOfNumber
Braucht keine Variablendefinition und keine Fehlerbehandlung, weil CaseElse alle Fehleingaben auf Januar zurückstellt.
Gefällt mir am besten.
M.
So viele verschiedene Lösungsansätze!!! Wirklich toll! Da haben wir doch alle ungeheuer viel gelernt! ))
Grüße an alle Wissensvermittler
Martin
@Reinhard: Ich gebe Dir vollkommen recht.
Braucht keine Variablendefinition und keine Fehlerbehandlung,
weil CaseElse alle Fehleingaben auf Januar zurückstellt.
Und wenn jemand als Zahl „14“ eingibt?
Wird von CaseElse abgefangen.
… dann gibt „0,6“, „13“ und „24345“ immer „Januar“ aus? Find ich nicht so schön
LG
… dann gibt „0,6“, „13“ und „24345“ immer „Januar“ aus? Find
ich nicht so schön
Hallo Tobias,
du hast Recht. Wenn man davon ausgehen könnte daß die User nur die Zahlen von 1-12 eingeben würden ist der Code von Markus in Ordnung.
Leider muß man bei Eingaben von fremdusern von allem möglichen ausgehen und alle möglichen Fehleingaben, auf manche kommt man manchmal vorher gar nicht, im Code anfangen.
Insofern muß in Case Else etwas anderes stehen bzw. sogar anders auf die Fehleingabe eingegangen werden.
Aber ich gehe davon aus Markus weiß das auch.
Gruß
Reinhard