ich habe folgendes "Problem":
In meiner Excelmappe befinden sich in den Zellen A1:A10 unterschiedliche Inhalte nach dem Format "test12345". Ich muss prüfen ob sich irgendwo in diesem Bereich bestimmte Einträge befinden. Die Anzahl der vorhandenen und zu suchenden Einträge variiert zwischen 10 und 100.
Ich würde das mittels Arrays lösen:
Sub matchvalues()
Dim letztezeile As Integer
letztezeile = Cells(Rows.Count, 1).End(xlUp).Row
'fill array with own values - a_myvalues ist public
a_myvalues = Range("a2:a" & letztezeile).Value
Load frm_search
frm_search.Show
End Sub
Die zu suchenden Einträge habe ich aktuell per Userform/Textfeld in ein zweites Array _
geschrieben:
Private Sub cmdbtn_save_Click()
'local declarations
Dim a_notfound As Variant
Dim a_matchvalues As Variant
Dim i As Integer
Dim x As Variant
Dim a As Integer
Dim save As Integer
'creat a_matchvalues
'Zweites Array mit den Suchwerten
a_matchvalues = Split(txt_searchfor.Text, Chr(13))
'match arrays
For i = 0 To UBound(a_matchvalues)
x = Application.Match(a_matchvalues(i), a_myvalues, 0)
If Not IsNumeric(x) Then a_notfound = a_matchvalues(i)
Next
'Ausgabe a_notfound
For a = 0 To UBound(a_matchvalues)
MsgBox a_matchvalues(a)
If a_matchvalues(a) > "" Then Value = Value & a_matchvalues(a) & " nicht
vorhanden" & Chr(13)
Next
Unload frm_search
MsgBox Value, vbokayonly
End Sub
Das läuft aus so weit. Einziges Problem ist, dass beim befüllen von dem zweiten Array (a_matchvalues) ungewollte Leerzeilen entstehen.
a_matchvalues = Split(txt_searchfor.Text, Chr(13))
Führt offenbar dazu, dass im Array nachher ein zweizeiliger Eintrag entsteht. Daraus resultiert, dass ich nur den ersten Eintrag aus dem zweiten Array (a_matchvalues) im ersten Array (a_myvalues) finde. Denn, im ersten Array sind logischerweise nur einzeilige Werte gespeichert.Gibt es eine elegantere Möglichkeit? (Man könnte die zusuchenden Werte auch einfach in eine Bereich der Mappe kopieren und daraus dann das zweite Array erzeugen. Finde ich persönlich aber nicht so userfreundlich)
Danke im Voraus
Marcel