Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
372to376
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
372to376
372to376
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Hilfe Code bleibt hängen

Hilfe Code bleibt hängen
31.01.2004 13:06:57
Ute
Hallo Excelgemeinde,habe Schwierigkeiten mit unten aufgeführten Code.
Bei der Zeile ActiveWorkbook.Close , er soll aber weiterlaufen und mich wieder
zurück zur Quelle bringen und mein Blatt Auswertung1 wieder öffnen.
Gruss Ute


Private Sub CommandButton3_Click()
Dim DName As String, aktDir As String
ChDir "C:\Winnt\" 'Speicherort
Selection.Copy
DName = "Auswertung1" & " " & [A1] & " " & Format(Now, "DD-MM-YY") & ".xls"
ActiveWorkbook.SaveAs DName ' speichere unter Name Inhalt von Zelle A1 Datum.xls
MsgBox "Kopie erfolgreich unter " & ThisWorkbook.Path & "\" & DName & " gespeichert."
ActiveWorkbook.Close
ChDir "C:\Winnt\Eigene Dateien"
Workbooks.Open FileName:= _
"C:\Winnt\Eigene Dateien\Auswertung.xls"
Sheets("Auswertung").Select
End Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe Code bleibt hängen
31.01.2004 13:14:23
Thorsten
Hallo Ute
Änder den Code so um:

Private Sub CommandButton3_Click()
Dim DName As String, aktDir As String
ChDir "C:\Winnt\" 'Speicherort
Selection.Copy
DName = "Auswertung1" & " " & [A1] & " " & Format(Now, "DD-MM-YY") & ".xls"
ActiveWorkbook.SaveAs DName ' speichere unter Name Inhalt von Zelle A1 Datum.xls
MsgBox "Kopie erfolgreich unter " & ThisWorkbook.Path & "\" & DName & " gespeichert."
ActiveWorkbook.Close
End Sub


Private Sub Workbook_BeforeClose(Cancel As Boolean)
ChDir "C:\Winnt\Eigene Dateien"
Workbooks.Open FileName:= _
"C:\Winnt\Eigene Dateien\Auswertung.xls"
Sheets("Auswertung").Select
End Sub

So wird die aktuelle Datei geschlossen, und VOR dem Schließen wird der Pfad geändert und eine andere Datei geöffnet.
Ich hab es nicht getestet, sollte aber funktionieren.
Vielleicht konnte ich ja helfen.
Ciao
Thorsten
Anzeige
AW: Hilfe Code bleibt hängen
31.01.2004 13:31:04
Ute
Hallo Thorsten, leider funz das nicht er speichert mir alles ab aber
die Quelldatei öffnet er nicht,nach deiner Version ist der 2te Code ein
eigenständiges Modul.
Ich bin keine Fachfrau aber muss nich im ersten Modul das 2te aufgerufen werden.
Schau Bitte noch einmal drauf.
Gruss Ute
AW: Hilfe Code bleibt hängen
31.01.2004 14:04:08
Thorsten
Hallo Ute
Habe nun zuerst getestet und jetzt schreib ich :-)
Du kannst deshalb nicht den 2. Code-Teil nach dem Befehl "ActiveWorkbook.Close" schreiben, weil mit diesem Befehl eben alles geschlossen wird. So wird dann auch nicht folgender Quellcode ausgeführt.
Um dieses Problem zu umgehen, gibt es für jede Excel-Datei das Ereignis:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
End Sub

Hier kann Quellcode eingegeben werden, der direkt VOR dem Schließen einer Excel-Datei ausgeführt werden soll (wie ja in Deinem Fall gewünscht).
Du erreichst diesen Abschnitt, in dem Du die folgenden Schritte befolgst:
1. Deine Excel-Datei öffnen
2. VBA-Editor öffnen (über Extras / Makro / Visual-Basic-Editor)
3. Im Projekt-Explorer (linkes Fenster) doppelt auf "DieseArbeitsmappe" klicken
4. Im rechtten Fenster wählst Du aus dem Popupmenü (Allgemein) den einzigen Eintrag (Workbook) aus
5. Weiterhin im rechten Fenster wählst Du nun aus dem Popupmenü "Open" den Eintrag "BeforeClose" aus
Nun befindet sich der Textcursor in dem Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
End Sub

In diesen Bereich schreibst Du Diesen Code:
ChDir "C:\Winnt\Eigene Dateien"
Workbooks.Open FileName:= "C:\Winnt\Eigene Dateien\Auswertung.xls"
ActiveWorkbook.Sheets("Auswertung").Select
Das Ganze sollte dann SO aussehen:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ChDir "C:\Winnt\Eigene Dateien"
Workbooks.Open FileName:= "C:\Winnt\Eigene Dateien\Auswertung.xls"
ActiveWorkbook.Sheets("Auswertung").Select
End Sub

Hoffe, dass Dir mit dieser "Wegbeschreibung" besser geholfen ist.
Bei mir funktioniert es jedenfalls.
Bin gespannt auf Deine Rückmeldung :-)
Ciao
Thorsten
Anzeige
AW: Hilfe Code bleibt hängen
31.01.2004 13:45:56
Josef Ehrensberger
Hallo Ute!
Mit "ActiveWorkbook.Close" schliesst Du die Datei,
der Code kann also nicht weiterlaufen!
Stell die Anweisung zum schliessen ans Ende.


Private Sub CommandButton3_Click()
Dim DName As String, aktDir As String
Dim wkb As Workbook
Set wkb = ThisWorkbook
ChDir "C:\Winnt\" 'Speicherort
Selection.Copy
DName = "Auswertung1" & " " & [A1] & " " & Format(Now, "DD-MM-YY") & ".xls"
wkb.SaveAs DName ' speichere unter Name Inhalt von Zelle A1 Datum.xls
MsgBox "Kopie erfolgreich unter " & wkb.Path & "\" & DName & " gespeichert."
'ActiveWorkbook.Close
ChDir "C:\Winnt\Eigene Dateien"
    Workbooks.Open Filename:= _
        "C:\Winnt\Eigene Dateien\Auswertung.xls"
Sheets("Auswertung").Select
wkb.Close
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5

Gruß Sepp
Anzeige
AW: Hilfe Code bleibt hängen
31.01.2004 14:08:40
Thorsten
Huhu :-)
Diese Idee hatte ich auch zuerst.
Aber nach einigem Überlegen (ohne zu testen ;-) ) kam ich zu dem Schluß, dass durch das Öffnen von "Auswertung.xls" genau DIESE zur aktiven Datei wird.
Und wenn ich nach dem Öffnen dieser DAtei den Befehl gebe ActiveWorkbook.Close, dann wird doch "Auswertung.xls" sofort nach dem Öffnen wieder geschlossen, oder? :-)
Freue mich auf Antwort(en)
Ciao
Thorsten
AW: Hilfe Code bleibt hängen
31.01.2004 14:12:48
Josef Ehrensberger
Hallo Thorsten!
Lies den Code nochmal genauer durch.
Ich greife ja nicht auf die aktive Mappe zu,
sondern auf die Variable "wkb", und die
enthält die beim Aufrufen aktive Mappe.
Gruß Sepp
Anzeige
AW: Hilfe Code bleibt hängen
31.01.2004 14:16:43
Thorsten
Hallo Sepp
Jep...hast Recht :-)
Hab nun genauer gelesen.
Ciao
Thorsten
AW: An alle Mitwirkenden vielen Dank
31.01.2004 14:26:28
Ute
Hallo Ihr beiden,der Code von Sepp ist genau richtig.
Es hat mich sehr gefreut so nette Helfer zu finden.
Tausend Dank Gruss Ute
Danke für die Rückmeldung! o.T.
31.01.2004 14:29:04
Josef Ehrensberger
/

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige