Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1788to1792
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Listbox

Listbox
27.10.2020 10:31:06
Wolfgang
Hallo Forum,
ich habe aus dem Internet eine Adressdatei mit Listbox für 5 Spalten heruntergeladen und diese für 11 Spalten
geändert. Leider funktioniert die Sub NachnameSuchen nicht. Der Debugger unterlegt die Zeile: "Me.Listbox1.Clear mit gelb. Auch bei der Sub Listbox1_Click wird die Zeile IngZeile = Me.Listbox1 ....... gelb unterlegt.
Da ich nicht weis wie man die beiden Subs umstellt wäre ich für eine Hilfe sehr dankbar.
Gruß Wolfgang
Private Sub NachnameSuchen_Click()                              'Button "Nachnamen suchen"
Dim lngZeile As Long
Dim lngZeileMax As Long
Dim i As Integer
Me.ListBox1.Clear
With Tabelle1
lngZeileMax = .Cells(.Rows.Count, 1).End(xlUp).Row
For lngZeile = 3 To lngZeileMax
If InStr(UCase(.Cells(lngZeile, 2).Value), _
UCase(Me.TextBox2.Value)) > 0 Then
Me.ListBox1.AddItem .Cells(lngZeile, 1).Value
Me.ListBox1.Column(1, i) = .Cells(lngZeile, 2).Value
Me.ListBox1.Column(2, i) = .Cells(lngZeile, 3).Value
Me.ListBox1.Column(3, i) = .Cells(lngZeile, 4).Value
Me.ListBox1.Column(4, i) = .Cells(lngZeile, 5).Value
Me.ListBox1.Column(5, i) = lngZeile
i = i + 1
End If
Next lngZeile
End With
End Sub

Private Sub ListBox1_Click()                   'Mit Klick auf Datensatz in Listbox wird in  _
Textboxen geschrieben
Dim lngZeile As Long
Dim i As Integer
lngZeile = Me.ListBox1.Column(11, Me.ListBox1.ListIndex)
For i = 1 To 11
Me.Controls("TextBox" & i).Value = Tabelle1.Cells(lngZeile, i).Value
Next i
End Sub

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox
27.10.2020 10:39:44
Nepumuk
Hallo Wolfgang,
füllst du die ListBox primär per RowSource-Eigenschaft?
Gruß
Nepumuk
AW: Listbox
27.10.2020 10:46:43
Wolfgang

Private Sub UserForm_Initialize()
Dim ZeileMax As Long
Dim Vardat As Variant
ZeileMax = Tabelle1.Cells(Tabelle1.Rows.Count, 1).End(xlUp).Row
Vardat = Tabelle1.Range("A2:L" & ZeileMax).Value
With Me.ListBox1
.ColumnHeads = True
.ColumnWidths = "50;110;110;110;110;50;170;110;110;140;110"
.ColumnCount = Tabelle1.Range("A2:L2").Columns.Count
.RowSource = Tabelle1.Range("A3:L" & ZeileMax).Address
End With
End Sub

AW: Listbox
27.10.2020 10:54:01
Nepumuk
Hallo Wolfgang,
teste mal:
Private Sub NachnameSuchen_Click()
    'Button "Nachnamen suchen"
    Dim lngZeile As Long
    Dim i As Long
    Dim strSearch As String
    
    With ListBox1
        .RowSource = vbNullString
        .Clear
    End With
    
    strSearch = UCase$(TextBox2.Value)
    
    With Tabelle1
        
        For lngZeile = 3 To .Cells(.Rows.Count, 1).End(xlUp).Row
            
            If InStr(UCase$(.Cells(lngZeile, 2).Value), strSearch) > 0 Then
                
                ListBox1.AddItem .Cells(lngZeile, 1).Value
                ListBox1.Column(1, i) = .Cells(lngZeile, 2).Value
                ListBox1.Column(2, i) = .Cells(lngZeile, 3).Value
                ListBox1.Column(3, i) = .Cells(lngZeile, 4).Value
                ListBox1.Column(4, i) = .Cells(lngZeile, 5).Value
                ListBox1.Column(5, i) = lngZeile
                i = i + 1
                
            End If
        Next lngZeile
    End With
End Sub

Gruß
Nepumuk
Anzeige
AW: Listbox
27.10.2020 11:06:00
Wolfgang
Hallo Nepumuk,
danke, funktioniert sehr gut.
Jetzt fehlt nur noch die Sub Listbox1_Click. Erst wenn diese funktioniert kann ich die
Sub DatensatzLöschen und die Sub DatensatzÄndern prüfen.
Gruß Wolfgang
AW: Listbox
27.10.2020 11:22:23
Nepumuk
Hallo Wolfgang,
so?
Private Sub ListBox1_Click() 'Mit Klick auf Datensatz in Listbox wird in Textboxen geschrieben
    
    Dim lngZeile As Long
    Dim i As Long
    
    With ListBox1
        If .RowSource = vbNullString Then
            lngZeile = .Column(5, .ListIndex)
        Else
            lngZeile = .ListIndex
        End If
    End With
    
    For i = 1 To 11
        Controls("TextBox" & i).Text = Tabelle1.Cells(lngZeile, i).Text
    Next i
    
End Sub

Gruß
Nepumuk
Anzeige
AW: Listbox
27.10.2020 11:23:54
Nepumuk
Stop, da ist noch ein Fehler drin.
lngZeile = .ListIndex + 1
Gruß
Nepumuk
AW: Listbox
27.10.2020 11:52:11
Wolfgang
Hallo Nepumuk,
auch dies funktioniert bis auf: Klick auf Satz 1007 zeigt Satz 1005 an, 1013 zeigt 1011 an. Es werden immer zwei Sätze davor angezeigt.
Gruß Wolfgang
AW: Listbox
27.10.2020 11:53:53
Nepumuk
Hallo Wolfgang,
na dann ziehe von der Zeile 2 ab.
Gruß
Nepumuk
AW: Listbox
27.10.2020 12:07:00
Wolfgang
Hallo Nepumuk,
viele Codes versteht ich nicht, sodass ich auch hier nicht weis in welcher Zeile an welcher Stelle ich 2 abziehen muss. Meine Versuche sind alle gescheitert.
Gruß Wolfgang
AW: Listbox
27.10.2020 12:43:46
Nepumuk
Hallo Wolfgang,
kannst du eine Mustermappe mit ein paar Beispieldaten hochladen damit ich es testen kann?
Gruß
Nepumuk
Anzeige
AW: Listbox
27.10.2020 13:16:53
Wolfgang
https://www.herber.de/bbs/user/141123.xlsm
Hallo Nepumuk, anbei meine Musterdatei. Wenn die App Listbox1_Click funktioniert sind noch die Sub DatensatzLöschen und die Sub DatensatzÄndern zu prüfen.
Gruß Wolfgang
AW: Listbox
27.10.2020 15:13:23
Wolfgang
Hallo Nepumuk,
vielen Dank für Deine perfekte Hilfe. Alles klappt nun hervorragend. Dies hätte ich nicht hinbekommen.
Ich habe mir schon viele Codes aus dem Internet geholt. Aber alles über Listboxen endet bei 10 Spalten.
Gruß Wolfgang
Anzeige
Datensatz ändern geht bei dir? Datei 141124.xlsm
27.10.2020 15:37:05
Helmut
Hallo Wolfgang,
bei mir geht diese Funktion nicht.
Hast Du etwas in dieser Datei geändert ?
Wenn Ja, bitte bekanntgeben :-)
Gruß Helmut
AW: Datensatz ändern geht bei dir? Datei 141124.xlsm
27.10.2020 15:53:38
Wolfgang
Hallo Helmut,
ich habe die Sub DatensatzÄndern gerade nochmal getestet und festgestellt, dass man zwar den Nachnamen ändern kann, aber die sonstigen Textfelder nicht. Ich hatte nur den Nachnamen getestet und die anderen Felder nicht. Dass man nur den Nachnahmen ändern kann macht jedoch keinen Sinn. Man will ja beim Nachnamen evtl. nur die Anschrift oder Telefonnummer ändern.
Vielleicht liest ja Nepumuk diese Zeilen und meldet sich bei uns wieder
Gruss Wolfgang
Anzeige
AW: Datensatz ändern geht bei dir? Datei 141124.xlsm
27.10.2020 16:16:43
Nepumuk
Hallo Ihr zwei,
ich hatte es auch nur mit dem Namen getestet. Als Trostpflaster habe ich dir das scrollen in der Listbox eingebaut. Zum horizontalen scrollen die STRG-Taste gedrückt halten.
https://www.herber.de/bbs/user/141131.xlsm
Gruß
Nepumuk
AW: Datensatz ändern geht bei dir? Datei 141124.xlsm
27.10.2020 16:23:41
Nepumuk
Hallo Ihr zwei,
und damit es gleich nach dem öffnen des Userforms funktioniert, noch diese Prozedur ändern:
Private Sub UserForm_Initialize()
    Dim ZeileMax As Long
    ZeileMax = Tabelle1.Cells(Tabelle1.Rows.Count, 1).End(xlUp).Row
    With ListBox1
        .ColumnHeads = True
        .ColumnWidths = "50;110;110;110;110;50;170;110;110;140;110"
        .ColumnCount = Tabelle1.Range("A2:L2").Columns.Count
        .RowSource = Tabelle1.Range("A3:L" & ZeileMax).Address
        .SetFocus
    End With
End Sub

Gruß
Nepumuk
Anzeige
AW:Danke Nepumuk, jetzt alles OK :-) kwT
27.10.2020 16:39:42
Helmut
AW: AW:Danke Nepumuk, jetzt alles OK :-) kwT
27.10.2020 16:43:07
Wolfgang
Nochmals danke für alles.
Gruß Wolfgang
AW: Listbox
27.10.2020 10:41:12
ralf_b
und was passiert wenn du das Me. wegläßt?
AW: Listbox
27.10.2020 10:54:58
Wolfgang
Hallo,
auf die Frage von ralf_b: Es geschieht nichts. Gleicher Fehler

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige