Registriert seit: 10.03.2015
Version(en): 2007
Hallo, in die Excelrunde, untenstehender Code ist mit einem Textfeld verknüpft, das Datum in die Tabelle einträgt. Funktioniert auch einwandfrei. Das Textfeld ist in einer Useform integriert Schön wäre es wenn dem Code ein Datumsformat beigefügt wäre. Datum wird so eingetragen: 28.05.2024 Ich möchte dieses Format: Di 28.Mai 24Meine Frage: ist der Code so wie ich ihn jetzt geschrieben habe richtig? Oder muss der ganz anders geschrieben werden? Dim i&, arr(): arr = Array(CDate(txtDatum) Dim i&, arr(): arr = Array(CDate(txtDatum) & Format. "TTT T. MMM JJ"
Wäre dankbar für einen Tip. LG Jo
Registriert seit: 04.11.2014
Version(en): Office 365 Beta
Hi,
wenn Du das Datum schon mit CDate in ein echtes Datum umwandelst, kannst Du einfach die entsprechende Zelle wie gewünscht über das Zahlenformat formatieren.
Wofür Du dafür ein Array benötigst, erschließt sich mir aber nicht.
Registriert seit: 10.03.2015
Version(en): 2007
Hallo Boris, nun, den kompletten Code habe ich aus diesem Forum. Da ich aber nicht so Fit in VBA bin, kann ich Dir zu Deiner Frage nix sagen. Das man die entsprechende Zelle im Blatt per Zahlenformat ändern kann ist mir schons klar, Hab probiert, wenn ich die Zeilen vorher mit dem bestimmten Datumsformat einstelle, beim übertragen in die Tabelle übernommen wird, geht aber nicht. dachte nur, wenn es ja möglich wäre direkt die Codezeile so zu schreiben, das automatisch das gewünschte Datumsformat übernommen wird, wäre das eine kleine Arbeitserleichterung. Gruß Jo
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
Dein Code passt und funktioniert aber auch so nicht. Der müsste dann im Prinzip Format(CDate(...),"...") lauten.
Bei zuvor formatierten Zellen würde ich was in der Art nehmen: Cells(...).Value = CDate(txtDatum)
Damit änderst Du beim Einfügen nichts mehr am voreingestellten Format.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 12.03.2016
Version(en): Excel 2003
Hallo
Range("A1").Value = Format(CDate(UserForm1.TextBox1), "ddd d. mmm yy")
mfg Gast 123
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo, Zitat:Format(CDate(UserForm1.TextBox1), "ddd d. mmm yy") wenn es egal ist, dass daraus Text und kein richtiges Datum wird, kann man es so machen. Gruß, Uwe
Registriert seit: 12.04.2014
Version(en): Office 365
moin, noch eine Möglichkeit Code: With Cells(1, 1) .Value = CDate(txtDatum.Value) .NumberFormat = "ddd d.mm yy" End With
ist dann auch ein rechenbares Datum mfg Tom
Registriert seit: 12.03.2016
Version(en): Excel 2003
Hallo Uwe
Sorry, du hast Recht, bei Datum muss man verflixt aufpassen. Das klappt nicht wie gewollt! [a3].Value = UserFormTextBox1 [a3].NumberFormat = "ddd dd. mmm yy"
Gibt es bei Format eine Schreibweise mit der man das in einem Befehl hinbekommt?? Ich habe mehrere Varianten ausprobiert, leider alles erfolglos.
mfg Gast 123
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen, nö. Sind "getrennte" Eigenschaften. Um nochmal auf ein Array zurückzukommen - das macht ja nur Sinn bei mehreren Einträgen und könnte dann so aussehen. Da wird das numberformat dann auch gleich in mehreren Zellen gesetzt. Ginge mit einer Datenreihe sicher auch, bei gleichmäßiger Zu- oder Abnahme. Code: Private Sub UserForm_Click() Dim arrDate() arrDate = Array(CDate(TextBox1.Text), CDate(TextBox1.Text) + 1, CDate(TextBox1.Text) + 2) With Cells(1, 1).Resize(UBound(arrDate) + 1) .NumberFormat = "ddd d.mm yy" .Value = WorksheetFunction.Transpose(arrDate) End With End Sub
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 10.03.2015
Version(en): 2007
Moin Leute,
so, habe mal die Vorschläge ausprobiert. Die Datumseinträge in die Tabelle bleiben allerdings, wie gehabt in diesem Format: 29.05.2024. Da ich nicht so mit VBA vertraut bin, es aber gerne ein wenig verstehen möchte, habe ich den Code von Schauan unten angehängt, weiß aber nicht ob das so richtig ist.
Hier mal der komplette Code der Userform:
Private Sub btnAnlegen_Click() Dim i&, arr(): arr = Array(CDate(txtDatum), CbHändler, txtArtikel.Value, _ txtEinheit.Value, CbKategorie.Value, txtMenge, txtEinzelpreis, txtGesamtpreis)
' With Cells(1, 1) ' .Value = CDate(txtDatum.Value) ' .NumberFormat = "ddd d.mm yy" ' End With If CbKategorie.ListIndex = -1 Then MsgBox "keine Kathegorie ausgewählt" CbKategorie.SetFocus Exit Sub End If For i = 5 To 7 If IsNumeric(arr(i)) Then arr(i) = CDbl(arr(i)) If i = 6 Then arr(7) = arr(5) * arr(6) txtGesamtpreis = arr(7) Exit For End If Else MsgBox "Es sind nur numerische Werte zulässig" With Controls(arr(i).Name) .SetFocus .Value = "" End With Exit Sub End If Next i 'Tabellenzeile hinzufügen Tabelle1.ListObjects(1).ListRows.Add.Range.Resize(1, UBound(arr) - LBound(arr) + 1) = arr
End Sub
Private Sub UserForm_Click() Dim arrDate() arrDate = Array(CDate(TextBox1.Text), CDate(TextBox1.Text) + 1, CDate(TextBox1.Text) + 2) With Cells(1, 1).Resize(UBound(arrDate) + 1) .NumberFormat = "ddd d.mm yy" .Value = WorksheetFunction.Transpose(arrDate) End With End Sub
Gruß Jo
|