Clever-Excel-Forum

Normale Version: .Find(what:=SUCHBEGRIFF) nutzen mit mehrern Suchbegriffen in zweidimensionalem Array
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Moin

Ich habe ein zweidimensionales Array mit 2 Spalten und 6 Zeilen. Die erste Spalte beinhaltet Artikelbezeichnungen, die zweite wie viele Male der jeweiligen Artikel in der Baugruppe XYZ vorkommen:


Code:
artikel_und_menge(0, 0) = "Noch leer"
artikel_und_menge(0, 1) = 1
artikel_und_menge(1, 0) = "Briden für Mastbefestigung an Mauer oben"
artikel_und_menge(1, 1) = 0
artikel_und_menge(2, 0) = "Auflager für Mastbefestigung an Mauer unten"
artikel_und_menge(2, 1) = 0
....


Nun möchte ich mit .Find(what:=ARRAY(1. Spalte) in einer langen Stückliste nach den Artikelbezeichnungen suchen und die Adressen dieser festhalten. Das Ziel ist es, dass ich später nicht die ganze Stückliste manuell nach den Artikeln suchen und die entsprechende Anzahl aufsummieren muss, sondern dass ich einfach über eine Userform die Baugruppe XYZ auswählen kann und die Stückliste so automatisch angepasst wird.

Nur weiss ich nicht wie ich der Suchfunktion sagen soll, dass sie nacheinander die Suchbegriffe der 1. Spalte suchen und die jeweilige Adressen abspeichern soll.

Ich hab mal mit so ner For-Schleifen angefangen und wenn ich einen einzelnen Suchbegriff eingebe klappt es, nur wenn ich die Array als ganzes eingebe kommt die Meldung:

"Falsche Anzahl an Dimensionen" und markiert mir den ARRAY hinter what:=

Hier mal der Code der Suchfunktion den ich bereits habe:


Code:
'5. Abschnitt: Speichert Ziele für Stückliste für Aufaddierung
    Dim finden_artikel As Range                                                                             'Durchsucht Spalte 4 nach Artikel
    Dim treffer_artikel                                                                                     'Wo wurde der Begriff gefunden? Angabe der Zeile
    Dim artikel() As String                                                                                 'Array speichert Ziele für die Stückliste (Zeilen)
    Dim p As Integer                                                                                        'Laufvariable
    
    For p = 1 To UBound(artikel_und_menge, 1) - LBound(artikel_und_menge, 1) + 1
        Set finden_artikel = Columns(4).Find(what:=artikel_und_menge(p))
        If Not finden_artikel Is Nothing Then
            treffer_artikel = finden_artikel.Address
            Do
            ReDim Preserve artikel(1 To 2, p)
                artikel(1, p) = finden_artikel.Value
                artikel(2, p) = finden_artikel.Address
            Set finden_artikel = Columns(4).FindNext(finden_artikel)
                Loop While Not finden_artikel Is Nothing And treffer_artikel <> finden_artikel.Address
        End If
    Next
Stop
'Ende 5. Abschnitt


Kann mir jemand helfen, wie ich die einzelnen Spalten des Array richtig angebe?

Danke im Voraus
Hallo,

du legst das Array artikel_und_menge(0, 0) fest - das ist 2-dimensional !!!
 

Code:
what:=artikel_und_menge(p)
fragst es aber dann nur 1-dimensional ab !!!

korrekt wäre ... natürlich nur vermutlich ...

Code:
what:=artikel_und_menge(p, 0)