Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1008to1012
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
Inhaltsverzeichnis

Makro - Fehler abfangen

Makro - Fehler abfangen
14.09.2008 20:34:00
WalterK
Hallo,
mit Hilfe des Makrorekorders habe ich den folgenden Code erstellt, der aus einer anderen Datei, deren Pfad ich im Code vorgebe, 4 Blätter in die aktuelle Mappe kopiert. Soweit klappt es auch. Jetzt weiß ich allerdings nicht mehr weiter.
Was mir noch fehlt:
1.) dieser Teil des Codes
Move Before:= _
Workbooks("__Testdatei - 13.09.2008-4.xls").Sheets(1)
sollte variabel sein, weil die Datei auch umbenannt werden kann
2.) es müsste noch der Fehler abgefangen werden, wenn die Datei nicht gefunden wird

Sub Auswertungsblätter_holen()
Sheets("Infofenster").Visible = True
Sheets("Infofenster").Select
Application.ScreenUpdating = False
Workbooks.Open Filename:="C:\__Walter\Auswertungen.xls"
Sheets(Array("ListeEins", "ListeZwei", _
"ListeDrei", "ListeVier")).Select
Sheets("ListeVier").Activate
Sheets(Array("ListeEins", "ListeZwei", _
"ListeDrei", "ListeVier")).Move Before:= _
Workbooks("__Testdatei - 13.09.2008-4.xls").Sheets(1)
Windows("Auswertungen.xls").Activate
Workbooks("Auswertungen.xls").Saved = True
ActiveWindow.Close
Sheets("Infofenster").Visible = False
Sheets("Nachträge_auflisten").Select
Range("EK99").Select
End Sub


Wer kann helfen?
Besten Dank und Servus, Walter

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
ungetestet !
14.09.2008 20:51:53
Matthias
Hallo
Versuche mal so zum testen:
Dim strgBook As String
strgBook = ThisWorkbook.Path & ".xls"
MsgBox strgBook


also dann:
Workbooks(strgBook).Sheets(1)
für die Fehlerbehandlung, dann an den Anfang unter DIM
On Error goto Fehler
und vor End Sub


Fehler:



also gesamt in etwa so:

Sub Auswertungsblätter_holen()
Dim strgBook As String
strgBook = ThisWorkbook.Path & ".xls"
On Error goto Fehler
    Sheets("Infofenster").Visible = True
Sheets("Infofenster").Select
Application.ScreenUpdating = False
Workbooks.Open Filename:="C:\__Walter\Auswertungen.xls"
Sheets(Array("ListeEins", "ListeZwei", _
"ListeDrei", "ListeVier")).Select
Sheets("ListeVier").Activate
Sheets(Array("ListeEins", "ListeZwei", _
"ListeDrei", "ListeVier")).Move Before:= _
        Workbooks(strgBook).Sheets(1)
Windows("Auswertungen.xls").Activate
Workbooks("Auswertungen.xls").Saved = True
ActiveWindow.Close
Sheets("Infofenster").Visible = False
Sheets("Nachträge_auflisten").Select
Range("EK99").Select
Fehler:
End Sub


aber nicht getestet!
Gruß Matthias

Anzeige
AW: ungetestet !
14.09.2008 21:27:49
WalterK
Hallo Matthias,
danke auch dir für die Hilfe.
Der Code läuft zwar durch, die Quelldatei wird auch geöffnet, dann tut sich nichts mehr. Die Quelldatei bleibt offen, in die Zieldatei (in die die Blätter kopiert werden sollten) wurden aber keine Blätter kopiert.
zur Info, falls das wichtig ist: die beiden Dateien sind nicht im gleichen Ordner gespeichert
Servus, Walter
AW: Makro - Fehler abfangen
14.09.2008 20:55:29
Erich
Hallo Walter,
ist __Testdatei - 13.09.2008-4.xls die aktive Mappe, also die Mappe, in der auch der Code steht?
Dann braucht der Mappenname nicht im Code zu stehen.
Soll - während des Kopiervorganges - kurzzeitig das Blatt "Infofenster" angezeigt werden?
(Statt Move kannst du auch Copy verwenden - die Quellmappe wird unverändert geschlossen.)
Probier mal das (ungetestet):

Sub Auswertungsblätter_holen()
Const strAusw As String = "C:\__Walter\Auswertungen.xls"
If Dir(strAusw) = "" Then
MsgBox "'" & strAusw & "' nicht gefunden", vbCritical, "Weise hin..."
Exit Sub
End If
Sheets("Infofenster").Visible = True
Sheets("Infofenster").Select
Application.ScreenUpdating = False
With ActiveWorkbook
Workbooks.Open Filename:="C:\__Walter\Auswertungen.xls"
'    Sheets(Array("ListeEins", "ListeZwei", _
'        "ListeDrei", "ListeVier")).Select
'    Sheets("ListeVier").Activate
Sheets(Array("ListeEins", "ListeZwei", _
"ListeDrei", "ListeVier")).Copy Before:=.Sheets(1)
End With
'    Windows("Auswertungen.xls").Activate
'    Workbooks("Auswertungen.xls").Saved = True
'    ActiveWindow.Close
ActiveWorkbook.Close False
Sheets("Infofenster").Visible = False
Sheets("Nachträge_auflisten").Select
Range("EK99").Select
Application.ScreenUpdating = True
End Sub

Die auskommentierten Zeilen sind IMHO überflüssig.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Makro - Fehler abfangen
14.09.2008 21:17:02
WalterK
Hallo Erich,
danke für deine Hilfe und Ja zu deinen beiden Fragen.
Der Code läuft durch, allerdings bleibt die Quelldatei offen und die Zieldatei (in die die Blätter kopiert werden) wird geschlossen, dass sollte allerdings gerade umgekehrt sein.
Servus, Walter
es läuft alles, Problem ist gelöst
14.09.2008 22:01:23
WalterK
Hallo,
mit einer kleiner Änderung läuft jetzt alles wie geplant.
Besten Dank für eure Hilfe.
Servus, Walter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige