Ausgabeformat Deutsch, Fran und Italenisch

Gabriel08

Stammgast
Hallo zusammen

In der der Zelle A4 habe ich einen Format Definiert das es nach der Datumausgabe folgende angezeigt wird z.B 1.1.2018 wird dan angezeigt 01. MO.

Ziel ist es das die Anzeige 01. MO/LU/LU also die Anfangbuchstabe (MO=Montag, LU = Lundi, LU = lunedi) von Deutsch, Französisch und Italenisch. Ist Überhaupt möglich ?

Gruss
 

nochEinAndreas

Stammgast
2 Möglichkeiten

Hallo Gabriel,

ich habe dir hier mal eine Datei hochgeladen mit 2 möglichen Lösungen.
Die erste basiert auf Hilfzellen und Formeln: Gib in A5 das Datum ein, dann steht in A6 die entsprechende Formatierung.
Die zweite Lösung funktioniert mit einem Makro: Wenn du in A11 das Datum eingibst, wird es automatisch vom Makro umformatiert.
Reicht dir das so?

Grüße und einen guten Start ins neue Jahr,
Andreas
 

nochEinAndreas

Stammgast
Danke!

Hallo Gabiel,

danke für deine ausführliche Rückmeldung! ;)
Es ist immer schön, wenn man gesagt bekommt, ob das, was man für andere Leute gemacht hat, so ist, wie sie es haben wollten, oder eben noch nicht.
Außerdem bringt das Leben hier ins Forum und ermuntert mich dazu auch weiterhin anderen Leuten zu helfen.

Gruß, Andreas
 

weer

Stammgast

Grüezi Andreas

Warum Du so lange auf Reaktionen warten musst, könnte folgendes sein: Ich verstehe in Deinem Makro die zweitletzte Zeile auch nach fast zwei Wochen immer noch nicht:

Code:
    Target = Replace(Format(datum, "00. "), ",", ".") &    usw.
Es wird ein Komma durch einen Punkt ersetzt. Woher kommt denn dieses zu ersetzende Komma? - Geht es nicht auch einfacher so:

Code:
Target = Format(datum, "00. ") & deutsch(wochentag - 1) & "/" & franzoesisch(wochentag - 1) & "/" & italienisch(wochentag - 1)

Auch wenn ich in A11 ein Datum in folgender Form (mit Kommas) eingebe "10,01,2018", arbeitet Dein Makro bestens auch ohne den Replace-Vorgang.

Viele Grüsse Niclaus
 

nochEinAndreas

Stammgast
Danke für die Rückmeldung

Hallo Niclaus,

danke für die Nachfrage. Also, dass mit dem Replace habe ich eingebaut, weil ich festgestellt habe, dass die Format-Funktion von VBA immer ein Komma liefert, auch wenn man als Trenner gerne einen Punkt hätte. Und der Zehnte des Monats soll ja im Ausgabeformat als "10." erscheinen und nicht als "10,"
Es hat also nichts mit deiner Vermutung zu tun, dass man im Eingabeformat vielleicht Kommata schreibt. Auch eine Eingabe wie "10,1,18" wird von Excel richtig als Datum interpretiert.
Du kannst es ja mal ausprobieren und das Replace in der vorletzten Zeile weglassen:
Code:
Target = Format(datum, "00. ") & deutsch(wochentag - 1) & "/" & franzoesisch(wochentag - 1) & "/" & italienisch(wochentag - 1)
Dann steht in der Ausgabe "10, MI/ME/ME", aber Gabriel wollte ja den Punkt. Also geht's nur mit Replace.
Mir fällt aber gerade ein, wie es auch ohne Replace klappt. Man muss den Punkt aus dem Format rausnehmen und ihn explicit hischreiben:
Code:
Target = Format(datum, "00") & ". " & deutsch(wochentag - 1) & "/" & franzoesisch(wochentag - 1) & "/" & italienisch(wochentag - 1)

Noch mal danke für deine Frage. Das hat mich wieder zum nachdenken gebracht.

Grüße aus Hanau,
Andreas
 

weer

Stammgast
das mit dem Replace habe ich eingebaut, weil ich festgestellt habe, dass die Format-Funktion von VBA immer ein Komma liefert

Hallo Andreas
Das ist seltsam: Ich erhalte bei beiden Varianten einen Punkt als Trenner nach der Tageszahl:

Code:
Variante 1
Target = Format(datum, "00. ") & deutsch    usw.
Variante 2
Target = Format(datum, "00") & ". " & deutsch   usw.

Kann das mit der Windows-Ländereinstellung zusammenhängen? Ich habe die Schweiz-Einstellung.

Grüsse Niclaus
 

nochEinAndreas

Stammgast
Richtige Vermutung

Hallo Niclaus,

deine Idee mit der Ländereinstellung war fast richtig. Ich hab's eben ausprobiert:
Je nachdem, welchen Dezimaltrenner (hängt ja indirekt mit der Ländereinstellung zusammen) man in der Systemsteuerung einstellt, erzeugt "Format ...", wenn man dort einen Punkt eingibt, genau diesen Trenner aus der Systemsteuerung. Du kannst da sogar jedes x-beliebige Zeichen als Trenner in der Systemsteuerung eingeben, also auch Buchstaben oder Ziffern. "Format" nimmt genau dieses Zeichen, wenn du ihm einen Punkt gibst.
Wenn also bei dir der Punkt in der Systemsteuerung steht, geht es auch ohne das "Replace". Ich würde es allerdings drin lassen, für die Leute, bei denen (wie bei mir) das Komma steht.

Grüße, Andreas
 

weer

Stammgast
Systemsteuerung - "Format ...", wenn man dort einen Punkt eingibt ...

Andreas, vielen Dank.

Schon wieder etwas gelernt: Ich war bisher der Meinung, dieser Trenner gelte nur für die Darstellung von Dezimalzahlen. Aber es leuchtet ein, dass er auch für Datumsdarstellungen gilt; ein Datum ist ja auch "nur" ein Zahlengebilde.

In diesem Sinne wünsche ich einen schönen 43'111.00 :rolleyes: und grüsse freundlich Niclaus
 

nochEinAndreas

Stammgast
Ich weiß gar nicht, ob der Dezimaltrenner auch beim Datum benutzt wird. Aber in meinem Code wird der Tag ja als Zahl geschrieben, im Format "00." Deswegen wird der Dezimaltrenner von Windows benutzt.
Offensichtlich ist es der VBA Format-Funktion wurscht, was man in den Excel-Optionen eingestellt hat. Dort kann man ja auch festlegen, dass nicht der Trenner von Windows benutzt werden soll, sondern etwas Excel-spezifisches. Bei mir ist das so. ich habe in Windows das Komma als Dezimaltrenner, aber in Excel habe ich festgelegt, dass nicht dieser, sondern der Punkt benutzt wird. Aber da "Format" wohl nur auf Windows guckt, schreibt es trotzdem das Komma.

Grüße, Andreas
 
Oben