Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1288to1292
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
Inhaltsverzeichnis

workbooks aus Formular heraus schließen

workbooks aus Formular heraus schließen
18.12.2012 07:35:31
Ralf
Hallo alle zusammen,
bin ganz neu hier und hoffe ihr könnt mir helfen.
Ich schließe aus einem Formular heraus mit einem Button "Schließen" Excel Mappen die ich nicht mehr brauche. Die Mappen stehen in einem Listenfeld. Wenn ich im Listenfeld eine Mappe auswähle und dann auf den Button "Schließen" klicke, wird die Mappe geschlossen und die nächste aus dem Listenfeld aktiviert. Das funktioniert auch alles ganz gut.
Nur wenn ich die letzte Mappe aus dem Listenfeld ausgewählt habe und diese schließe, wird die Mappe zwar geschlossen aber in der Titelleiste(Ganz oben im Fenster) steht noch der Name der letzten Mappe aber sie ist schon geschlossen. Erst wenn ich das Formular schließe, wird der Name in die aktive Mappe geändert.
Gibt es da eine Möglichkeit den Namen anzupassen mit so was wie refresch oder so?
Ich habe auch schon versucht die Form zu schließen und dann wieder zu öffnen. Auch ohne Erfolg.
Also Formular wir von Mappe XY.xlsm aufgerufen und dann werden viele Mappen geöffnet und im Listemfeld angezeigt, bearbeitet und irgendwann wieder geschlossen. Nach schließen von der letzten Mappe aus dem Listenfeld wird dieser Name weiterhin als aktive Mappe(Titel) angezeigt obwohl die Mappe schon geschlossen ist. Erst wenn ich das Formular schließe wird wieder XY.xlsm als aktive Mappe angezeigt.
Wisst ihr was zu tun ist.
Mappen werden mit workbooks(Listenfeld.value).close
Gruß
Ralf

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

Betreff
Datum
Anwender
Anzeige
AW: workbooks aus Formular heraus schließen
18.12.2012 08:23:57
fcs
Hallo Ralf,
probiere mal die beiden folgenden Varianten.
Ansonsten müsstets du mal den kompletten Code des Schliessen-Buttons posten, damit man beurteilen kann, was genau alles passiert, wenn der Button geklickt wird.
Die Ergänzungen prüfen, ob in der Liste noch ein Eintrag vorhanden ist bzw. ob der letzte Eintrag geschlossen wurde.
Gruß
Franz
Workbooks(Listenfeld.Value).Close
If Listenfeld.ListCount = 0 Then ThisWorkbook.Activate
'oder
Workbooks(Listenfeld.Value).Close
If Listenfeld.ListIndex = Listenfeld.ListCount - 1 Then ThisWorkbook.Activate

Anzeige
AW: workbooks aus Formular heraus schließen
18.12.2012 18:13:13
Ralf
Hallo Franz,
ich muss noch hinzufügen, dass nicht nur der Titel sondern die ganze Mappe noch angezeigt wird solange bis ich das Formular schließe.
Habe vorher nochmal gesucht aber ich finde nichts.
Aber eine Auffälligkeit habe ich noch. Wenn ich den Code im Einzelschritt ausführe funktioniert es!!?
Hier der Code:
Dim Zeile
Dim TMP
Dim Auftrag As String 'Name der Datei merken die im Listenfeld Auftrag gerade ausgewählt ist
On Error GoTo schluss
Auftrag = StundenEintragen.Auftrag.Value 'StundenEintragen ist das Formular und Auftrag das Listenfeld
Zeile = StundenEintragen.Auftrag.ListIndex
StundenEintragen.Auftrag.RemoveItem Zeile 'Eintrag auch aus dem Listenfeld löschen
Workbooks(Auftrag).Save
Workbooks(Auftrag).Close
ThisWorkbook.Activate
If StundenEintragen.Auftrag.ListIndex -1 Then
StundenEintragen.Auftrag.Selected(StundenEintragen.Auftrag.ListCount - 1) = True
Workbooks(StundenEintragen.Auftrag.Value).Sheets("Gesamtkosten").Activate
End If
Exit Sub
schluss:
On Error GoTo 0

Anzeige
AW: workbooks aus Formular heraus schließen
18.12.2012 19:18:04
fcs
Hallo Ralf,
ich hab mal versucht etwas einfaches nachzubauen und zu testen.
Ich hatte dabei kein Problem beim Schliessen der letzten Datei in der Liste.
Die Mappe mit Userform (Thisworbook) wurde einwandfrei zur aktiven Datei.
Woran es bei dir hängt: ?
Irgendwie scheint es ein Problem zu geben, so das der Fokus auf das gewünschte Objekt nicht korrekt gesetzt wird. Ist Thisworkbook evtl. auf unsichtbar gesetzt, während das Userform angezeigt wird?
Ich würde an deiner Stelle mal die Logik in der Prozedur bereinigen.
So sollte das Makro kaum noch in die Fehler-Routine laufen. Die MsgBoxen dienen nur der Information, welche Wege das Makro nimmt, die entsprechenden Zeilen kannst du zu Kommentaren machen, wenn alles rund läuft.
Private Sub cmbSchliessen_Click()
Dim Zeile
Dim TMP
Dim Auftrag As String 'Name der Datei merken die im Listenfeld Auftrag gerade ausgewählt ist
On Error GoTo schluss
If StundenEintragen.Auftrag.ListIndex  -1 Then
Auftrag = StundenEintragen.Auftrag.Value 'StundenEintragen ist das Formular und Auftrag das  _
Listenfeld
Zeile = StundenEintragen.Auftrag.ListIndex
StundenEintragen.Auftrag.RemoveItem Zeile 'Eintrag auch aus dem Listenfeld löschen
Workbooks(Auftrag).Save
Workbooks(Auftrag).Close
If StundenEintragen.Auftrag.ListCount > 0 Then
StundenEintragen.Auftrag.Selected(StundenEintragen.Auftrag.ListCount - 1) = True
Workbooks(StundenEintragen.Auftrag.Value).Sheets("Gesamtkosten").Activate
Else
MsgBox "Keine weiteren Dateien mehr in der Liste"
ThisWorkbook.Activate
End If
Else
MsgBox "Es wurde keine zu schliessende Datei gewählt"
End If
Exit Sub
schluss:
MsgBox "Fehler-Nr.: " & Err.Number & vbLf & Err.Description, _
vbInformation + vbOKOnly, "Makro: cnbSchliessen_Click"
On Error GoTo 0
End Sub
Die Tatsache, dass der Fehler im Schrittmodus nicht auftritt, liegt wahrscheinlich daran, dass im Schrittmodus der Fokus immer korrekt auf einem Objekt gesetzt ist.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige