Registriert seit: 25.06.2020
Version(en): 2010
Hallo, ich möchte erreichen, das wenn ich eine Arbeitsmappe schließe, und eine weitere geöffnete Arbeitsmappe auf aktiv setze, das ein VBA Code ausgeführt wird.
leider klappt das mit meinem Code nicht wenn ich die Arbeitsmappe schließe. wenn ich jedoch den Code mit einem Button auf der aktiven Mappe ausführen lasse, dann geht es.
Call Dateinamen_umbenennen_Klicken
Kill (sDatei1)
Kill (sDatei2)
MsgBox "Fertig"
Range("A1").Select
ActiveWorkbook.Save
ActiveWorkbook.Close 'hier wir die Arbeitsmappe geschlossen
Worksheets("Rechnungsversand").Activate 'die im Hintergrund geöffnete Arbeitsmappe wird aktiviert
Call Offene_Rechnungen_Firmen_Klicken 'jetzt soll der Code ausgeführt werden
mache ich da einen Denkfehler??
Lieben Gruß Frank
Registriert seit: 12.06.2020
Version(en): 2021
04.09.2021, 15:21
(Dieser Beitrag wurde zuletzt bearbeitet: 04.09.2021, 15:27 von ralf_b.)
Lässt du den Code denn nicht in einem Eventmakro laufen?
Beforeclose()
Deaktivate() oder oder oder?
Zitat:Worksheets("Rechnungsversand").Activate 'die im Hintergrund geöffnete Arbeitsmappe wird aktiviert
du aktivierst ein Arbeitsblatt in der offenen Datei und keine andere Mappe.
Der Code läuft vermutlich in der eben noch ein bisschen offenen Mappe.
das close() sollte ganz zuletzt stehen.
Registriert seit: 25.06.2020
Version(en): 2010
Nein, das löst das Problem leider nicht.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
ralf_b meinte eventuell statt:
ActiveWorkbook.Close 'hier wir die Arbeitsmappe geschlossen
Worksheets("Rechnungsversand").Activate 'die im Hintergrund geöffnete Arbeitsmappe wird aktiviert
Call Offene_Rechnungen_Firmen_Klicken 'jetzt soll der Code ausgeführt werden
besser so
Worksheets("Rechnungsversand").Activate 'die im Hintergrund geöffnete Arbeitsmappe wird aktiviert
Call Offene_Rechnungen_Firmen_Klicken 'jetzt soll der Code ausgeführt werden
ThisWorkbook.Close 'hier wir die Arbeitsmappe geschlossen
Ich vermute, dass das Makro Offene_Rechnungen_Firmen_Klicken in der Datei mit dem Blatt Rechnungsversand steht?
Dann solltest Du die beiden Zeilen im Workbook_Activate von der Datei machen. Schlimmstenfalls kannst Du das unter der Bedingung machen, dass die andere Datei nicht offen ist. Ansonsten würde das ja auch laufen wenn Du mal nur die Datei mit dem Rechnungsversand öffnest.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
00202
Nicht registrierter Gast
Hallo Frank,
ein Makro in einer anderen Datei ruft man mit "
Application.Run" auf - du musst sie
nicht vorher aktivieren:
Code:
Call Application.Run("'Makro_hier_ausfuehren.xlsb'!Modul1.Offene_Rechnungen_Firmen_Klicken")
Da müsste die Datei nichtmal
offen sein - der Code öffnet sie bei Bedarf.
Die "
einzelnen Anführungszeichen" sind drin, falls der Dateiname
Leerzeichen enthält - stören aber auch
nicht, wenn dem nicht so ist.
In meinem Beispiel ...
heisst die Datei "
Makro_hier_ausfuehren.xlsb".
ist in "
Modul1"
Makro heisst "
Offene_Rechnungen_Firmen_Klicken"
Das "
Modul1." muss man nicht unbedingt davor schreiben -
nur, wenn du ein gleichlautendes Makro in z. B. dem Klassenmodul von Tabelle1 hast, dann heisst der Code zum aufrufen:
Code:
Call Application.Run("'Makro_hier_ausfuehren.xlsb'!Tabelle1.Offene_Rechnungen_Firmen_Klicken")
Du könntest so auch den Code eines "
ActiveX CommandButton" aufrufen:
Code:
Call Application.Run("'Makro_hier_ausfuehren.xlsb'!Tabelle1.CommandButton1_Click")
Registriert seit: 25.06.2020
Version(en): 2010
Das klappt leider alles nicht
00202
Nicht registrierter Gast
Hallo Frank,
bei mir klappt das einwandfrei.
[attachment=40079]
Enpacke mal die beiden Dateien und teste damit.
Randbedingungen:
Die Datei "
Makro_hier_ausfuehren.xlsb" ist offen. Keine Probleme. Ist sie nicht offen, muss sie in einem Ordner sein, der in der "
Windows Path-Umgebungsvariablen" drin ist (
Windows Basiswissen 1. Klasse,
1. Woche,
1. Tag, 1. Stunde).
Sonst -
und nur dann - musst du noch den
Pfad mit angeben. Aber wie gesagt - nur wenn sie
nicht offen ist.
Da sind jetzt alle drei Varianten drin.
00202
Nicht registrierter Gast
Hallo,
hier jetzt auch mit Version Datei geschlossen:
[attachment=40081]
Wenn Datei in anderem Ordner, dann einfach den kompletten Pfad angeben.
Folgende(r) 1 Nutzer sagt Danke an Gast für diesen Beitrag:1 Nutzer sagt Danke an Gast für diesen Beitrag 28
• PIVPQ
Registriert seit: 25.06.2020
Version(en): 2010
Erst einmal, vielen, vielen Dank für eure Hilfe.
Ich habe es jetzt hinbekommen.
Der Fehler lag daran, das ich das Makro nicht richt angesteuert habe.
Die Lösung war:
Workbooks("Rechnungsversand Stammfirmen.xlsm").Worksheets("Rechnungsversand").Activate
Application.Run "'Rechnungsversand Stammfirmen.xlsm'!Offene_Rechnungen_Firmen_Klicken"
nochmals vielen Dank.
Gruß Frank