Thema Datum  Von Nutzer Rating
Antwort
10.06.2016 08:54:13 Claudia
NotSolved
10.06.2016 18:54:08 Gast90297
NotSolved
13.06.2016 08:51:39 Claudia
NotSolved
13.06.2016 09:42:02 Gast12424
NotSolved
23.06.2016 14:50:48 Claudia
NotSolved
23.06.2016 14:56:03 Claudia
NotSolved
Rot Suche in Excel-Tabelle - Ausgabe von ganzer Zeile - Meine Lösung
05.07.2016 09:17:08 Claudia
Solved

Ansicht des Beitrags:
Von:
Claudia
Datum:
05.07.2016 09:17:08
Views:
759
Rating: Antwort:
 Nein
Thema:
Suche in Excel-Tabelle - Ausgabe von ganzer Zeile - Meine Lösung

Hallo nochmal und sorry für die späte Antwort. Ich bin erst nach und nach dazu gekommen, an der Suche weiterzuprogrammieren, will euch aber meine Lösung nicht vorenthalten. Sie ist bestimmt nicht die eleganteste, aber den Umständen entsprechend (eine ListBox kann maximal nur zehn Spalten darstellen, zu wenig um eine ganze Zeile meiner Tabelle auszugeben) genügt es. Vielen Dank auch an den Gast, dessen "zeilen"-Abfrage ich benutze!

Zum besseren Verständnis: Ich habe meine Tabelle in verschiedene Bereiche eingeteilt und definiere sie beim Laden der UserForm (hier: grngKopfDatenBereich).

Public Sub Suchen()
frmSuche.lstSuche.Clear 'Die ListBox wird geleert
    With ActiveWorkbook.Worksheets("Bauteile")
    mstrZeilen = ","
    Set mrngAktiveZelle = .Range("A2:AY" & .rows.Count).Find(What:=frmSuche.txtSuche.Value, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, After:=.Cells(.rows.Count, 1)) 'Führe die Suche in einem festgelegten Bereich der Tabelle aus, hier "A1:AY"
        If Not mrngAktiveZelle Is Nothing Then 'Wenn der Trefferbereich NICHT leer ist...
            mstrFirst = mrngAktiveZelle.address '...dann setze die Treffer-Adresse in die Fund-Variable
            Do
                If InStr(mstrZeilen, "," & mrngAktiveZelle.Row & ",") = 0 Then
                    frmSuche.lstSuche.ColumnCount = 5 'Da ich mehr als zehn Spalten brauche, die ListBox aber nur zehn darstellen kann, habe ich in eine Spalte mehrere zusammengefasst; so komme ich auf nur noch fünf
                    frmSuche.lstSuche.ColumnWidths = "10cm;8cm;6cm;12cm;42cm;" 'Setze Spaltenbreiten. Schade, dass die Breiten sich nicht nach dem Inhalt richten können
                    frmSuche.lstSuche.AddItem 'Los geht's mit dem Befüllen
                    For i = 0 To 3 Step 1 'In die erste Spalte werden drei Tabellenspalten zusammengefasst
                        If Not IsEmpty(.Cells(mrngAktiveZelle.Row, grngKopfDatenBereich.column + i).Value) Then 'Wenn die Tabellenzellen NICHT leer sind...
                            If i = 0 Then 'Für den ersten Wert gilt, dass kein Trennzeichen davor kommt
                                frmSuche.lstSuche.List(frmSuche.lstSuche.ListCount - 1, 0) = .Cells(mrngAktiveZelle.Row, grngKopfDatenBereich.column + i).Value '...fülle die erste ListBox-Spalte mit dem ersten Tabellenspalten-Wert
                            Else 'Für alle weiteren Werte gilt, dass sie zur Abgrenzung einen Schrägstrich davor bekommen
                                frmSuche.lstSuche.List(frmSuche.lstSuche.ListCount - 1, 0) = frmSuche.lstSuche.List(frmSuche.lstSuche.ListCount - 1, 0) & "/" & .Cells(mrngAktiveZelle.Row, grngKopfDatenBereich.column + i).Value '...fülle die erste ListBox-Spalte mit allen weiteren Tabellenspalten-Werten
                            End If
                        End If
                    Next i 'Weiter geht's mit den anderen Tabellenspalten des ersten Bereichs (grngKopfDatenBereich) 
                    '... Es folgen noch weitere Bereiche, die mit Schleifen eingelesen werden und in ListBox-Spalten zusammenge"quetscht" werden. Aber im Prinzip sieht's so aus wie oben
                    mstrZeilen = mstrZeilen & mrngAktiveZelle.Row & ","
                End If
                Set mrngAktiveZelle = .Range("A2:AZ" & .rows.Count).FindNext(mrngAktiveZelle) 'Die Suche geht weiter mit der nächsten Zeile...
            Loop While Not mrngAktiveZelle Is Nothing And mstrFirst <> mrngAktiveZelle.address '...und zwar so lange, bis es keine Treffer mehr gibt
        End If
    End With
    Set mrngAktive Zelle = Nothing

Ich gehe auf Fragen auch gerne ein! Nochmal Danke an den Gast!

 


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
10.06.2016 08:54:13 Claudia
NotSolved
10.06.2016 18:54:08 Gast90297
NotSolved
13.06.2016 08:51:39 Claudia
NotSolved
13.06.2016 09:42:02 Gast12424
NotSolved
23.06.2016 14:50:48 Claudia
NotSolved
23.06.2016 14:56:03 Claudia
NotSolved
Rot Suche in Excel-Tabelle - Ausgabe von ganzer Zeile - Meine Lösung
05.07.2016 09:17:08 Claudia
Solved