wie kann ich in excel eine bestimmte zelle alle 10 Minuten kopieren und eine Datenbank dadurch aufbauen. Z.b Kopiere von Zelle d7 alle 5 minuten den Wert nach d22, dann die nächsten 5 Minuten d23, usw abwärts.
Sub Daten_retten_Start()
Application.OnTime Now + TimeValue("00:05:00"), "Wert_retten"
End Sub
Sub Wert_retten()
Range("A1").Copy Destination:=Range("B65536").End(xlUp).Offset(1, 0)
Daten_retten_Start
End Sub
Gruß Ingolf
Sub Wert_retten()
Range("A1").Copy
Range("B65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
Range("B65536").End(xlUp).Offset(0, 1) = Now
Daten_retten_Start
End Sub
Gruß Ingolf
Sub Wert_retten()
If Time >= 22 / 24 Then
Range("B65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
Range("B65536").End(xlUp).Offset(0, 1) = Now
Daten_retten_Start
End If
End Sub
Oder du lässt stoppen, sobald der 100ste Wert in die Zelle B100 kopiert wurde:
Sub Wert_retten()
If Range("B100") = "" Then
Range("B65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
Range("B65536").End(xlUp).Offset(0, 1) = Now
Daten_retten_Start
End If
End Sub
Oder du lässt stoppen, wenn das Wort "Stop" in C1 steht:
Sub Wert_retten()
If Range("C1") <> "Stop" Then
Range("B65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
Range("B65536").End(xlUp).Offset(0, 1) = Now
Daten_retten_Start
End If
End Sub
Dabei gilt allerdings, dass, nachdem du "Stop" in C1 geschrieben hast, der Ablauf erst endet, wenn das Makro das nächste Mal versucht, einen Wert nach Spalte B zu kopieren. Und das kann eben lange 5 Minuten dauern. Zum sofortigen Stop schließt du daher am Besten kurz die Datei, speicherst sie wenn gewünscht und öffnest sie dann wieder. Sub Wert_retten()
If Time >= 22 / 24 Then
With Workbooks("MeineDatei.xls").Sheets("Daten")
.Range("B65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
.Range("B65536").End(xlUp).Offset(0, 1) = Now
End With
Daten_retten_Start
End If
End Sub
Zu der Befehlszeile "If Time >= 22 / 24 Then". Zunächst muss es "=". Mein Fehler. Die 24 steht für die Anzahl Stunden eines Tages. Für Excel ist eine Uhrzeit ein Bruchteil von 1. 12 Uhr mittags ist dementsprechend 0,5, weil der halbe Tag vergangen ist. Somit ergibt sich 22 Uhr aus 22 geteilt durch 24.Private Sub Workbook_Open()
Application.OnTime TimeValue("15:30:00"), Modul1.Wert_retten
End Sub
"Automatischer Start" ist dabei allerdings relativ. Voraussetzung ist nämlich, dass die Datei um 15.30 Uhr geöffnet ist. .Range("B65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
.Range("B65536").End(xlUp).Offset(0, 1) = Now
Gruß IngolfIf Time
Gruß Ingolf