Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Zelle mit Datumsformat TT.MM.JJJJ versehen?
#1
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.
Antwortento top
#2
Hallöchen,

hast Du mal die Formatierung aufgezeichnet, hilft der dabei entstandene Code nicht?
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top
#3
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
Antwortento top
#4
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
Antwortento top
#5
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antwortento top
#6
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?
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top
#7
(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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antwortento top
#8
Hi Ralf,

ich kann hier ewig rauf und runter scrollen, ich finde kein Userform... Überseh' ich da etwas?
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top
#9
Hi André,

#1
Zitat:Ich habe ein Userform in das Werte eingetragen werden und[...]
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antwortento top
#10
… danke 21
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top


Gehe zu:


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