Registriert seit: 22.10.2017
Version(en): 2016
30.06.2020, 12:36
(Dieser Beitrag wurde zuletzt bearbeitet: 30.06.2020, 12:43 von MdeJong.)
Hallo liebe Forum-Mitglieder, ich benötige wie Hilfe von euch. Habe grad gelernt wie man eine Userform erstellt und wie man sie aufruft und wieder schließt ;) Diese rufe ich im Vollbild Modus auf. Dort sollen noch einige Sachen hinein. Bisher habe ich Buttons dort erstellt, die verschiedene Tabellenblätter aufrufen (anzeigen) sollen. Ich möchte jetzt die jeweiligen Buttons anklicken, das Tabellenblatt soll sich vor die Startform legen. Wenn ich das Tabellenblatt verlasse, soll es wieder zurück zur Startform gehen. Es handelt sich in der Form um die Buttons: Samstag-Lotto-Uhr - Mittwochs-Lotto-Uhr - Kreuz-Tipp-Samstag - Kreuz-Tipp-Mittwoch und Münz-TippKann mir da jemand vielleicht helfen?GrußMike
Lotto_Kampf.xlsm (Größe: 182,58 KB / Downloads: 3)
Registriert seit: 05.09.2019
Version(en): Office 365
Hallo Die Codezeilen für die einzelnen Buttons könnten so aussehen Code: Private Sub CommandButton3_Click() On Error GoTo Fehler Me.Hide Application.EnableEvents = False Sheets("Samstagziehungen").Select Fehler: Application.EnableEvents = True End Sub
Private Sub CommandButton4_Click() On Error GoTo Fehler Me.Hide Application.EnableEvents = False Sheets("Mittwochsziehung").Select Fehler: Application.EnableEvents = True End Sub '...usw.
zusätzlich in DieseArbeitsmappe ergänzen: Code: Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) Startform.Show End Sub
LG UweD
Folgende(r) 1 Nutzer sagt Danke an UweD für diesen Beitrag:1 Nutzer sagt Danke an UweD für diesen Beitrag 28
• MdeJong
Registriert seit: 22.10.2017
Version(en): 2016
30.06.2020, 19:07
(Dieser Beitrag wurde zuletzt bearbeitet: 30.06.2020, 19:17 von MdeJong.)
(30.06.2020, 14:41)UweD schrieb: Hallo
Die Codezeilen für die einzelnen Buttons könnten so aussehen
Code: Private Sub CommandButton3_Click() On Error GoTo Fehler Me.Hide Application.EnableEvents = False Sheets("Samstagziehungen").Select Fehler: Application.EnableEvents = True End Sub
Private Sub CommandButton4_Click() On Error GoTo Fehler Me.Hide Application.EnableEvents = False Sheets("Mittwochsziehung").Select Fehler: Application.EnableEvents = True End Sub '...usw.
zusätzlich in DieseArbeitsmappe ergänzen:
Code: Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) Startform.Show End Sub
LG UweD Hallo Uwe, vielen Dank, habe es eingesetzt und geht auch :) Jetzt öffnet sich beim Start der Excelmappe nicht gleich die Startform, erst wenn ich mit der Maus unten auf ein anderes Tabellenblatt klicke.
Habe die Codes von Uwe_b eingegeben....funktioniert auch. Gibt es eine Möglichkeit schneller wieder zurück zur Startform zu kommen? Jetzt habe ich noch eine Frage. In der Startform ist ja der Button für den Aufruf "Neue Ziehungen eingeben" Es wäre gut, wenn sich die Eingabeform so öffnet, das auch das Tabellenblatt sich im hinteren Bereich zeigt, damit man gleichzeitig sehen kann, ob die Werte übertragen wurden?! Ich habe eine Tabelle für die Ziehungen "Samstag" und eine für "Mittwoch", müsste dann für dieses Vorhaben, dann Samstag und Mittwoch in einem Tabellenblatt? Also Spalte A-J für Samstag und daneben dann L-U für Mittwoch....dann hat man beide im Blick, da die Eingabeform ja nach Samstag oder Mittwoch unterscheiden kann?? Gruß Mike
Lotto_Kampf.xlsm (Größe: 182,22 KB / Downloads: 2)
Registriert seit: 05.09.2019
Version(en): Office 365
Hallo zu1) Ich hatte geschrieben, du sollst in DieseArbeitsmappe den Code ERGÄNZEN.. Du hast das Aufrufen beim Open auskommentiert. Dann startet die UF natürlich nicht mehr. Nimm die 3 ' vorne weg. zu 2) Ich würde es so machen - beim Initialisieren der UF die Eingabefelder etc. auf Enable=false setzen. Datum offen lassen - nachdem das Datum komplett und geprüft ist (also so, wie du das bereits an der anderen Stelle gemacht hast), dann wird das entsprechende Blatt ausgewählt und die Felder werden freigegeben diesen Code in CodeBereich "UF_EingabeZ" ERGÄNZEN Code: Private Sub UserForm_Initialize() Me.tb1.Enabled = False Me.tb2.Enabled = False Me.tb3.Enabled = False Me.tb4.Enabled = False Me.tb5.Enabled = False Me.tb6.Enabled = False Me.tbSZ.Enabled = False Me.cbSaveZ.Enabled = False End Sub
Private Sub tbDatum_Change() On Error GoTo Fehler Dim Wochentag As Integer, sSheet As String If Len(tbDatum) = 10 And IsDate(tbDatum) Then 'Format TT.MM.JJJJ Wochentag = WorksheetFunction.Weekday(CDate(tbDatum), 2) Select Case Wochentag Case 6 sSheet = "Samstagziehungen" Case 3 sSheet = "Mittwochsziehung" Case Else tbDatum.SetFocus MsgBox "Datum kein Mittwoch oder Samstag" Exit Sub End Select Application.EnableEvents = False Sheets(sSheet).Select Application.EnableEvents = True Me.tb1.Enabled = True Me.tb2.Enabled = True Me.tb3.Enabled = True Me.tb4.Enabled = True Me.tb5.Enabled = True Me.tb6.Enabled = True Me.tbSZ.Enabled = True Me.cbSaveZ.Enabled = True End If Fehler: Application.EnableEvents = True End Sub
Du kannst versuchen, deine 2. Prüfung ggf dann entfallen zu lassen. LG UweD
Folgende(r) 1 Nutzer sagt Danke an UweD für diesen Beitrag:1 Nutzer sagt Danke an UweD für diesen Beitrag 28
• MdeJong
Registriert seit: 22.10.2017
Version(en): 2016
01.07.2020, 12:21
(Dieser Beitrag wurde zuletzt bearbeitet: 01.07.2020, 12:42 von MdeJong.)
Hallo UweD, danke für deine weitere Hilfe. Ich denke, ich habe es so gemacht wie du beschrieben hast, aber es funktioniert nicht? Ausklammerung Code In diese Mappe wieder heraus genommen. den Code von dir in "UF_EingabeZ" mit eingefügt.Die Mappe startet nicht mit der Startform.Die Tabellen zeigen sich nicht, wenn ich auf neue Ziehung aus der Startform klicke.GrußMikeAnbei meine Datei, mit den gemachten Änderungen
Lotto_Kampf.xlsm (Größe: 177,96 KB / Downloads: 7)
Registriert seit: 05.09.2019
Version(en): Office 365
zu 1) Das sieht bei dir jetzt so aus Code: Private Sub Workbook_Open() End Sub Startform.Show End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) Startform.Show End Sub
das erste "End Sub" ist zu viel 2) Die Eingabeblätter erscheinen erst, wenn du ein gültiges Datum eingetragen hast. also z.b. heute 01.07.2020 Nach Eingabe der letzten Ziffer wird Mittwoch angezeigt. Desweiteren: Was ist der Unterschied zwischen Abbruch und Exit? Abbruch ist noch nicht programmiert Code: Private Sub cbAbbruch_Click() Unload Me End Sub
Und noch was: mit Einblenden von UF_Eingabe solltest du Startform ausblenden oder? Code: Private Sub CommandButton1_Click() Me.Hide UF_EingabeZ.Show End Sub
LG UweD
Folgende(r) 1 Nutzer sagt Danke an UweD für diesen Beitrag:1 Nutzer sagt Danke an UweD für diesen Beitrag 28
• MdeJong
Registriert seit: 22.10.2017
Version(en): 2016
01.07.2020, 14:26
(Dieser Beitrag wurde zuletzt bearbeitet: 01.07.2020, 14:37 von MdeJong.)
Hallo UweD alles klar....geht jetzt alles. Das mit dem doppelten End Sub habe ich vorher auch schon gesehen Kann ich weiter an der Mappe arbeiten. Die vielen Dank. Gruß Mike
Hallo UweD, hab mich wohl zu früh gefreut :19: Eigentlich passt es, wenn ich die Form Neu Ziehung eingebe.....blendet sich die Startform aus und ich kann eine neue Ziehung eingeben. Es wird auch zwischen den Tabellenblätter Samstag und Mittwoch je nach Datum gewechselt. Wenn ich aber aus der Startform z.b, den Button für Münz-Tipp oder andere vorher gewählt habe und später von der Startform aus, die Form Neue Ziehung eingeben klicke, wird auf das zuletzt verwendete Tabellenblatt gesprungen. Trotz Eingabe von Datum für Mittwoch oder Samstag, wird nicht die entsprechende Tabelle angezeigt. Erst wieder, wenn ich die Arbeitsmappe schließe und wieder öffne. Wie kann man das beheben? Gruß Mike
Registriert seit: 11.04.2014
Version(en): Office 2007
01.07.2020, 15:06
(Dieser Beitrag wurde zuletzt bearbeitet: 01.07.2020, 15:07 von Steffl.
Bearbeitungsgrund: Umlaute geändert
)
Hallo Mike, warum soll einerseits bildschirmfüllend die Userform angezeigt werden anderseits willst Du das Tabellenblatt aktivieren. Zu was? Verwende halt dann ganz einfach ein Select Code: Sub eintragenZ(targetSheet As String, dtDate As Date, iZ1 As Integer, iZ2 As Integer, iZ3 As Integer, iZ4 As Integer, iZ5 As Integer, iZ6 As Integer, iZZ As Integer) ' ' Schaltfläche4_Klicken Makro
Dim lfdNr As Long With Sheets(targetSheet) lfdNr = .Cells(Rows.Count, 1).End(xlUp).Row .Cells(lfdNr + 1, 1).NumberFormat = "m/d/yyyy" .Cells(lfdNr + 1, 1).Value = CDate(dtDate) .Cells(lfdNr + 1, 2) = Format(CStr(dtDate), "dddd") .Cells(lfdNr + 1, 3) = .Cells(lfdNr, 3) + 1 .Cells(lfdNr + 1, 4) = iZ1 .Cells(lfdNr + 1, 5) = iZ2 .Cells(lfdNr + 1, 6) = iZ3 .Cells(lfdNr + 1, 7) = iZ4 .Cells(lfdNr + 1, 8) = iZ5 .Cells(lfdNr + 1, 9) = iZ6 .Cells(lfdNr + 1, 10) = iZZ .Select End With End Sub
Gruß Stefan Win 10 / Office 2016
Registriert seit: 05.09.2019
Version(en): Office 365
Hi es kann daran liegen, daß bei der 2. Neueingabe das Datumfeld schon gefüllt ist. Deshalb vorher noch löschen. Me.tbDatum = "" ergänzen Code sähe dann so aus Code: Private Sub UserForm_Initialize() Me.tbDatum = "" Me.tb1.Enabled = False Me.tb2.Enabled = False Me.tb3.Enabled = False Me.tb4.Enabled = False Me.tb5.Enabled = False Me.tb6.Enabled = False Me.tbSZ.Enabled = False Me.cbSaveZ.Enabled = False End Sub
LG UweD
Registriert seit: 22.10.2017
Version(en): 2016
(01.07.2020, 15:10)UweD schrieb: Hi
es kann daran liegen, daß bei der 2. Neueingabe das Datumfeld schon gefüllt ist. Deshalb vorher noch löschen.
Me.tbDatum = "" ergänzen
Code sähe dann so aus
Code: Private Sub UserForm_Initialize() Me.tbDatum = "" Me.tb1.Enabled = False Me.tb2.Enabled = False Me.tb3.Enabled = False Me.tb4.Enabled = False Me.tb5.Enabled = False Me.tb6.Enabled = False Me.tbSZ.Enabled = False Me.cbSaveZ.Enabled = False End Sub
LG UweD Hallo.....habe ich so gemacht wie angegeben......ist immer noch so??
|