Datum Uhrzeit Format
Betrifft: Datum Uhrzeit Format
von: Lars
Geschrieben am: 14.11.2014 16:40:48
Brauche Hilfe bei folgendem Makro!
Ich möchte statt dem Datum, Datum mit Uhrzeit übertragen. Am liebsten im folgenden Format: "yyyy-mm-dd-hh-mm"
Datum und Uhrzeit stehen somit in den gleichen Zellen.
Weis jedoch nicht wie das Makro abändern muss.
Mein Makro:
Private Sub CommandButton1_Click()
Dim dat As Long ' Startdatum
Dim dat2 As Long ' Zieldatum
Dim varZei As Variant ' Zeile Startdatum
Dim varZei2 As Variant ' Zeile Zieldatum
Dim varUebArr As Variant ' Array für Daten
Dim varTitArr As Variant ' Array für Überschriften
dat = CDate(TextBox1.Text) ' Startdatum
dat2 = CDate(TextBox2.Text) ' Zieldatum
varZei = Application.Match(dat, Tabelle1.Columns(1), 0) ' Startzeile für Übertrag ermitteln
varZei2 = Application.Match(dat2 + 1, Tabelle1.Columns(1), 0) ' Zielzeile für übertrag ermitteln
varTitArr = Tabelle1.Range("A1:G1").Value ' Überschriften einlesen
varUebArr = Tabelle1.Range("A" & varZei, "G" & varZei2).Value ' Daten in Array schreiben
With Tabelle2.Range("A1:G1") ' Überschriften
.Value = varTitArr ' Überschriften in Tabelle
.Range("A1:G1").Font.Bold = True ' Schriftschnitt Fett
.VerticalAlignment = xlCenter ' Vertikal zentrieren
.WrapText = True ' Zeilenumbruch aktivieren
End With ' Ende Überschriften
Tabelle2.Range("A2:G" & UBound(varUebArr)) = varUebArr ' Daten eintragen
Tabelle2.Range("A2:A" & UBound(varUebArr)).NumberFormat = "m/d/yyyy"
Tabelle2.Range("B2:B" & UBound(varUebArr)).Font.Color = Tabelle1.Range("B2").Font.Color
Tabelle2.Range("C2:C" & UBound(varUebArr)).Font.Color = Tabelle1.Range("C2").Font.Color
Tabelle2.Range("D2:D" & UBound(varUebArr)).Font.Color = Tabelle1.Range("D2").Font.Color
Tabelle2.Range("E2:E" & UBound(varUebArr)).Font.Color = Tabelle1.Range("E2").Font.Color
Tabelle2.Range("F2:F" & UBound(varUebArr)).Font.Color = Tabelle1.Range("F2").Font.Color
Tabelle2.Range("G2:G" & UBound(varUebArr)).Font.Color = Tabelle1.Range("G2").Font.Color
 |
Betrifft: AW: Datum Uhrzeit Format
von: Matze Matthias
Geschrieben am: 14.11.2014 17:47:37
Hallo Lars,
z B.: in die aktive Zelle als Formel eintragen
ActiveCell.FormulaR1C1 = "=NOW()"
Gruß Matze
Betrifft: AW: Datum Uhrzeit Format
von: Lars
Geschrieben am: 14.11.2014 21:58:57
Hallo Matze
Kannst du mir noch ein wenig helfen! Wo im Code muss ich das eintragen?
Betrifft: AW: Datum Uhrzeit Format
von: Matze Matthias
Geschrieben am: 14.11.2014 22:52:12
Hallo Lars,
weis nicht ob ich weiter helfen kann.
Ehrlich gesagt ist dein bisheriger code ein wenig verwirrend für mich.
Kannst du die Datei einstellen damit man erkennen kann was wann passieren soll?
Oder mach eine Musterdatei mit dem Aufbau und wie das Ergebnis aussehen soll.
Gruß Matze
Ps eventuell muss einer der Profis hier weitermachen
Betrifft: AW: Datum Uhrzeit Format
von: Lars
Geschrieben am: 14.11.2014 23:01:20
Ok!
Werde morgen mal schauen!
Besten Dank schon mal
Betrifft: AW: Datum Uhrzeit Format
von: Mullit
Geschrieben am: 15.11.2014 13:07:18
Hallo,
sollte so funktionieren:
'...
Tabelle2.Range("A2:G" & UBound(varUebArr)) = varUebArr ' Daten eintragen
Tabelle2.Range("A2:A" & UBound(varUebArr)).NumberFormat = "m/d/yyyy h:mm"
Tabelle2.Range("B2:B" & UBound(varUebArr)).Font.Color = Tabelle1.Range("B2").Font.Color
'...
Gruß,
Betrifft: AW: Datum Uhrzeit Format
von: sigmund
Geschrieben am: 15.11.2014 18:03:23
Hallo Mullit
Hast mir schon mal sehr geholfen.
Wie bringe ich es aber fertig, das in die Textboxen1 und 2 auch nur das "m/d/yyyy h:mm" eingetragen werden kann?
Betrifft: AW: Datum Uhrzeit Format
von: Matze Matthias
Geschrieben am: 15.11.2014 22:30:59
Hallo Sigmund oder Lars (watt denn nu?)
wolltest du nicht deine Datei hier einbringen bzw eine Musterdatei?
vielleicht so? Aber irgendwie rate ich nur.
Format(TextBox1.Value, "dd.mm.yyyy hh:mm")
Gruß Matze
Betrifft: AW: Datum Uhrzeit Format
von: Mullit
Geschrieben am: 16.11.2014 16:03:15
Hallo Sigmund,
um das ganze in einer Textbox des Tabellenblattes abzufragen, das hier für beide Boxen in das Klassenmodul der Tabelle einfügen und beim Eintrag in die Box immer ein Leerzeichen zwischen Datum und Uhrzeit belassen, sonst müsste man noch genauer abfragen...
Option Explicit
Private Sub TextBox1_LostFocus()
If Not (IsDate(TextBox1) And TextBox1 = Format(TextBox1, "dd/mm/yyyy hh:mm")) Then _
TextBox1 = vbNullString
End Sub
Dann in Deinem Hauptprogramm noch ergänzen:
Private Sub CommandButton1_Click()
Dim dat As Long ' Startdatum
Dim dat2 As Long ' Zieldatum
Dim varZei As Variant ' Zeile Startdatum
Dim varZei2 As Variant ' Zeile Zieldatum
Dim varUebArr As Variant ' Array für Daten
Dim varTitArr As Variant ' Array für Überschriften
If IsDate(TextBox1) And IsDate(TextBox2) Then
dat = CDate(TextBox1.Text) ' Startdatum
dat2 = CDate(TextBox2.Text) ' Zieldatum
varZei = Application.Match(dat, Tabelle1.Columns(1), 0) ' Startzeile für Übertrag ermitteln
varZei2 = Application.Match(dat2 + 1, Tabelle1.Columns(1), 0) ' Zielzeile für übertrag ermitteln
varTitArr = Tabelle1.Range("A1:G1").Value ' Überschriften einlesen
varUebArr = Tabelle1.Range("A" & varZei, "G" & varZei2).Value ' Daten in Array schreiben
With Tabelle2.Range("A1:G1") ' Überschriften
.Value = varTitArr ' Überschriften in Tabelle
.Range("A1:G1").Font.Bold = True ' Schriftschnitt Fett
.VerticalAlignment = xlCenter ' Vertikal zentrieren
.WrapText = True ' Zeilenumbruch aktivieren
End With ' Ende Überschriften
Tabelle2.Range("A2:G" & UBound(varUebArr)) = varUebArr ' Daten eintragen
Tabelle2.Range("A2:A" & UBound(varUebArr)).NumberFormat = "m/d/yyyy h:mm"
Tabelle2.Range("B2:B" & UBound(varUebArr)).Font.Color = Tabelle1.Range("B2").Font.Color
Tabelle2.Range("C2:C" & UBound(varUebArr)).Font.Color = Tabelle1.Range("C2").Font.Color
Tabelle2.Range("D2:D" & UBound(varUebArr)).Font.Color = Tabelle1.Range("D2").Font.Color
Tabelle2.Range("E2:E" & UBound(varUebArr)).Font.Color = Tabelle1.Range("E2").Font.Color
Tabelle2.Range("F2:F" & UBound(varUebArr)).Font.Color = Tabelle1.Range("F2").Font.Color
Tabelle2.Range("G2:G" & UBound(varUebArr)).Font.Color = Tabelle1.Range("G2").Font.Color
'...
End If
End Sub
Eine Alternative wäre vielleicht auch noch das
DateTimePicker Control...
Gruß, Mullit
Betrifft: AW: Datum Uhrzeit Format
von: sigmund
Geschrieben am: 16.11.2014 20:20:52
https://www.herber.de/bbs/user/93806.zip
Hallo meine beiden Helfer
Habe die Datei hochgeladen (ich hoffe ihr könnt sie öffnen)
Ich möchte einfach nur folgendes tun:
Bei Testbox1 Startdatum folgendes eintragen: z.B. 02.05.2014 08:00
Bei Testbox2 enddatum folgendes eintragen: z.B. 03.05.2014 08:00
Aktuell überträgt mein Makro nur das Datum ohne Berücksichtigung der Zeit in Tabelle 2
Betrifft: AW: Datum Uhrzeit Format
von: Mullit
Geschrieben am: 17.11.2014 15:57:26
Hallo Sigmund,
hat ich Dir doch im Prinzip schon geschrieben :
Du mußt das Zahlenformat sowohl in der Ausgangstabelle (Benutzerdefiniert TT.MM.JJJJ hh:mm), als auch im Code für die Zieltabelle anpassen.
Um zu verhindern, daß verkehrte Werte eingetragen werden, kannst Du die beiden Ereignisprozeduren ergänzen, in der Userform bietet sich da das Exit_Ereignis an:
Option Explicit
Private Sub CommandButton1_Click()
Dim dat As Double ' Startdatum
Dim dat2 As Double ' Zieldatum
Dim varZei As Variant ' Zeile Startdatum
Dim varZei2 As Variant ' Zeile Zieldatum
Dim varUebArr As Variant ' Array für Daten
Dim varTitArr As Variant ' Array für Überschriften
If IsDate(TextBox1) And IsDate(TextBox2) Then
dat = CDate(TextBox1.Text) ' Startdatum
dat2 = CDate(TextBox2.Text) ' Zieldatum
With Application
varZei = .Match(dat, Tabelle1.Columns(1), 0) ' Startzeile für Übertrag ermitteln
varZei2 = .Match(dat2, Tabelle1.Columns(1), 0) ' Zielzeile für übertrag ermitteln
End With
With Tabelle1
varTitArr = .Range("A1:G1").Value ' Überschriften einlesen
varUebArr = .Range("A" & varZei, "G" & varZei2).Value ' Daten in Array schreiben
End With
With Tabelle2
.UsedRange.ClearContents
With .Range("A1:G1") ' Überschriften
.Value = varTitArr ' Überschriften in Tabelle
.Font.Bold = True ' Schriftschnitt Fett
.VerticalAlignment = xlCenter ' Vertikal zentrieren
.WrapText = True ' Zeilenumbruch aktivieren
End With ' Ende Überschriften
.Range("A2:G" & UBound(varUebArr) + 1) = varUebArr ' Daten eintragen
.Range("A2:A" & UBound(varUebArr) + 1).NumberFormat = "m/d/yyyy h:mm"
.Range("B2:B" & UBound(varUebArr) + 1).Font.Color = Tabelle1.Range("B2").Font.Color
.Range("C2:C" & UBound(varUebArr) + 1).Font.Color = Tabelle1.Range("C2").Font.Color
.Range("D2:D" & UBound(varUebArr) + 1).Font.Color = Tabelle1.Range("D2").Font.Color
.Range("E2:E" & UBound(varUebArr) + 1).Font.Color = Tabelle1.Range("E2").Font.Color
.Range("F2:F" & UBound(varUebArr) + 1).Font.Color = Tabelle1.Range("F2").Font.Color
.Range("G2:G" & UBound(varUebArr) + 1).Font.Color = Tabelle1.Range("G2").Font.Color
End With
Unload Me
End If
End Sub
Private Sub CommandButton2_Click()
Tabelle1.Columns("A:G").Copy Destination:=Tabelle2.Cells(1, 1)
Unload Me
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not (IsDate(TextBox1) And TextBox1 = Format(TextBox1, "dd/mm/yyyy hh:mm")) Then
TextBox1 = vbNullString
Cancel = True
End If
End Sub
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not (IsDate(TextBox2) And TextBox2 = Format(TextBox2, "dd/mm/yyyy hh:mm")) Then
TextBox2 = vbNullString
Cancel = True
End If
End Sub
Gruß, Mullit
Betrifft: AW: Datum Uhrzeit Format
von: sigmund
Geschrieben am: 17.11.2014 19:41:21
Hallo Mullit
Vielen Dank für deine Hilfe und Geduld mit mir.
Genau so habe ich mir das vorgestellt.
Danke
Beiträge aus den Excel-Beispielen zum Thema "Datum Uhrzeit Format"