Problem beim Öffnen einer UF aus einer UF heraus?
13.12.2005 08:52:44
Oliver
ich habe da ein Problem, hinter deren Lösung ich nicht komme. Ich öffne aus einer UserForm (Betragseingabe) heraus eine weitere UserForm (Ziffernblock). Mein Problem liegt nun darin, dass ich immer noch die UserForm (Betragseingabe), aus der die neue UserForm (Ziffernblock) geöffnet wurde, immer noch im Hintergrund angezeigt wird, obwohl diese eigentlich durch den Befehl Unload Betragseingabe geschlossen wurde. Wenn ich dann die UserForm Ziffernblock schließe um wieder in die UserForm Betragseingabe zu gelangen, habe ich das genau umgekehrt. Also die UserForm Ziffernblock schließt nicht, sondern wird im Hintergrund noch angezeigt. Nachfolgend mal beide VBA Code, wie ich die UserFormen öffne.
Button in UserForm Betragseingabe um UserForm Ziffernblock zu öffnen:
Private Sub CommandButton3_Click()
Ziffernblock.TextBox1.Text = Betragseingabe.TextBox1.Text
Sheets("Stammdaten").Range("P2") = Betragseingabe.ComboBox1.Text
Unload Betragseingabe
Ziffernblock.Show
End Sub
Button in UserForm Ziffernblock um UserForm Betragseingabe zu öffnen:
Private Sub CommandButton1_Click()
Betragseingabe.ComboBox1.Text = Sheets("Stammdaten").Range("P2")
Sheets("Stammdaten").Range("P2").ClearContents
Betragseingabe.TextBox1.Text = Ziffernblock.TextBox1.Text
Betragseingabe.Show
Unload Ziffernblock
End Sub
Mache ich mit den obigen Codes irgend etwas falsch oder geht das gar nicht, was ich vorhabe, da es ein normales Verhalten der UserFormen ist? Nachfolgend auch noch der Code, mit dem die UserForm Betragseingabe geöffnet wird, eventuell liegt es ja daran.
Sub Betragseingabe_öffnen()
Dim Wiederholungen As Integer, Jahr As String, Spalte As Integer
If Worksheets.Count > 3 Then
If Worksheets.Count > 1 Then
'Application.ScreenUpdating = False
Datenblätter_ausblenden
SpalteM = Sheets("Stammdaten").Range("M65536").End(xlUp).Row
If Sheets("Stammdaten").Cells(SpalteM, 13) = CDate(Format(Now, "dd.mm.yyyy")) Then GoTo Weiter
Abfrage = MsgBox("Die Datumsprüfung eines bestehenden Marktes, hat eine Änderung im Datum ergeben. Handelt es sich um einen neuen Markttag eines " & _
"bereits angelegten Marktes oder soll ein neuer Markt angelegt werden? Wenn es sich um einen neuen Markt handelt " & _
", dann bitte den " & Chr(34) & "Ja - Button" & Chr(34) & " betätigen. Handelt es sich um einen neuen Marktag eines" & _
" bereits angelegeten Markts, dann betätigen Sie den " & Chr(34) & "Nein - Button" & Chr(34) & ".", vbYesNo, "Abfrage")
If Abfrage = 6 Then
If Worksheets.Count = 4 Then
'############ Gesamtbetrag in Jahresübersicht übertragen ############################
Frage1 = MsgBox("Es wurden noch nicht verbuchte Markteinnahmen eines bereits angelegten Marktes gefunden. Sollen diese Einnahmen " & _
"an die dafür vorgesehene Stelle in der Jahresübersicht übertragen werden?", vbInformation + vbYesNo, "Frage")
If Frage1 = vbYes Then
letzte_Spalte = Sheets("Gesamtübersicht Markteinnahmen").Range("IV2").End(xlToLeft).Column
Jahr = Format(Now, "yyyy")
For Wiederholungen = 2 To Sheets("Gesamtübersicht Markteinnahmen").Range("IV2").End(xlToLeft).Column
If Sheets("Gesamtübersicht Markteinnahmen").Cells(2, Wiederholungen) = Jahr Then
Spalte = Wiederholungen
End If
Next
For Wiederholungen = 2 To Sheets("Gesamtübersicht Markteinnahmen").Range("A65536").End(xlUp).Row
If Sheets("Gesamtübersicht Markteinnahmen").Cells(Wiederholungen, 1) = Sheets("Stammdaten").Range("K2") Then
Sheets("Gesamtübersicht Markteinnahmen").Cells(Wiederholungen, Spalte) = Sheets("Stammdaten").Range("C2")
End If
Next
End If
'############ vorhandenes Datenblatt exprtieren ############################
Frage1 = MsgBox("Es wurden noch Daten eines bereits angelegten Marktes gefunden. Sollen diese Daten " & _
"in eine separate Datei exportiert werden?", vbInformation + vbYesNo, "Frage")
If Frage1 = vbYes Then
Pfad = ActiveWorkbook.Path
For Wiederholungen = Worksheets.Count To 1 Step -1
If Sheets(Wiederholungen).Name = "Stammdaten" Or _
Sheets(Wiederholungen).Name = "Deckblatt" Or Sheets(Wiederholungen).Name = "Gesamtübersicht Markteinnahmen" Then
Else
'Application.ScreenUpdating = False
Jahr = Format(Now, "yyyy")
Dateiname = ActiveWorkbook.Name
Neuer_Dateiname = Sheets(Wiederholungen).Cells(1, 1) & " " & Jahr & ".xls"
Workbooks.Add
ActiveWorkbook.SaveAs Filename:=Pfad & "\" & Neuer_Dateiname
Workbooks(Dateiname).Sheets(Wiederholungen).Cells.Copy _
Workbooks(Neuer_Dateiname).Sheets(1).Cells(1, 1)
ActiveWorkbook.Save
ActiveWindow.Close
End If
Next
End If
End If
Sheets("Stammdaten").Range("B2:D11").ClearContents
Sheets("Stammdaten").Range("E2").ClearContents
Sheets("Stammdaten").Range("M2:M5").ClearContents
For Wiederholungen = Worksheets.Count To 1 Step -1
If Sheets(Wiederholungen).Name = "Stammdaten" Or _
Sheets(Wiederholungen).Name = "Deckblatt" Or Sheets(Wiederholungen).Name = "Gesamtübersicht Markteinnahmen" Then
Else
Application.DisplayAlerts = False
Sheets(Wiederholungen).Delete
Application.DisplayAlerts = True
End If
Next
Teilnehmeranzahl.Show
Exit Sub
End If
If Abfrage = 7 Then
Sheets("Stammdaten").Cells(Sheets("Stammdaten").Range("M65536").End(xlUp).Offset(1, 0).Row, 13) = CDate(Format(Now, "dd.mm.yyyy"))
Betragseingabe.Show
Exit Sub
End If
Weiter:
Betragseingabe.Show
End If
Else
MsgBox "Es besteht kein Datenblatt, in dem ein Betrag eingegeben werden kann. Bitte legen Sie in dem Menüpunkt " _
& Chr(34) & "Menü" & Chr(34) & " über die entsprechende Menü-Schaltfläche einen neuen Markt an.", vbInformation, "Meldung"
End If
End Sub
Ich hoffe auf Eure Hilfe, denn ich probiere schon eine ganze Weile an den beiden UserFormen herum ohne sichtbaren Erfolg.
Danke schon mal im Voraus,
Oliver S.