Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

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"