Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Funktion Call Makro funktioniert nicht

Funktion Call Makro funktioniert nicht
31.10.2005 14:33:12
Andrew
Hallo zusammen,
kann mir jemand bei meiner Datei helfen?
Hier soll durch das Makro Alle(), das die Funktion "Call" enthaelt, zwei vorgelagerte Makros abgearbeitet werden.
Wenn ich die Makros alleine durchlaufen lasse, funktionieren sie.
Aber mit der Call-Funktion bekomme ich bei dem zweiten Makro das gleiche heraus wie bei dem ersten. Das soll nicht sein.
Bitte werft einen Blick auf die Datei
https://www.herber.de/bbs/user/27991.xls
Fuer eure Unterstuetzung waere ich sehr dankbar
Viele Gruesse
Andrew
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Funktion Call Makro funktioniert nicht
31.10.2005 17:07:58
Tinu
Hi Andrew
Du musst zwischen Call Makro1 und Call Makro2 wieder in die Ursprungsdatei wechseln. Wenn Makro1 beendet ist, bist Du in einer anderen Datei und der Range ist nicht definiert.
Gruss
Tinu
AW: Funktion Call Makro funktioniert nicht
31.10.2005 17:16:34
Erich
Hallo Andrew,
Tinus Antwort habe ich gerade erst gesehen. Obwohl meine Antwort in die gleiche Richtung geht, poste ich sie - sie ist etwas ausführlicher:

Die beiden Calls funktionieren. Das Problem sind die beiden Makros Makro1 und Makro2. Wenn "Alle" gestartet wird, arbeitet Makro1 und sichert "0152_1.txt". Die Mappe wird aber nicht geschlossen.
("Close" in dieser Form ist eine Anweisung, die alle Dateien schließt, die vorher mit einer Anweisung wie "Open Dateiname For Output As #I" geöffnet wurden. Du willst eigentlich die Methode Close eines Workbooks anwenden, z. B. "ActiveWorkbook.Close".)
Das falsche Close führt dazu, dass die "0152_1.txt" offen und damit die aktive Mappe bleibt. Makro2 arbeitet dann auf dieser Datei statt auf der gewünschten. Du kannst das sehen, wenn du etwa vor Call Makro2 einen Haltepunkt setzt.
Ich schreib mal stichwortartig auf, wie Makro1 und Makro2 laufen sollten:

If Not rngU Is Nothing Then
Set wkbNew = Workbooks.Add
rngU.Copy wkbNew.Sheets(1).Range("A6")
'   End If   ist hier nicht richtig. Der folgende Code soll doch nur ausgeführt werden,
'             wenn rngU kopiert wurde.
'   Set wkbNew = Nothing  sollte am Ende stehen
'                      ab hier könnte der Code so bleiben:
Set rngU = Nothing
'   ...Formeln eintragen...
'   ...sichern (ActiveWorkbook.SaveAs...)
'   Wofür machst du hier noch Copy und PasteSpecial ? (Die Mappe ist als
'      xlUnicodeText gesichert und wird gleich danach geschlossen.)
wkbNew.Close   ' statt nur "Close" - das ist ein ganz anderer Befehl, der auch "Close" heißt.
Set wkbNew = Nothing
End If '                gehört hier ans Ende

Wenn du diese Änderungen in beiden Makros machst, sollte es funzen.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Funktion Call Makro funktioniert nicht
31.10.2005 19:59:49
Andrew
Hallo Tinu,
Hallo Erich,
vielen Dank für eure Antworten. Ihr habt mir super geholfen.
Ganz grosse Klasse.
Gruss
Andrew
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
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