Informationen und Beispiele zum Thema MsgBox | |
---|---|
![]() |
MsgBox-Seite mit Beispielarbeitsmappe aufrufen |
Informationen und Beispiele zum Thema CommandButton | |
---|---|
![]() |
CommandButton-Seite mit Beispielarbeitsmappe aufrufen |
Informationen und Beispiele zum Thema Userform | |
---|---|
![]() |
Userform-Seite mit Beispielarbeitsmappe aufrufen |
Informationen und Beispiele zum Thema TextBox | |
---|---|
![]() |
TextBox-Seite mit Beispielarbeitsmappe aufrufen |
Betrifft: Öffnen eines Formulars mit Daten oder leer öffnen
von: Carsten Schulz
Geschrieben am: 29.09.2019 17:41:38
Hallo,
ich bin ein absoluter Neuling noch, was VBA usw angeht. Ich habe 2 Formular. Als erstes öffnet sich ein Suchformular (userform1), der besteht bisher aus einer textbox1 und 2 Commandobutton "Ok" und "Abbrechen". Ein dritter Commandobutton mit "neu" soll noch hinzu kommen. Das 2 Formular mit den Daten steht schon..
Ich möchte über einen den Button "Ok" in der Userform 1 sowohl Zeichen, als auch Zahlen im Tabellenblatt suchen lassen und danach sollen die Daten im Formular 2 (userfom2) zu sehen sein. Ich habe hier einen Code gefunden, wo es mit Werten gut funktioniert. Doch wie muss ich diesen Code umbauen? Der Ablauf soll gleich bleiben, auch was die Message angeht. Außerdem möchte ich einen Commandobutton zusätzlich mit den Befehl "neu in der Userform1 bauen und dann soll sich in userform2 ein leeres Formular ohne Inhalt öffnen.
Hier der Code für den Commandobutton "Ok":
Private Sub CommandButton1_Click() 'Öffne Daten des Kurses Dim x As Integer Z = Sheets(1).UsedRange.Rows.Count x = TextBox1 temp = 0 'Schleife Kurs. vorhanden oder nicht For i = 2 To Z If Cells(i, 1) = x Then temp = 1 'Schleife beenden Exit For End If Next If temp = 1 Then Unload Me 'globale Variable zeile = i 'Öffne Daten des Kurses UserForm2.Show Else 'Messagebox öffnen MsgBox "Kurs nicht vorhanden!", vbExclamation 'Userform1 Kurssuche Archiv bleibt weiter geöffnet TextBox1 = "" 'textbox1 wieder leer End If End Sub
Betrifft: AW: Öffnen eines Formulars mit Daten oder leer öffnen
von: Hajo_Zi
Geschrieben am: 29.09.2019 17:57:51
Hallo Carsten,
Zu Deiner Datei kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue.
Betrifft: AW: Öffnen eines Formulars mit Daten oder leer öffnen
von: Regina Resch-Jansen
Geschrieben am: 29.09.2019 18:41:57
Hi,
die Datei wäre schon hilfreich ...
ich verstehe noch nicht so ganz, was bei dem Code nicht in Deinem Sinne funktioniert, was also umzubauen ist.
Die Schaltfläche Neu müsste das UserForm2 öffnen vorher könnte man die Variable zeile auf 0 setzen. Im UserForm2 könnte dann z.B. im Initialize-Ereignis beispielsweise abfragen, ob zeile =0 ist. Wenn ja, Formular leer öffnen, sonst die Daten aus zeile laden.
Aber ohne Datei kann man nur in die Kristalkugel schauen :-))
Gruß
Regina
Betrifft: AW: Öffnen eines Formulars mit Daten oder leer öffnen
von: Carsten Schulz
Geschrieben am: 29.09.2019 19:14:44
hier die Datei:
https://www.herber.de/bbs/user/132280.xlsm
Vielen Dank
Betrifft: AW: Öffnen eines Formulars mit Daten oder leer öffnen
von: Regina Resch-Jansen
Geschrieben am: 29.09.2019 19:43:48
Hi,
dann schau Dir mal an, ob das passt:
https://www.herber.de/bbs/user/132281.xlsm
ich habe deinen Code mal etwas aufgeräumt, 52 Textboxen kann man eleganter in einer Schleife füllen und leeren. Außerdem solltest Du Cells nich ohne Angabe des Tabellenblattes benutzen, sonst sprichst Du immer fdas aktive Blatt an und das ist in deinem Fall das Blatt mit der Schaltfläche.
Wenn Du jetzt im UserForm1 auf Neu klickst, öffnet sich das leere Userform2. Hier muss Du folgendes noch überdenken:
Deine jetzige Speichernschaltfläche hat bisher 2 Funktionen:
1. Wenn alle Textfelder leer, wird der geladene Datensatz geöscht
2. sonst, werden die veränderten Daten zurück geschrieben
Du müsstest hier dann noch "zeile" abfragen: hat die Variable den Wert 0 wurde ein neuer Datensatz erfasst, dann müssen in die erste leere Zeile der Archivliste die neuen Werte eingetragen werden. Versuch mal, ob Du das umgesetzt bekommst. Sonst melde Dich nochmal.
gruß
Regina
Betrifft: AW: Öffnen eines Formulars mit Daten oder leer öffnen
von: Carsten Schulz
Geschrieben am: 29.09.2019 20:02:11
Vielen Dank!
Das hat mir schon echt geholfen! Auch die Vereinfachung der Codes. Dadurch schon echt viel gelernt.
Ich bin echt noch sehr neu und manches ist noch unverständlich für mich.
Soweit klappt es jetzt, aber wenn ich das Formular über neu öffne und ich möchte einen weiteren Kurs anlegen, dann klappt es nicht. Außerdem war es auch mein Fehler, denn der Kurs soll nicht durch Werte gesucht werden, sondern durch text und Zahlen, z.B. Bsp "Erz bb 1"
Vielen Dank für eine weitere Hilfe
Betrifft: AW: Öffnen eines Formulars mit Daten oder leer öffnen
von: Regina Resch-Jansen
Geschrieben am: 29.09.2019 20:10:26
...ok, dann darf x nicht vom Typ Integer sein, da sinbd nur Zahlen zulässig. Hier muss dann string genommen werden (UserForm1, OK-Button)
Das Speichern neuer Sätze habe ich Dir in UserForm2 auch eingebaut. Hinter dem Speichern-Button wird zeile abgefragt. Wenn in zeile eine 0 steht, handelt es sich um einenneuen Datensatz und es muss die erste leere Zeile ermittelt werden, bevor ins Blatt geschrieben wird.
https://www.herber.de/bbs/user/132282.xlsm
Gruß
Regina
Betrifft: AW: Öffnen eines Formulars mit Daten oder leer öffnen
von: Carsten Schulz
Geschrieben am: 29.09.2019 20:31:42
Vielen Dank!
Du hast mir echt geholfen und ich habe sehr viel dazu gelernt.
Schönen Abend noch