Englischen Wert von Datum "mmm" bekommen
#1
Hallo zusammen,

kurz:
Ich brauche eine Funktion, die mir den englischen Wert des Monats gibt. Also "Oct" statt "Okt".
Folgendes habe ich schon probiert:
Code:
Application.WorksheetFunction.Text(Date, "[$-409]mmm")
Das klappt bei mir allerdings nicht. Da kommt dann z.B. für "Jan" einfach "gen".
Ich habe auch eine Array Lösung, würde es aber gerne ohne lösen, wenn möglich.

Lang:
Die Funktion
Code:
Function visibility(ByVal altesDatum As Date, ByVal neuesDatum As Date, ByVal s_nameTabelle As String, ByVal s_nameFilter As String, ByVal s_kriterium As String, Optional ByVal ar As Variant)
    'die Filter werden entsprechend eingesetzt
    Dim s_filterAlt As String
    Dim s_filterNeu As String

    If format(altesDatum, s_kriterium) = format(neuesDatum, s_kriterium) Then
        Exit Function
    End If

    'hier wird der Wert bestimmt
    'ar ist das Monats-array, wenn ar nicht verwendet wird - das Jahr
'  die auskommentierte Stelle hier funktioniert, so möchte ich das aber nicht lösen
'    If IsMissing(ar) Then
'        s_filterNeu = format(neuesDatum, s_kriterium)
'        s_filterAlt = format(altesDatum, s_kriterium)
'    Else
'        s_filterNeu = ar(format(neuesDatum, s_kriterium))
'        s_filterAlt = ar(format(altesDatum, s_kriterium))
'    End If

' diese Stelle würde ich gerne zum laufen bringen, weil dann die Abfrage wegfällt
    s_filterNeu = WorksheetFunction.text(neuesDatum, s_kriterium)
    s_filterAlt = WorksheetFunction.text(altesDatum, s_kriterium)

    ActiveSheet.ChartObjects(s_nameTabelle).Activate
    With ActiveChart.PivotLayout.PivotTable.PivotFields(s_nameFilter)
        .PivotItems(s_filterNeu).Visible = True
        .PivotItems(s_filterAlt).Visible = False
    End With
End Function

Aufruf der Funktion
Code:
'der erste Aufruf ist für den Monat, der zweite für das Jahr
    Call visibility(date_old, date_new, s_diagrammName, s_krit, "[$-410]mmm", A_GlobaleVariablen.array_Zeitachse)
    Call visibility(date_old, date_new, s_diagrammName, "Jahre", "yyyy")
Antworten Top
#2
Hi,

dann arbeite Dich mal hier durch:

https://www.clever-excel-forum.de/Thread...-umwandeln
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#3
Moin NPC123,

wenn es Dir nicht nur darum geht, Monatsnamen zu übersetzen, wirf mal einen Blick auf meine Lösung, mit der Du bequem Mehrsprachigkeit in XL realisieren kannst: Mehrsprachig Einfach mal ausprobieren.

Schöne Grüße

d`r Bastler von den VBAsteleien.de
Win 10 & 11, Office 2019 & 2021 & macOS X.15, XL 2019
Antworten Top
#4
Hi,

bei dem Aufruf:

Code:
Call visibility(date_old, date_new, s_diagrammName, s_krit, "[$-410]mmm", A_GlobaleVariablen.array_Zeitachse)

brauchst Du Dich nicht über das Ergebnis wundern!!!!
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#5
Hallo zusammen und danke für eure Tipps und Denkanstöße,

ich konnte das Problem lösen, indem ich ein 
"Application" vor dem Rest gesetzt habe also
in der Funktion visibility habe ich es anscheinend so aufgerufen:
Code:
    s_filterNeu = WorksheetFunction.text(neuesDatum, s_kriterium)
    s_filterAlt = WorksheetFunction.text(altesDatum, s_kriterium)

jetzt steht dort:
Code:
    s_filterNeu = Application.WorksheetFunction.text(neuesDatum, s_kriterium)
    s_filterAlt = Application.WorksheetFunction.text(altesDatum, s_kriterium)


Und es funktioniert.
Manchmal ist es doch einfacher als man denk :)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste