Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1372to1376
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

Problem mit Userform

Problem mit Userform
30.07.2014 10:39:57
Regne
Hallo,
Ich habe ein Problem mit einer UserForm diese wird mit folgendem VBA Code gestartet.

Private Sub Workbook_Open()
Application.ScreenUpdating = False
Application.Visible = False
Application.ScreenUpdating = True
Load UserForm4
UserForm4.Show
End Sub

Private Sub Workbook_Activate()
UserForm4.Show (vbModeless)
End Sub

Diese Userform enthält folgende Codes:

Private Sub CommandButton1_Click()
Application.ScreenUpdating = True
Application.Visible = True
Application.ScreenUpdating = True
vFile = "N:\Bericht\Wartung\Datei 1.xls"
Workbooks.Open Filename:=vFile, ReadOnly:=True
UserForm4.Hide
bolShowUseform = True
End Sub

Private Sub CommandButton2_Click()
If Not MsgBox("Wollen Sie das Formular wirklich schließen?", _
vbYesNo, "Formular schließen") = vbYes Then
Cancel = True
Else
Application.DisplayAlerts = False
Workbooks.Close
Application.Quit
Application.DisplayAlerts = True
End If
End Sub

Private Sub CommandButton3_Click()
Load UserForm3
UserForm3.Show
End Sub

Private Sub CommandButton4_Click()
Load UserForm2
UserForm2.Show
End Sub

Private Sub CommandButton5_Click()
Application.ScreenUpdating = True
Application.Visible = True
Application.ScreenUpdating = True
vFile = "N:\Bericht\Wartung\Datei 2.xls"
Workbooks.Open Filename:=vFile, ReadOnly:=True
UserForm4.Hide
bolShowUseform = True
End Sub


Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
MsgBox _
"Schließen Sie die UserForm über die Schaltfläche Beenden!", _
vbInformation
Cancel = True
End If
End Sub

Function IsWorkbookOpen(strWB As String) As Boolean
On Error Resume Next
IsWorkbookOpen = Not Workbooks(strWB) Is Nothing
End Function

Private Sub UserForm_Initialize()
If IsWorkbookOpen("Datei1.xls") Then
Application.ScreenUpdating = False
Application.Visible = False
Application.EnableEvents = False
Workbooks("Datei1.xls").Close SaveChanges = False
ElseIf IsWorkbookOpen("Datei2.xls") Then
Application.ScreenUpdating = False
Application.Visible = False
Application.EnableEvents = False
Workbooks("Datei2.xls").Close SaveChanges = False
End If
End Sub

Jetzt kommt mein Problem wenn ich diese Datei1 oder Datei2 öffne, will ich das die UserForm4 wieder gestartet wird ohne das die Datei1 oder Datei2 gespeichert wird.
Codes von Datei1

Private Sub Workbook_Open()
ActiveSheet.EnableAutoFilter = True
End Sub


Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ScreenUpdating = False
Application.Visible = False
Application.ScreenUpdating = True
Workbooks("Datei3.xls").Sheets("Tabelle1").Activate
End Sub

Gibt es hier eine Lösung für?
Also die UserForm 4 dient als Startseite, in dieser UserForm findet die Auswahl statt auf was man zugreifen möchte. Sobald halt Datei1 oder Datei2 wieder geschlossen werden soll wieder nur die UserForm4 sichtbar sein von der Datei3. Dies kann auch so Erfolgen das die Datei3 geschlossen wird und beim beenden von Datei1 oder Datei2 wieder gestartet wird jedoch habe ich das noch nicht hinbekommen...

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

Betreff
Datum
Anwender
Anzeige
keine Lösung, wer anders bitte, aber Hinweis
30.07.2014 11:33:23
Oberschlumpf
Hi #Name?
wäre das Uploaden + Zeigen (d)einer (Bsp)datei nicht effektiver?
Ciao
Thorsten

AW: Problem mit Userform
30.07.2014 12:45:13
fcs
Hallo Regne,
das Ganze ist noch ein wenig unübersichtlich.
1. Bei dir wird Userform4 in der
Workbook_Open und in der Workbook_Activate per .Show angezeigt
In Workbook_Open solltest du diese Anweisung weglassen können, Activate wird beim Öffnen der Datei nach der Open-Prozedur ebenfalls ausgeführt wird.
2. Das Automatische Starten von Userform4 ind Datei3.xls beim Schließen von Datei1.xls oder Datei2.xls da hier ein Interessenkonflickt zwischen den Makros entsteht.
Eigentlich sollte die Anzeige des Userforms über das Activate-Ereignis funktionieren. Möglicherweise wird dies verhindert, weil du die Visible-Eigenschaft der Anwendung auf False setzt.
Der Hund könnte aber auch hier bergraben sein:
Private Sub UserForm_Initialize()
If IsWorkbookOpen("Datei1.xls") Then
Application.ScreenUpdating = False
Application.Visible = False
Application.EnableEvents = False
Workbooks("Datei1.xls").Close SaveChanges = False
ElseIf IsWorkbookOpen("Datei2.xls") Then
Application.ScreenUpdating = False
Application.Visible = False
Application.EnableEvents = False
Workbooks("Datei2.xls").Close SaveChanges = False
End If
End Sub

Die Ereignis Makros werden vorm dem Schließen der Dateien deaktiviert, aber danach nicht wieder aktiviert!!!
Als 1. solltest du nach dem Schließen der Dateien jeweils eine Zeile
Application.EnableEvents = True
einfügen
Ansonsten evtl. auch mal folgendes probieren:
'Code in Datei3.xls unter DieseArbeitsmappe
Private Sub Workbook_Activate()
UserForm4.Show vbModeless
End Sub
Private Sub Workbook_Open()
Load UserForm4
'UserForm4.Show
End Sub
'Code in einem allgemeinen Modul von Datei3.xls
Sub UF4_anzeigen()
UserForm4.Show vbModeless
End Sub
'Code in Datei1.xls unter "DieseArbeitsmappe"
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Me.Saved = True 'Status setzen - Datei wird ohne Speichern/Rückfrage geschlossen
'Userform in Datei3.xls anzeigen - evtl. vorher prüfen, ob Datei3.xls geöffnet ist.
Application.Run "Datei3.xls!UF4_anzeigen"
End Sub
Gruß
Franz

Anzeige
AW: Problem mit Userform
30.07.2014 13:28:26
Regne
Vielen, Vielen Dank es funktioniert soweit... Nur eine Frage und zwar fragt er mich trotz Me.Saved = False ob er Speichern soll ich will jedoch nicht speichern da er die Dateien nur schreibgeschütz öffnet...
Liebe Grüße

AW: Problem mit Userform
30.07.2014 14:53:01
fcs
Hallo Regne,
du musst in der Workbook_BeforeClose
Me.Saved = True
setzen, wenn die Excel-Sicherheitsabfrage bei den schreibgeschütz geöffneten Dateien nicht angezeigt werden soll - nicht False.
Hatte ich in meinem Beispiel auch so drin.
Aber nicht vergessen: Wenn du die Makros angepasst hast, dann musst du die Datei speichern bevor du sie schließt oder die Ereignismakros vorübergehend deaktivieren. Andernfalls werden diese Änderungen nicht gespeichert.
Gruß
Franz

Anzeige
AW: Problem mit Userform
31.07.2014 06:33:27
Regne
Ok Funktioniert wunderbar dachte wenn ma dieses auf True setzt wird es gespeichert...

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige