Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro bricht unerwartet ab

Forumthread: Makro bricht unerwartet ab

Makro bricht unerwartet ab
20.09.2017 10:46:05
ZD14
Hallo Liebe Community,
ich bin wieder über ein sehr spezielles Problem in meinem Code gestoßen!
Folgendes Wunschprogramm:
1. Das Makro wird gestartet
2. UserForm öffnet sich --> Excel-Datei aus Liste auswählen
3. gewählte Datei öffnet sich
4. UserForm öffnet sich --> Arbeitsblatt von der vorhin gewählten Datei aus Liste auswählen
5. Im gewählten Arbeitsblatt wird ein bestimmter Bereich kopiert
6. PowerPoint wird geöffnet und eine Vorlage geladen
7. Zwischenablage wird eingefügt
8. gewählte Datei wird geschlossen
9. aus erster Datei wird ein bestimmerter Bereich kopiert und im PowerPoint eingefügt
ENDE
Bis Punkt 8 läuft alles spitze durch! Nach dem Schließen der zweiten Excel-Datei passiert aber gar nichts mehr! GAR nichts!
Ich habe ein On Error GoTo eingebaut, dieses wird aber nicht aufgerufen.
Ich habe MsgBoxen eingefügt, diese werden allerdings ab dem Schließen der gewählten Datei nicht mehr angezeigt.
Ich bin den Code mit F8 durchgegangen. Dabei macht sich der Code ab dem Öffnen von PowerPoint selbständig (die Befehle werden trotz F8 schnell abgearbeitet) und bricht dann nach dem Schließen wieder ab.
Hier noch der entscheidende Teil des Codes:

ActiveWorkbook.Sheets(str_sheet).Range("C4:AJ38").Copy 'die gewählte Datei ist aktiv!
'BIS HIER HIN WIRKT F8
'create presentation
Set oPPT = CreateObject("Powerpoint.Application") 'Dim oPPT as Object geschieht früher
With oPPT
.Visible = True
.Presentations.Open Filename:="L:\XXXX\Templates\Master_CW.pptx"
End With
oPPT.WindowState = ppWindowMinimized
'insert data from second file
int_j = 2
PowerpointGateExportHelp int_j 'Fügt die Zwischenablage in der PowerPoint ein
Application.DisplayAlerts = False
ActiveWorkbook.Close 'BIS HIER HIN LÄUFTS DURCH
Application.DisplayAlerts = True
'insert data from first file
BCM.Activate 'BCM as Workbook --> vorher auf ursprünglich geöffnete Datei gesetzt
BCM.Sheets("PM-DB").Range("C15:X55").Copy

Hat irgendwer eine Idee was ich falsch mache? Ich verzweifle schon ein wenig ..
Vielen Dank!
LG ZD14
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro bricht unerwartet ab
20.09.2017 11:00:15
Daniel
Hi
ActiveWorkbook.Close ist gefährlich.
Besser wäre es, das zu schließende Workbook direkt anzugeben.
Ansonsten müsstest du prüfen, ob auch die richtige Datei aktiv ist, damit du nicht zufälligerweise die Datei schließt, die das laufende Marko enthält.
um das abzusichern, kannst du mal folgendes einbauen, dann hält der Code an, wenn die aktive Datei die mit dem Makro ist.
If ThisWorkbook.Name = AcitveWorkbook.Name then
Stop
Else
ActiveWorkbook.Close
End If

zum deinem Test-Problem:
ja das ist anscheinend ein Bug in VBA, dass nach bestimmten Befehlen (z.B. dem Öffnen einer Datei) der Einzelstepmodus verlassen wird und das Makro normal durchläuft.
Da hilft dann nur, nach so einem Befehl einen Haltepunkt zu setzen.
Gruß Daniel
Anzeige
AW: Makro bricht unerwartet ab
20.09.2017 11:23:14
ZD14
Hallo Daniel,
Danke für deine schnelle Rückmeldung! Der Tipp mit dem Haltepunkt beim Schließen hilft.
Jetzt weiß ich endlich was passiert:
Nachdem die zweite Datei geschlossen wird, springt der Code wieder in UserForm_QueryClose und damit auf ActiveWorkbook.Close. Dadurch kommt natürlich alles durcheinander. Ich habe jetzt UserForm_QueryClose auskommentiert, da ich es in diesem Fall nicht brauche (in anderen UserForms war es nötig und dann dachte ich, es kann in keiner schaden^^)
Vielen lieben Dank! :D

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Cancel = CloseMode  vbFormCode
cmd_CancelSheet_Click
End Sub
Private Sub cmd_CancelSheet_Click()
'Close form
Me.Hide
Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True
End

Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige