Liebe Excelianer,
da meine KollegInnen auch nur Menschen sind, möchte ich die Frage stellen, ob es möglich ist, einer Datei per VBA zu sagen, sie solle sich jeden Tag um 23.45 Uhr öffnen, ein Makro ausführen und sich wieder schließen (der PC ist auch um diese Uhrzeit noch an)?
Wenn das geht, gleich die 2 Frage. Reinhard hat ein wunderbares Makro geschrieben, dass ich leider auf diesen Fall nicht ändern kann wegen mangelnder Kenntnisse.
Option Explicit
’
Sub Kopier()
On Error GoTo Ende
Application.ScreenUpdating = False
Dim wkb1 As Workbook, wkb2 As Workbook, wks1 As Worksheet, wks2 As Worksheet
Dim Spa2 As Long, wkb As Workbook, Vorh As Boolean, Z As Integer, Zellen
Dim Pfad2 As String, Datei2 As String, Blatt1 As String, Blatt2 As String
Zellen = Array(„A1“, „A3“, „A4“) ’ Anpassen
Blatt1 = „Tabelle1“ ’ Anpassen
Pfad2 = CurDir & „“ ’ Anpassen
Datei2 = „kwDatei2.xls“ ’ Anpassen
Blatt2 = „Tabelle1“ ’ Anpassen
Set wkb1 = ThisWorkbook
For Each wkb In Workbooks
If wkb.Name = Datei2 Then
Vorh = True
Exit For
End If
Next wkb
If Vorh = False Then Workbooks.Open Filename:=Pfad2 & Datei2
Set wkb2 = Workbooks(Datei2)
Set wks2 = wkb2.Worksheets(Blatt2)
With wkb1.Worksheets(Blatt1)
Spa2 = wks2.Cells(1, Columns.Count).End(xlToLeft).Column + 1
If Spa2 > wks2.Columns.Count Or wks2.Cells(1, Columns.Count) „“ Then
MsgBox „Die Wanne ist voll“
GoTo Ende:
ElseIf Spa2 = 2 And wks2.Range(„A1“) = „“ Then Spa2 = 1
End If
For Z = 0 To UBound(Zellen)
.Range(Zellen(Z)).Copy Destination:=wks2.Range(Zellen(Z)).Offset(0, Spa2 - 1)
Next Z
End With
Ende:
Application.ScreenUpdating = True
If Err.Number 0 Then MsgBox Err.Number & " " & Err.Description
End Sub
Meine Datei hat die Tabellenblätter „Daten“, „Auswertungen“ und „Diagramme“. Es sollen jetzt die Zellen A1, A3 und A4 von „Auswertungen“ in „Diagramme“ kopiert werden.
Könnte jemand (in erster Linie natürlich du, Reinhard, wenn du meinen Beitrag denn liest) so nett sein, mir das Makro anzupassen; also statt in eine andere Datei in ein anderes Tabellenblatt zu kopieren?
Vielen Dank für eventuelle Antworten.
Es grüßt freundlich
Jorge
Grüezi Jorge
da meine KollegInnen auch nur Menschen sind, möchte ich die
Frage stellen, ob es möglich ist, einer Datei per VBA zu
sagen, sie solle sich jeden Tag um 23.45 Uhr öffnen, ein Makro
ausführen und sich wieder schließen (der PC ist auch um diese
Uhrzeit noch an)?
Per VBA ist das nicht machbar sofern nicht zufällig Excel geöffnet ist und entsprechender Code sich in bestimmten Zeitabständen immer wieder aufruft.
Aber packe deinen Code doch ins Workbook_Open() Ereignis und lass die Datei durch den Taskplaner von Windows zur gewünschten zeit starten.
Die Mappe wird dann geöffnet, der Code durchlaufen und am Ende des Codes schliesst Du die Anwendung wieder.
Mit freundlichen Grüssen
Thomas Ramel
–
- MVP für Microsoft-Excel -
[Win XP Pro SP-2 / xl2003 SP-3]
Salü Thomas,
ist doch egal, wie man nach Rom kommt. Die Taskmanager-Methode funktioniert einwandfrei (aber erst, nachdem ich nach dem Fehlercode gegoogelt habe und die Anwendung in der Verwaltung aktiviert hatte…
)
Dafür erst mal danke.
Die Mappe wird dann geöffnet, der Code durchlaufen und am Ende
des Codes schliesst Du die Anwendung wieder.
Lässt sich denn wenigstens das „automatische“ speichern und Schließen der Datei in VBA übersetzen? Wenn du oder andere mir da noch mal helfen könnten, wäre ich noch dankbarer.
Liebe Grüße
Jorge
Hallo Jorge,
ist doch egal, wie man nach Rom kommt. Die Taskmanager-Methode
funktioniert einwandfrei (aber erst, nachdem ich nach dem
Fehlercode gegoogelt habe und die Anwendung in der Verwaltung
aktiviert hatte…
)
aus Interesse, was kam denn da für eine Fehlermeldung?
Ich habe den Taskmanager noch nie benutzt und die „Verwaltung“ von WinXP ist sicher gut durchdacht durch MS, d.h. ich finde aufgrund meiner Denke da nie was

Die Mappe wird dann geöffnet, der Code durchlaufen und am Ende
des Codes schliesst Du die Anwendung wieder.
Lässt sich denn wenigstens das „automatische“ speichern und
Schließen der Datei in VBA übersetzen? Wenn du oder andere mir
da noch mal helfen könnten, wäre ich noch dankbarer.
Vielleicht so:
Private Sub Workbook_Open()
Call DeinMakro
ThisWorkbook.Close savechanges:=True
End Sub
Gruß
Reinhard
Hallo Reinhard,
ist doch egal, wie man nach Rom kommt. Die Taskmanager-Methode
funktioniert einwandfrei (aber erst, nachdem ich nach dem
Fehlercode gegoogelt habe und die Anwendung in der Verwaltung
aktiviert hatte…
)
aus Interesse, was kam denn da für eine Fehlermeldung?
Ich habe den Taskmanager noch nie benutzt und die „Verwaltung“
von WinXP ist sicher gut durchdacht durch MS, d.h. ich finde
aufgrund meiner Denke da nie was

Der Fehlercode lautet „0x80041315“.
Gibt man kein Kennwort ein, erscheint ein weiterer Fehlercode.
Vielleicht so:
Private Sub Workbook_Open()
Call ReinhardsMakro
So ist es richtig!
ThisWorkbook.Close savechanges:=True
End Sub
Da schließt sich die Datei; lässt sich auch Excel schließen?
Danke und Gruß
Jorge
Hallo Jorge,
aus Interesse, was kam denn da für eine Fehlermeldung?
Ich habe den Taskmanager noch nie benutzt und die „Verwaltung“
von WinXP ist sicher gut durchdacht durch MS, d.h. ich finde
aufgrund meiner Denke da nie was

Der Fehlercode lautet „0x80041315“.
Gibt man kein Kennwort ein, erscheint ein weiterer Fehlercode.
aha, wenn ich also mal den taskmanager benutzen sollte und krieg da so eine Fehlermeldung muß ich den da irgendwie in der Verwaltung aktivieren, gut zu wissen.
Warum ich da ein Kennwort brauche ist mir sehr unklar, aber lassen wir das, Excel bietet genug Problematiken 
Da schließt sich die Datei; lässt sich auch Excel schließen?
Müßte ungetestet so gehen:
Private Sub Workbook_Open()
Call DeinMakro
ThisWorkbook.Close savechanges:=True
Application.Quit
End Sub
Gruß
Reinhard
Hallo Reinhard,
aha, wenn ich also mal den taskmanager benutzen sollte und
krieg da so eine Fehlermeldung muß ich den da irgendwie in der
Verwaltung aktivieren, gut zu wissen.
Neustart nicht vergessen!
Warum ich da ein Kennwort brauche ist mir sehr unklar, aber
lassen wir das, Excel bietet genug Problematiken 
Da schließt sich die Datei; lässt sich auch Excel schließen?
Müßte ungetestet so gehen:
Private Sub Workbook_Open()
Call DeinMakro
ThisWorkbook.Close savechanges:=True
Application.Quit
End Sub
Tiptop! Danke.
Hättest du nicht doch mal die Muße, dir dein Makro in meinem Ursprungsposting anzugucken und das auf ein anderes Tabellenblatt statt auf eine andere Datei umzuwandeln?
Ich würd mich sehr freuen.
Gruß
Jorge
Grüezi Jorge
ist doch egal, wie man nach Rom kommt. Die Taskmanager-Methode
funktioniert einwandfrei
Davon war ich ausgegangen 
(aber erst, nachdem ich nach dem
Fehlercode gegoogelt habe und die Anwendung in der Verwaltung
aktiviert hatte…
)
Der Taskplaner ist ein Dienst im Betriebssystem - wenn er nicht aktiv und gestartet ist geht nichts, das ist klar.
Fein, dass Du es hinbekommen (und vor allem selbst nach einer Lösung gesucht) hast.
Mit freundlichen Grüssen
Thomas Ramel
–
- MVP für Microsoft-Excel -
[Win XP Pro SP-2 / xl2003 SP-3]
Lieber Reinhard,
da du dich mit anderen wichtigen Fragestellungen beschäftigst …
und es mir keine Ruhe ließ, habe ich mir ein bisschen Zeit genommen und mit der trial and error-Methode gleich beim ersten Versuch eine Lösung hinbekommen.
Da jubelt der Laie!!! Und bedankt sich trotzdem noch mal für das Ursprungsmakro.
Liebe Grüße
Jorge
PS: Unser „Baby“ hat so schwer zugenommen (2,7 mb), dass Hostarea mault…