Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
908to912
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
908to912
908to912
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Liste mit Makro erstellen
18.09.2007 15:10:00
Benjamin
Hallo,
ich habe ein Makro welches jeden Tag einmal in eine Excel Datei die aktuelle Betätigunszeit eines Schalters schreibt und dann die vorhandene Datei überschreibt.
Kann mir jemand sagen wie ich ein Makro erstelle das jeden Tag, nachdem die Liste überschrieben wurde, in einer weiteren Liste einen neuen Eintrag dieser Betätigungszeit mit Datum macht. Das Makro sollte immer eine neue Zeile beginnen, also prüfen ob in einer Zeile ein Eintrag vorhanden ist, und wenn ja den neuen Eintrag in die nächste Zeile schreiben.
Ich hoffe sowas in der Art ist möglich
Das Ganze soll eine Sicherung sein, damit man einige Zeit später noch weiß wie lange und an welchem Datum der Schalter betätigt war.
Mit freundlichen Grüßen
Benjamin

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Liste mit Makro erstellen
18.09.2007 20:43:24
fcs
Hallo Benjamin,
das kann man wie im folgenden Beispiel machen. Die beiden Speicheraktionen werden unmittelbar hintereinander ausgeführt. Dabei wird die Datei mit dem Klickzeitpunkt nicht überschrieben, sondern geöffnet, geändert, gespeichert und wieder geschlossen.
Falls es etwas schneller gehen soll, dann schlage ich vor die Zeitinformationen in zwei Text-Dateien zu speichern.
Gruß
Franz

Private Sub CommandButton1_Click()
Dim ZeitPunkt As Date
ZeitPunkt = Now
Application.ScreenUpdating = False
'Zeitpukt der Button-Betätigung in Excel-Datei speichern
Call ZeitPunktXLS(DatumZeit:=ZeitPunkt, _
DateiName:="C:\Test\ButtonKlickZeit.xls", Liste:=False)
Call ZeitPunktXLS(DatumZeit:=ZeitPunkt, _
DateiName:="C:\Test\ButtonKlickZeitListe.xls", Liste:=True)
'Zeitpukt der Button-Betätigung in Text-Datei speichern
'  Call ZeitPunktTXT(DatumZeit:=ZeitPunkt, _
DateiName:="C:\Test\ButtonKlickZeit.txt", Liste:=False)
'  Call ZeitPunktTXT(DatumZeit:=ZeitPunkt, _
DateiName:="C:\Test\ButtonKlickZeitListe.txt", Liste:=True)
Application.ScreenUpdating = True
End Sub
Sub ZeitPunktXLS(DatumZeit As Date, DateiName As String, Liste As Boolean)
'Zeitpunkte des Buttonklicks in Excel-Dateien speichern
Dim wb As Workbook, wks As Worksheet
On Error GoTo Fehler
Set wb = Workbooks.Open(FileName:=DateiName)
Set wks = wb.Worksheets(1)
If Liste = False Then
wks.Range("A2") = DatumZeit
Else
With wks
'Datum Zeit in Spalte A in nächster freier Zeile eintragen
.Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).Value = DatumZeit
End With
End If
wb.Close savechanges:=True
GoTo Beenden
Fehler:
MsgBox "Fehler Nr.: " & Err.Number & " ist aufgetreten!" & vbLf & vbLf & Err.Description
Beenden:
'Objektvariablen zurücksetzen
Set wks = Nothing
Set wb = Nothing
End Sub
Sub ZeitPunktTXT(DatumZeit As Date, DateiName As String, Liste As Boolean)
'Zeitpunkte des Buttonklicks in Text-Dateien speichern
Dim FreeNr As Byte
On Error GoTo Fehler
FreeNr = FreeFile
If Liste = False Then
Open DateiName For Output As #FreeNr
Print #FreeNr, "ZeitPunkt Letzter Klick"
Else
Open DateiName For Append As #FreeNr
End If
Print #FreeNr, Format(DatumZeit, "DD.MM.YYYY hh:mm:ss")
Close #FreeNr
Exit Sub
Fehler:
MsgBox "Fehler Nr.: " & Err.Number & " ist aufgetreten!" & vbLf & vbLf & Err.Description
Close #FreeNr
End Sub


Anzeige
AW: Liste mit Makro erstellen
19.09.2007 08:57:00
Benjamin
Danke erstmal für deine Antwort.
Habe das Makro ausprobiert und das mit dem Datum eintragen klappt auch soweit, aber es sollte noch ein Wert aus einer anderen Tabelle übernommen werden (zB. A1 von C:\Test\Test.xls) und jedesmal hinter dem Makro eingefügt werden.
Falls das schon im Makro vorhanden ist habe ich was übersehen.
Mit freundlichen Grüßen
Benjamin

AW: Liste mit Makro erstellen
19.09.2007 08:58:00
Benjamin
Der Wert aus der anderen Tabelle sollte jedesmal hinter dem Datum eingetragen werden, nicht hinter dem Makro.
Habe mich da verschrieben.

AW: Liste mit Makro erstellen
19.09.2007 12:35:00
fcs
Hallo Bejamin,
da du in deiner Eingangsfrage nur den Zeitpunkt des Klicks in die Dateien schreiben wolltest, wird natürlich auch nur dieser in die Dateien geschrieben.
Mit folgenden Ergänzungen kannst du auch einen weiteren Wert in die Dateien schreiben.
Warum konntest du deine Wünsche eigentlich nicht in der 1. Frage komplett beschreiben?
Gruß
Franz

Private Sub CommandButton1_Click()
Dim ZeitPunkt As Date, wbTest As Workbook, wertA1, strDatei, boDateioffen As Boolean
On Error GoTo Fehler
ZeitPunkt = Now
Application.ScreenUpdating = False
'Wert aus Datei, 1. Tabelle , Zelle A1 einlesen
strDatei = "C:\Test\Test.xls"
'Prüfung ob Datei geöffnet
For Each wbTest In Workbooks
If wbTest.FullName = strDatei Then
boDateioffen = True
Exit Sub
End If
Next
If wbTest Is Nothing Then
Set wbTest = Workbooks.Open(FileName:=strDatei, ReadOnly:=True)
End If
wertA1 = wbTest.Worksheets(1).Range("A1").Value
If boDateioffen = False Then
wbTest.Close savechanges:=False
End If
'Zeitpukt der Button-Betätigung in Excel-Datei speichern
Call ZeitPunktXLS(DatumZeit:=ZeitPunkt, _
DateiName:="C:\Test\ButtonKlickZeit.xls", Liste:=False, Wert2:=wertA1)
Call ZeitPunktXLS(DatumZeit:=ZeitPunkt, _
DateiName:="C:\Test\ButtonKlickZeitListe.xls", Liste:=True, Wert2:=wertA1)
'Zeitpukt der Button-Betätigung in Text-Datei speichern
'  Call ZeitPunktTXT(DatumZeit:=ZeitPunkt, _
DateiName:="C:\Test\ButtonKlickZeit.txt", Liste:=False, Wert2:=wertA1)
'  Call ZeitPunktTXT(DatumZeit:=ZeitPunkt, _
DateiName:="C:\Test\ButtonKlickZeitListe.txt", Liste:=True, Wert2:=wertA1)
Application.ScreenUpdating = True
GoTo Beenden
Fehler:
MsgBox "Fehler Nr.: " & Err.Number & " ist aufgetreten!" & vbLf & vbLf & Err.Description
Beenden:
'Objektvariablen zurücksetzen
Set wbTest = Nothing
End Sub
Sub ZeitPunktXLS(DatumZeit As Date, DateiName As String, Liste As Boolean, Wert2)
'Zeitpunkte des Buttonklicks in Excel-Dateien speichern
Dim wb As Workbook, wks As Worksheet
On Error GoTo Fehler
Set wb = Workbooks.Open(FileName:=DateiName)
Set wks = wb.Worksheets(1)
If Liste = False Then
wks.Range("A2") = DatumZeit
wks.Range("B2") = Wert2
Else
With wks
'Datum Zeit in Spalte A in nächster freier Zeile eintragen
.Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).Value = DatumZeit
'Wert2 neben Datum Zeit in Spalte B eintragen
.Cells(.Rows.Count, 1).End(xlUp).Offset(0, 1).Value = Wert2
End With
End If
wb.Close savechanges:=True
GoTo Beenden
Fehler:
MsgBox "Fehler Nr.: " & Err.Number & " ist aufgetreten!" & vbLf & vbLf & Err.Description
Beenden:
'Objektvariablen zurücksetzen
Set wks = Nothing
Set wb = Nothing
End Sub
Sub ZeitPunktTXT(DatumZeit As Date, DateiName As String, Liste As Boolean, Wert2)
'Zeitpunkte des Buttonklicks und Wert2 in Text-Dateien speichern (Tab als Trennzeichen)
Dim FreeNr As Byte, TZ
On Error GoTo Fehler
TZ = vbTab 'Trennzeichen in Textdatei
FreeNr = FreeFile
If Liste = False Then
Open DateiName For Output As #FreeNr
Print #FreeNr, "ZeitPunkt Letzter Klick" & TZ & "Wert2"
Else
Open DateiName For Append As #FreeNr
End If
Print #FreeNr, Format(DatumZeit, "DD.MM.YYYY hh:mm:ss") & TZ & Wert2
Close #FreeNr
Exit Sub
Fehler:
MsgBox "Fehler Nr.: " & Err.Number & " ist aufgetreten!" & vbLf & vbLf & Err.Description
Close #FreeNr
End Sub


Anzeige

83 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige