Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Öffnen eines Formulars mit Daten oder leer öffnen


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

Ich freue mich auf Eure Hilfe.

LG Carsten

  

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.

GrußformelHomepage


  

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


Beiträge aus dem Excel-Forum zum Thema "Öffnen eines Formulars mit Daten oder leer öffnen"