Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

.Find(what:=SUCHBEGRIFF) nutzen mit mehrern Suchbegriffen in zweidimensionalem Array
#1
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
Antworten Top
#2
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)
VG Sabina

bei mir läuft Win 7 32-Bit - Office 2010 Pro Plus 32-Bit und Office 2016 Pro Plus 32-Bit
Wer auch weiter Hilfe erwartet, sollte sich nicht zu schade sein, ein kurzes Feedback zu geben.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste