Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1392to1396
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Datum Uhrzeit Format
14.11.2014 16:40:48
Lars
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

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum Uhrzeit Format
14.11.2014 17:47:37
Matze
Hallo Lars,
z B.: in die aktive Zelle als Formel eintragen
ActiveCell.FormulaR1C1 = "=NOW()"
Gruß Matze

AW: Datum Uhrzeit Format
14.11.2014 21:58:57
Lars
Hallo Matze
Kannst du mir noch ein wenig helfen! Wo im Code muss ich das eintragen?

AW: Datum Uhrzeit Format
14.11.2014 22:52:12
Matze
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

Anzeige
AW: Datum Uhrzeit Format
14.11.2014 23:01:20
Lars
Ok!
Werde morgen mal schauen!
Besten Dank schon mal

AW: Datum Uhrzeit Format
15.11.2014 13:07:18
Mullit
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ß,

AW: Datum Uhrzeit Format
15.11.2014 18:03:23
sigmund
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?

Anzeige
AW: Datum Uhrzeit Format
15.11.2014 22:30:59
Matze
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

AW: Datum Uhrzeit Format
16.11.2014 16:03:15
Mullit
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

Anzeige
AW: Datum Uhrzeit Format
16.11.2014 20:20:52
sigmund
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

AW: Datum Uhrzeit Format
17.11.2014 15:57:26
Mullit
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

Anzeige
AW: Datum Uhrzeit Format
17.11.2014 19:41:21
sigmund
Hallo Mullit
Vielen Dank für deine Hilfe und Geduld mit mir.
Genau so habe ich mir das vorgestellt.
Danke

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige