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

VBA Excel schließen mit US aber mit Bedingung

Forumthread: VBA Excel schließen mit US aber mit Bedingung

VBA Excel schließen mit US aber mit Bedingung
06.01.2025 01:04:32
Mariia
Liebe Profis,

ich bin eine komplette VBA-Leie, versuche aber gerade, eine kleine Datenbank zu erstellen.
Dank diesem Forum sehen meine UserFormen inzw. ganz gut aus und machen sogar das, was ich will. An einer Stelle komme ich aber leider nicht weiter und finde trotz tagelanger Researche keine Lösung. Ich hoffe sehr auf Eure Hilfe!

Beim Öffnen der Datei ist nur die UserForm und nicht die Excel-Datei sichtbar:

Private Sub Workbook_Open()

'ActiveWindow.WindowState = xlMinimized
UserForm1.Show
End Sub


Mit der UserForm werden zwei Anwendergruppen arbeiten:
1) Die eine arbeitet nur mit der UF und darf keinen Zugriff auf die Excel haben. Die UF soll über X geschlossen werden.
2) Die zweite Anwendergruppe soll aus der UF in die Excel-Datei gelangen können, um diese zu bearbeiten.

Die Excel-Datei lasse ich im zweiten Fall über einen Button in der UF wieder einblenden:

Private Sub CommandButton4_Click()

ActiveWindow.WindowState = xlMaximized
End Sub


Dabei taucht die Excel-Datei hinter der UF auf. Die UF muss geschlossen werden, um die Excel-Datein bearbeiten zu können (so läuft das aktuell und ich weiß nicht, ob man das ändern kann?).

Das Problem, welches ich habe, bezieht sich auf das Schließen der Dateien: Wenn die erste Anwendergruppe die UF schließt, schließt sich noch nicht die Excel-Datei. Das wollte ich lösen mit dem Code:

If Application.Workbooks.Count = 1 Then

ThisWorkbook.Saved = True
Application.Quit
Else
ThisWorkbook.Close False
End If


Das wäre aber ein Problem für die Anwendergruppe2: UF muss geschlossen werden, um die Excel-Datei bearbeiten zu können - aber Excel ginge zusammen mit der US weg.

Ich bräuchte also einen Code, der sagt so etwas wie:

Wenn die UF geschlossen wird, schließe auch die Excel-Datei, sofern diese ausgeblendet ist.

Wenn die Excel aber eingeblendet ist, darf sie nicht mit dem Schließen der US beendet werden.


Geht so etwas und wenn ja, wie würde der Code dafür aussehen?

Der zweite Lösungsansatz wäre, dass die eingeblendete Excel-Datei (für die Zielgruppe 2) im Vordergrund erscheint und die US nicht geschlossen werden muss, um an die Excel-Datei zu gelangen. Wäre das evtl. möglich?

Wichtig ist, dass immer nur diese eine Excel-Datei geschlossen wird. Andere Excel-Dateien, die ggf. parallel geöffnet sind, sollen weiterhin geöffnet bleiben.

Ich hoffe sehr, dass Ihr mir helfen könnt!!!
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Excel schließen mit US aber mit Bedingung
06.01.2025 01:13:48
Mariia
Sorry für den Tippfehler in der Beitragsbezeichnung! Sollte UF=UserForm heißen.... Das kann man aber nachträglich scheinbar nicht mehr ändern, oder?
AW: VBA Excel schließen mit US aber mit Bedingung
06.01.2025 01:17:10
Kuwer
Hallo,

Die Excel-Datei lasse ich im zweiten Fall über einen Button in der UF wieder einblenden:

Private Sub CommandButton4_Click()

ActiveWindow.WindowState = xlMaximized
Unload Me
End Sub

Gruß, Uwe
Anzeige
AW: VBA Excel schließen mit US aber mit Bedingung
06.01.2025 23:09:18
Mariia
Lieber Uwe,

WOW, vielen Dank!

Ich habe an meinem Code noch ein bisschen gearbeitet und habe zwei neue Fragen.

Damit meine Excel-Datei gar nicht zu sehen ist, habe ich mich statt "minimized" für diesen Code entschieden:

Private Sub Workbook_Open()

Windows(Me.Name).Visible = False
UserForm1.Show
End Sub


Jetzt taucht zusammen mit der UF eine leere Excel-Datei, was akzeptabel ist. Es sei denn es gäbe eine schönere Lösung, so dass gar keine Excel-Datei sichtbar ist?

Nun ist es so, dass ich insg. zwei UF haben: 1) Suche der bestehenden Einträge und 2) Eingabe neuer Datensätze. Die Eingabe der neuen Datensätze läuft über den Code

Private Sub CommandEingabe_Click()

Dim last As Integer
last = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
....


Diese Code läuft nun leider nicht mehr, weil die Excel-Datei ja nicht sichtbar ist :) Wie erstelle ich einen Bezug auf ein ausgeblendetes Blatt einer Excel-Datei? Wie kann ich den Ausdruck "ActiveSheet" irgendwie ersetzen?

Herzlichen Dank für die Hilfe!!!
Mariia

Anzeige
AW: VBA Excel schließen mit US aber mit Bedingung
06.01.2025 23:16:59
Kuwer
Hallo Mariia,

Wie erstelle ich einen Bezug auf ein ausgeblendetes Blatt einer Excel-Datei? Wie kann ich den Ausdruck "ActiveSheet" irgendwie ersetzen?
'last = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1

last = Worksheets("Bla").Cells(Rows.Count, 1).End(xlUp).Row + 1

Gruß, Uwe
Anzeige
AW: VBA Excel schließen mit US aber mit Bedingung
07.01.2025 00:04:58
Mariia
Lieber Uwe,

ich weiß gar nicht, wie ich danken soll. Allerdings läuft nun auch mein Suche-Code nicht mehr. Hast Du eine Idee, woran das liegen kann?

Private Sub CommandButton3_Click()

Set finden = Columns(1).Find(what:=TFKZ_Suchen, lookat:=xlWhole)
If finden Is Nothing Then
MsgBox "Kein FKZ gefunden"
Else
...


Die Fehlermeldung lautet "Objekt erforderlich" also vermute ich, dass hier nun auch der Bezug auf das ausgeblendete Datenblatt fehlt. An welche Stelle soll ich den hier das mit dem "Worksheets" schreiben? Ich habe schon mehrere Varianten ausprobiert aber nichts hilft..

Danke!!!
Mariia
Anzeige
AW: VBA Excel schließen mit US aber mit Bedingung
07.01.2025 02:51:54
Kuwer
Hallo Mariia,

das Worksheets... kommt vor Columns(1) .

Gruß, Uwe

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige