Clever-Excel-Forum

Normale Version: VBA Zelle mit Datumsformat TT.MM.JJJJ versehen?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Ihr Lieben,

ich benötige mal wieder eure Hilfe bei einem Problem.

Ich habe ein Userform in das Werte eingetragen werden und nach Bestätigung über einen Button die Werte in die entsprechenden Spalten meiner dynamischen Tabelle schreibt.

Zum übertragen der Werte habe ich folgenden Codeabschnitt:

Code:
Dim loLetzte As Long
  
    loLetzte = Sheets("TEST").Cells(Rows.Count, 1).End(xlUp).Row + 1
        Range("A" & loLetzte).Value = TextA.Value
        Range("S" & loLetzte).Value = TextB.Value
        Range("E" & loLetzte).Value = TextC.Value
        Range("C" & loLetzte).Value = TextD.Value
        Range("F" & loLetzte).Value = TextE.Value
   

Mein Problem :20: :
In Spalte S kann ein Datum oder Text eingetragen werden. Wenn ich ein Datum rein schreibe kommt bei der Ausgabe allerdings
als Zellformat Benutzerdefiniert M.T.JJJJ dabei raus. Das bringt mir leider wenig, da ich im Anschluss noch mit Formeln rechnen möchte,
die das Format TT.MM.JJJJ benötigen.

Gibt es eine Möglichkeit das Format nur für Spalte S auf TT.MM.JJJJ zu setzen
bei der Datenübertragung vom Formular in die Tabelle?

Vielen Dank vorab.
Hallöchen,

hast Du mal die Formatierung aufgezeichnet, hilft der dabei entstandene Code nicht?
Hallo,

so?
Code:
loLetzte = Sheets("TEST").Cells(Rows.Count, 1).End(xlUp).Row + 1

If TextB <> "" Then
    If IsNumeric(TextB) Then
        If IsDate(TextB) Then
            Range("S" & loLetzte).Value = CDate(TextB)
        Else
            MsgBox "Fehler: Kein gültiges Datumsformat."
            TextB.SetFocus
            Exit Sub
        End If
    Else
        Range("S" & loLetzte) = TextB
    End If
End If
Range("A" & loLetzte) = TextA
Range("E" & loLetzte) = TextC
Range("C" & loLetzte) = TextD
Range("F" & loLetzte) = TextE

Gruß Werner
Hi,

da kommt folgendes bei der Aufzeichnung raus:
Code:
Selection.NumberFormat = "m/d/yyyy"

Zum einen ist das das falsche Format (obwohl korrekt ausgewählt) und zum anderen weis ich leider nicht, wie
ich
Code:
.NumberFormat = "m/d/yyyy"
in den Code
Code:
Range("S" & loLetzte).Value = TextB.Value
einfließen lassen kann. Sprich wie ich .Value und .NumberFormat verbinde Undecided


@Werner
Wäre nicht so günstig, weil ja tatsächlich Text oder Datum eingetragen werden kann. Aber der Text kann auch als Datum Formatiert sein, dass stört nicht.

Habe deinen Code mal probiert. Wenn ich 31.12.2021 eingebe schreibt er 12.31.2021 in die Zelle und macht es wieder zum Format M.D.JJJJ
Moin!
Warum nur versuchen sich alle in Unkenntnis der Tücken an UserForms?
Sieht hübsch aus und Strg+Pfeil unten ist nicht smart?

Eine Textbox enthält erstaunlicherweise zunächst mal nur Text, währenddessen man mit Zellen vernünftig arbeiten kann.
Anyway:
If IsDate(TextBox) Then
   Zelle = CDate(TextBox)
Else
   Zelle = TextBox
End If

Gruß Ralf
Hallöchen,

die Aufzeichnung liefert zumindest den Ansatz. Smile
Nutzen tust Du es z.B. so:

Range("A1:B2").NumberFormat = "dd/mm/yyyy"
Range("A1:B2").Value = Date

Den Text stört das Datumsformat übrigens nicht …

@Ralf, falscher Thread?
(31.01.2020, 18:14)schauan schrieb: [ -> ]@Ralf, falscher Thread?

Ich glaube nicht, lasse mich aber gern eines Besseren belehren, André!
Code:
Sub x()
If IsDate("31.12.2021") Then ActiveCell = CDate("31.12.2021")
End Sub
Hi Ralf,

ich kann hier ewig rauf und runter scrollen, ich finde kein Userform... Überseh' ich da etwas?
Hi André,

#1
Zitat:Ich habe ein Userform in das Werte eingetragen werden und[...]
… danke :21:
Seiten: 1 2