Thema Datum  Von Nutzer Rating
Antwort
Rot Vba Code Neuer Eintrag, Suchfeld, Textbox Listbox
15.09.2015 16:28:45 Eugen
NotSolved
15.09.2015 16:30:26 Gast71733
NotSolved
15.09.2015 16:30:52 hhh
NotSolved

Ansicht des Beitrags:
Von:
Eugen
Datum:
15.09.2015 16:28:45
Views:
1973
Rating: Antwort:
  Ja
Thema:
Vba Code Neuer Eintrag, Suchfeld, Textbox Listbox
Hallo liebe Community, Habe folgendes Problem: in diesen code kann ich einfach kein Suchfeld einfügen. Die Listbox1 zeigt alle Ergebnisse in Spalte 1 ein. Das Suchfeld soll nun alle gesuchten Einträge filtern. Ich schaffe es einfach nicht....dafür fehlt mir einfach das wissen :( Zudem habe ich noch ein Problem nr. 2: Wenn ich auf "neuen Eintrag gehe" setzt er mir in Zeile 188 zwar einen "neuen Eintrag" aber ich kann dort nichts speichern und zu allem Überfluss sind in den darauf folgenden Spalten (188;B,188;C...usw) schon Daten hinterlegt-> quasi hat er einen neuen Eintrag in einer falschen Spalte erstellt (aber warum?) Wäre überaus dankbar für Hilfe. Hier mein wirrer Code Option Explicit Option Compare Text ' ************************************************************************************************ ' Autor und Copyright: Marc Wershoven - IT / EDV Dienstleistungen und Beratung ' Homepage: http://www.online-vba.de - E-Mail: info@online-vba.de ' ------------------------------------------------------------------------------------------------ ' Wichtige Hinweise: ' - Verwendung der Quelltexte auf eigene Gefahr! ' - Bitte beachten Sie die Nutzungsbedingungen von www.online-vba.de! ' - Dieser Hinweis inkl. Autorennennung darf nicht entfernt werden! ' - Jede Weiterübermittlung, Veröffentlichung oder Verbreitung ist untersagt! ' - Eine kommerzielle/gewerbliche Verwendung ist nicht gestattet! ' ************************************************************************************************ ' Diese Hinweise beziehen sich auf den Quelltext, wie dieser unter dem folgenden Link, unverändert ' als Original zu sehen ist und gelten nicht für Veränderungen durch Nutzer bzw. Dritte: ' www.online-vba.de/vba_tutorialuserform.php ' ************************************************************************************************ 'Neuer Eintrag Schaltfläche Ereignisroutine Private Sub CommandButton1_Click() Dim lZeile As Long 'Wenn der Benutzer einen neuen Eintrag erzeugen möchte, 'erstellen wir einen neuen Eintrag in der ListBox und markieren 'diesen, damit der Benutzer die Daten eintragen kann lZeile = 2 'Start in Zeile 2, Zeile 1 sind ja die überschriftrn 'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht Do While Trim(CStr(Tabelle2.Cells(lZeile, 1).Value)) <> "" lZeile = lZeile + 1 'Nächste Zeile bearbeiten Loop 'Nach Durchlauf dieser Schleife steht lZeile in der ersten leeren Zeile von Tabelle1 'Neuen Eintrag in die Tabelle1 schreiben, Spalte ID muss gefüllt sein, damit 'unsere Routinen die Zeile wiederfinden! Tabelle1.Cells(lZeile, 1) = CStr("Neuer Eintrag Zeile " & lZeile) 'Und neuen Eintrag in die UserForm eintragen ListBox1.AddItem CStr("Neuer Eintrag Zeile " & lZeile) 'Den neuen Eintrag markieren mit Hilfe des ListIndexes ListBox1.ListIndex = ListBox1.ListCount - 1 'Durch das Click Ereignis der ListBox werden die Daten automatisch geladen End Sub 'Löschen Schaltfläche Ereignisroutine Private Sub CommandButton2_Click() Dim lZeile As Long 'Wenn kein Datensatz in der ListBox markiert wurde, wird die Routine beendet If ListBox1.ListIndex = -1 Then Exit Sub 'Zum Löschen benötigen wir die Zeilennummer des ausgewählten Datensatzes lZeile = 2 'Start in Zeile 2, Zeile 1 sind ja die Überschriften 'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht Do While Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) <> "" 'Datensatz ID Spalte mit selektiertem Eintrag der ListBox vergleichen If ListBox1.Text = Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) Then 'Eintrag gefunden, die ganze Zeile wird nun gelöscht Tabelle1.Rows(CStr(lZeile & ":" & lZeile)).Delete 'Die ListBox muss nun neu geladen werden! Call UserForm_Initialize If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0 Exit Do 'Vorzeitiges Ende, da der Datensatz schon gefunden ist End If lZeile = lZeile + 1 'Nächste Zeile bearbeiten Loop End Sub 'Speichern Schaltfläche Ereignisroutine Private Sub CommandButton3_Click() Dim lZeile As Long 'Wenn kein Datensatz in der ListBox markiert wurde, wird die Routine beendet If ListBox1.ListIndex = -1 Then Exit Sub 'Wir müssen prüfen, ob die ID Spalte auch gefüllt ist!! If Trim(CStr(TextBox1.Text)) = "" Then 'Meldung ausgeben MsgBox "Sie müssen mindestens einen Namen eingeben!", vbCritical + vbOKOnly, "FEHLER!" 'Abbrechen der Speicherroutine Exit Sub End If 'Ausbauoption: Prüfen, ob die ID in Tabelle1 Spalte 1 schon vorhanden ist! 'Zum Speichern benötigen wir die Zeilennummer des ausgewählten Datensatzes lZeile = 2 'Start in Zeile 2, Zeile 1 sind ja die Überschriften 'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht Do While Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) <> "" 'Datensatz ID Spalte mit selektiertem Eintrag der ListBox vergleichen If ListBox1.Text = Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) Then 'Eintrag gefunden, TextBoxen in die Zellen schreiben Tabelle1.Cells(lZeile, 1).Value = Trim(CStr(TextBox1.Text)) Tabelle1.Cells(lZeile, 2).Value = TextBox2.Text Tabelle1.Cells(lZeile, 3).Value = TextBox3.Text Tabelle1.Cells(lZeile, 4).Value = TextBox4.Text Tabelle1.Cells(lZeile, 5).Value = TextBox5.Text Tabelle1.Cells(lZeile, 6).Value = TextBox6.Text Tabelle1.Cells(lZeile, 7).Value = TextBox7.Text Tabelle1.Cells(lZeile, 8).Value = TextBox8.Text Tabelle1.Cells(lZeile, 9).Value = TextBox9.Text Tabelle1.Cells(lZeile, 10).Value = TextBox10.Text Tabelle1.Cells(lZeile, 11).Value = TextBox11.Text Tabelle1.Cells(lZeile, 12).Value = TextBox12.Text Tabelle1.Cells(lZeile, 13).Value = TextBox13.Text Tabelle1.Cells(lZeile, 14).Value = TextBox14.Text Tabelle1.Cells(lZeile, 15).Value = TextBox15.Text Tabelle1.Cells(lZeile, 16).Value = TextBox16.Text Tabelle1.Cells(lZeile, 17).Value = TextBox17.Text Tabelle1.Cells(lZeile, 18).Value = TextBox18.Text Tabelle1.Cells(lZeile, 19).Value = TextBox19.Text Tabelle1.Cells(lZeile, 20).Value = TextBox20.Text Tabelle1.Cells(lZeile, 21).Value = TextBox21.Text Tabelle1.Cells(lZeile, 22).Value = TextBox22.Text Tabelle1.Cells(lZeile, 23).Value = TextBox23.Text Tabelle1.Cells(lZeile, 24).Value = TextBox24.Text Tabelle1.Cells(lZeile, 25).Value = TextBox25.Text Tabelle1.Cells(lZeile, 26).Value = TextBox26.Text Tabelle1.Cells(lZeile, 27).Value = TextBox27.Text Tabelle1.Cells(lZeile, 28).Value = TextBox28.Text Tabelle1.Cells(lZeile, 29).Value = TextBox29.Text 'Die ListBox muss nun neu geladen werden 'allerdings nur, wenn sich der Name (ID) geändert hat If ListBox1.Text <> Trim(CStr(TextBox1.Text)) Then Call UserForm_Initialize If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0 End If Exit Do 'Vorzeitiges Ende, da der Datensatz schon gefunden ist End If lZeile = lZeile + 1 'Nächste Zeile bearbeiten Loop End Sub 'Beenden Schaltfläche Ereignisroutine Private Sub CommandButton4_Click() Unload Me End Sub 'Klick auf die ListBox Ereignisroutine Private Sub ListBox1_Click() Dim lZeile As Long 'Wenn der Benutzer einen Namen anklickt, suchen wir 'diesen in der Tabelle1 heraus und tragen die Daten 'in die TextBoxen ein. 'Wir löschen standardmäßig alle bisherigen TextBoxen-Inhalte TextBox1 = "" TextBox2 = "" TextBox3 = "" TextBox4 = "" TextBox5 = "" TextBox6 = "" TextBox7 = "" TextBox8 = "" TextBox9 = "" TextBox10 = "" TextBox11 = "" TextBox12 = "" TextBox13 = "" TextBox14 = "" TextBox15 = "" TextBox16 = "" TextBox17 = "" TextBox18 = "" TextBox19 = "" TextBox20 = "" TextBox21 = "" TextBox22 = "" TextBox23 = "" TextBox24 = "" TextBox25 = "" TextBox26 = "" TextBox27 = "" TextBox28 = "" TextBox29 = "" 'Nur wenn ein Eintrag selektiert/markiert ist If ListBox1.ListIndex >= 0 Then lZeile = 2 'Start in Zeile 2, Zeile 1 sind ja die Überschriften 'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht Do While Trim(CStr(Tabelle2.Cells(lZeile, 2).Value)) <> "" 'Wenn wir den Namen aus der ListBox1 in der Tabelle1 Spalte 1 'gefunden haben, übertragen wir die anderen Spalteninhalte 'in die TextBoxen! If ListBox1.Text = Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) Then 'TextBoxen füllen TextBox1 = Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) TextBox2 = Tabelle1.Cells(lZeile, 2).Value TextBox3 = Tabelle1.Cells(lZeile, 3).Value TextBox4 = Tabelle1.Cells(lZeile, 4).Value TextBox5 = Tabelle1.Cells(lZeile, 5).Value TextBox6 = Tabelle1.Cells(lZeile, 6).Value TextBox7 = Tabelle1.Cells(lZeile, 7).Value TextBox8 = Tabelle1.Cells(lZeile, 8).Value TextBox9 = Tabelle1.Cells(lZeile, 9).Value TextBox10 = Tabelle1.Cells(lZeile, 10).Value TextBox11 = Tabelle1.Cells(lZeile, 11).Value TextBox12 = Tabelle1.Cells(lZeile, 12).Value TextBox13 = Tabelle1.Cells(lZeile, 13).Value TextBox14 = Tabelle1.Cells(lZeile, 14).Value TextBox15 = Tabelle1.Cells(lZeile, 15).Value TextBox16 = Tabelle1.Cells(lZeile, 16).Value TextBox17 = Tabelle1.Cells(lZeile, 17).Value TextBox18 = Tabelle1.Cells(lZeile, 18).Value TextBox19 = Tabelle1.Cells(lZeile, 19).Value TextBox20 = Tabelle1.Cells(lZeile, 20).Value TextBox21 = Tabelle1.Cells(lZeile, 21).Value TextBox22 = Tabelle1.Cells(lZeile, 22).Value TextBox23 = Tabelle1.Cells(lZeile, 23).Value TextBox24 = Tabelle1.Cells(lZeile, 24).Value TextBox25 = Tabelle1.Cells(lZeile, 25).Value TextBox26 = Tabelle1.Cells(lZeile, 26).Value TextBox27 = Tabelle1.Cells(lZeile, 27).Value TextBox28 = Tabelle1.Cells(lZeile, 28).Value TextBox29 = Tabelle1.Cells(lZeile, 29).Value Exit Do 'Vorzeitiges Ende, da der Datensatz schon gefunden ist End If lZeile = lZeile + 1 'Nächste Zeile bearbeiten Loop End If End Sub Private Sub TextBox27_Change() End Sub Private Sub UserForm_Activate() 'Wenn die Eingabemaske angezeigt wird, markieren wir den ersten Namen 'jedoch nur, wenn auch Einträge in der Liste stehen If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0 End Sub 'Startroutine, wird ausgeführt bevor die Eingabemaske angezeigt wird Private Sub UserForm_Initialize() Dim lZeile As Long 'Alle TextBoxen leer machen TextBox1 = "" TextBox2 = "" TextBox3 = "" TextBox4 = "" TextBox5 = "" TextBox6 = "" TextBox7 = "" TextBox8 = "" TextBox9 = "" TextBox10 = "" TextBox11 = "" TextBox12 = "" TextBox13 = "" TextBox14 = "" TextBox15 = "" TextBox16 = "" TextBox17 = "" TextBox18 = "" TextBox19 = "" TextBox21 = "" TextBox22 = "" TextBox23 = "" TextBox24 = "" TextBox25 = "" TextBox26 = "" TextBox27 = "" TextBox28 = "" TextBox29 = "" 'In dieser Routine laden wir alle vorhandenen 'Einträge in die ListBox1 ListBox1.Clear 'Zuerst einmal die Liste leeren lZeile = 2 'Start in Zeile 2, Zeile 1 sind ja die Überschriften 'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht Do While Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) <> "" 'Aktuelle Zeile in die ListBox eintragen ListBox1.AddItem Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) lZeile = lZeile + 1 'Nächste Zeile bearbeiten Loop End Sub

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Vba Code Neuer Eintrag, Suchfeld, Textbox Listbox
15.09.2015 16:28:45 Eugen
NotSolved
15.09.2015 16:30:26 Gast71733
NotSolved
15.09.2015 16:30:52 hhh
NotSolved