aus bestimmten wenigen Zellen Werte kopiert (automatisch!) und in andere Zellen
als Zahlen (in den Ursprungsfeldern stehen Formeln) einfügt.
1) geht das?
2) wie?
Sub zeitkopieren()
Do While Time <> "14.00.00"
If Time = "14.00.00" Then
Range("A1:A4").Copy
Range("B1:B4").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Exit Sub
End If
Loop
End Sub
Private Sub Workbook_Open()
'Immer 14:00
Application.OnTime TimeValue("14:00:00"), "Autocopy"
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
'zurücksetzen
Application.OnTime EarliestTime:=TimeValue("14:00:00"), _
Procedure:="Autocopy", Schedule:=False
End Sub
Öffne Excel und gehe zu dem Arbeitsblatt, in dem Du die automatisierte Kopierfunktion einrichten möchtest.
Drücke ALT
+ F11
, um den VBA-Editor zu öffnen.
Füge den folgenden Code in DieseArbeitsmappe
ein:
Private Sub Workbook_Open()
'Immer 14:00
Application.OnTime TimeValue("14:00:00"), "Autocopy"
End Sub
Füge den folgenden Code in ein Modul ein:
Sub autocopy()
Dim SH1 As Worksheet, SH2 As Worksheet
Dim LR As Long
Set SH1 = Sheets("Tabelle1") ' Ursprüngliche Tabelle
Set SH2 = Sheets("Tabelle2") ' Ziel-Tabelle
'nächste freie Zeile finden
LR = SH2.Cells(Rows.Count, 1).End(xlUp).Row + 1 'letzte Zeile der Spalte A
SH2.Cells(LR, 1).Value = SH1.Range("A1").Value
SH2.Cells(LR, 2).Value = SH1.Range("C1").Value
End Sub
Schließe den VBA-Editor und speichere Deine Datei als Makro-fähige Arbeitsmappe (.xlsm
).
Öffne die Datei erneut. Das Makro wird nun jeden Tag um 14:00 Uhr ausgeführt und kopiert die Werte aus den angegebenen Zellen.
Das Makro läuft nicht automatisch.
Stelle sicher, dass der Code in DieseArbeitsmappe
korrekt eingefügt wurde und dass Du die Datei als .xlsm
speicherst.
Excel blockiert die Arbeit.
Verwende die Application.OnTime
Methode, um das Makro zu einem bestimmten Zeitpunkt auszuführen, anstatt eine Endlosschleife zu verwenden.
Zellen werden nicht korrekt kopiert.
Überprüfe die Zellreferenzen im autocopy
-Sub und stelle sicher, dass die Blätter existieren und korrekt benannt sind.
Eine alternative Methode wäre die Verwendung von Excel-Formeln, um dynamisch auf die Werte zuzugreifen, anstatt sie zu kopieren. Du könntest z. B. die =WENN()
-Funktion verwenden, um Werte basierend auf einer Bedingung anzuzeigen.
In einem Beispiel wird der Wert aus Zelle A1 und C1 von "Tabelle1" in die nächste freie Zeile von "Tabelle2" kopiert. Du kannst den VBA-Code anpassen, um weitere Zellen oder andere Arbeitsblätter einzubeziehen.
SH2.Cells(LR, 3).Value = SH1.Range("D1").Value ' Beispiel für eine zusätzliche Zelle
On Error Resume Next
hinzu, um sicherzustellen, dass das Makro nicht bei einem Fehler stoppt.1. Muss ich die Arbeitsmappe schließen und wieder öffnen, wenn ich die Aktualisierungszeit ändere?
Ja, das Makro wird nur beim Öffnen der Arbeitsmappe aktiviert.
2. Kann ich damit auch auf andere Excel-Dateien zugreifen?
Ja, Du kannst den korrekten Pfad zur anderen Datei angeben. Beachte jedoch, dass die Datei schreibgeschützt sein könnte, wenn sie bereits geöffnet ist.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen