Probleme mit Makro, wenn Excel ausgeblendet ist?
Kasimir
Hallo Leute,
ich hoffe, Ihr könnt mir helfen. Vorab eine Info zu meiner Datei. Hierbei wird Excel durch "Application.Visible = False" im Hintergrund gehalten und nur durch eine UserFormen gesteuert.
Nun habe ich ein Makro, mit dem Daten aus dieser ausgeblendeten Datei von einem Tabellenblatt in eine andere Exceldatei kopiert werden. Das Makro ist das nachfolgende:
Sub Objektliste_exportieren()
Dim Dateiname As String
Dim LastRow As Integer
Dim firstRow As Integer
Dim wkbObjekte As Workbook
Dim wkbMaster As Workbook
283 On Error GoTo ERRORHANDLER
285 bolExportObjektliste = True
286 Objekliste_wird_geöffnet = True
288 Call Programmbeschleunigung_ein
290 Application.Visible = True
292 Verzeichnis = Mid(ActiveWorkbook.path, 1, Len(ActiveWorkbook.path) - 8) & "Preislisten\"
294 LastRow = Sheets("Hilfstabelle").Range("E65536").End(xlUp).Row
296 Set wkbMaster = ThisWorkbook
298 Set wkbObjekte = Workbooks.Open(Verzeichnis & "\Objektverzeichnis.xls", Password:="flatino") _
300 wkbObjekte.Sheets(1).Columns("A:B").ClearContents
302 ThisWorkbook.Sheets("Hilfstabelle").Range("E1:F" & LastRow).Copy
303 wkbObjekte.Sheets(1).Range("A1").PasteSpecial
305 ThisWorkbook.Sheets("Hilfstabelle").Range("BN1:BN" & LastRow).Copy
306 wkbObjekte.Sheets(1).Range("C1").PasteSpecial
308 wkbMaster.Sheets("Leer").Activate
310 wkbObjekte.Close True
312 Set wkbObjekte = Nothing
313 Set wkbMaster = Nothing
315 Sheets("Leer").Activate
317 bolExportObjektliste = False
318 Objekliste_wird_geöffnet = False
319 Application.Visible = False
321 Exit Sub
'Prozedur beenden
325 Exit Sub
'Dieser Bereich wird abgearbeitet, sollte ein Fehler in Code auftretetn. Dann _
erscheint eine Bildschirmmeldung
ERRORHANDLER:
330 bolExportObjektliste = False
331 Objekliste_wird_geöffnet = False
332 Call Programmbeschleunigung_aus
333 Fehlerzeile = Erl
334 Fehlerort = "Makros_Objektinhaltsverzeichnis"
335 Fehlerereignis = "Objektliste_exportieren"
336 Logdatei_erzeugen
338 Application.Visible = True
End Sub
Das Makro funktioniert so, wie ich es aufgeführt habe im Moment. Wenn ich allerdings die Zeilen 290 und 319 lösche, dann funktioniert das nicht mehr. Durch den Befehl „wkbObjekte.Close True” in Zeile 310 wird die gesamte Datei geschlossen. Nur wenn ich am Anfang des Makros Excel einblende und am Ende wieder ausblende funktioniert es. Ich habe auch schon mit Windows(„xyz“) herum probiert, dass meine Ausgangsdatei wieder aktiviert ist, herum probiert, aber mit wenig Erfolg.
Weiß jemand, wie ich das realisieren kann, dass Excel sich im Hintergrund befindet, eine weiter Datei geöffnet werden kann, Daten kopiert werden und die gerade geöffnete Datei wieder geschlossen werden kann, ohne Excel komplett zu beenden? Ich wäre Euch sehr dankbar.
Gruß,
Kasimir