Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Spaltenwerte mit aktiver Zelle vergleichen

VBA Spaltenwerte mit aktiver Zelle vergleichen
31.10.2018 22:28:27
Edgar
Folgendes Problem: Ich habe 2 Tabellen. Tabelle A enthält in Spalte B verschiedene Werte. Tabelle B besitzt eine aktive Zelle mit Inhalt. Eine Funktion per Button-Command soll jetzt schauen, ob ein Wert, der in Spalte B aus Tabelle A vorkommt, Teil des Inhalts der aktiven Zelle ist. Es können auch Zeichen davor oder dahinter stehen. Wenn ja, soll er die entsprechenden Zeilen, die in Tabelle A einen Treffer ergeben in einer Listbox ausgeben. Wenn es keinen Treffer gibt, die Listbox leer lassen.
Den Code habe ich aktuell so:

Private Sub CommandButton3_Click()
Dim vle As Variant, flag As Boolean
Dim ary() As Variant, x As Long
With Me.ListBox1
vle = Selection.Value
If Len(vle) > 0 Then flag = True
.Clear
.ColumnCount = 3
If flag Then
ary = Sheets("A").UsedRange.Value
For x = 1 To UBound(ary, 1)
If InStr(1, vle, ary(x, 2), vbTextCompare) Then _
.AddItem
.List(.ListCount - 1, 0) = ary(x, 1)
.List(.ListCount - 1, 0) = ary(x, 2)
.List(.ListCount - 1, 0) = ary(x, 3)
Next x
End If
End With
End Sub

Leider zeigt es mir in der Zeile:
.List(.ListCount - 1, 0) = ary(x, 1)
einen Laufzeitfehler 381 an. "Eigenschaft List konnte nicht gesetzt werden. Index des Eigenschaftenfelds ungültig. Und ich komme nicht weiter. Könnt ihr mir helfen?
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Spaltenwerte mit aktiver Zelle vergleichen
01.11.2018 08:28:01
Hajo_Zi
ich würde vermuten das Array hat nur eine Spalte.
Die meisten bauen Deine Datei nicht nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Die meisten möchten es am Original testen um den gleichen Fehler zu erhalten.
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Anzeige
AW: VBA Spaltenwerte mit aktiver Zelle vergleichen
01.11.2018 08:31:05
Hajo_Zi
ich würde vermuten das Array hat nur eine Spalte.
Die meisten bauen Deine Datei nicht nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Die meisten möchten es am Original testen um den gleichen Fehler zu erhalten.
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Anzeige
AW: VBA Spaltenwerte mit aktiver Zelle vergleichen
01.11.2018 09:15:59
Edgar
Vielen Dank für dein Hilfe. Ich habe meine Datei angehangen, natürlich mit veränderten Werten.
https://www.herber.de/bbs/user/125041.xlsm
AW: VBA Spaltenwerte mit aktiver Zelle vergleichen
01.11.2018 09:26:11
Hajo_Zi
meine Hinweis
ich würde vermuten das Array hat nur eine Spalte.

möchtest Du nicht beachten.
Gruß Hajo
Anzeige
AW: VBA Spaltenwerte mit aktiver Zelle vergleichen
01.11.2018 11:58:35
Edgar
Habe jetzt versucht für 3 Spalten, 3 Arrays zu erzeugen. Leider immernoch der gleiche Fehler.
Leider habe ich kaum Erfahrung mit VBA, deswegen die Frage.
Private Sub CommandButton1_Click()
Dim vle As Variant, flag As Boolean
Dim ary1() As Variant, x As Long
Dim ary2() As Variant
Dim ary3() As Variant
With Me.ListBox1
vle = Selection.Value
If Len(vle) > 0 Then flag = True
.Clear
.ColumnCount = 3
If flag Then
ary1 = Sheets("TabelleA").UsedRange.Columns(1).Value
ary2 = Sheets("TabelleA").UsedRange.Columns(2).Value
ary3 = Sheets("TabelleA").UsedRange.Columns(3).Value
For x = 1 To UBound(ary1, 1)
If InStr(1, vle, ary2(x, 1), vbTextCompare) Then _
.AddItem
.List(.ListCount - 1, 0) = ary1(x, 1)
.List(.ListCount - 1, 0) = ary2(x, 1)
.List(.ListCount - 1, 0) = ary3(x, 1)
Next x
End If
End With
End Sub

Anzeige
AW: VBA Spaltenwerte mit aktiver Zelle vergleichen
01.11.2018 12:02:37
Hajo_Zi
Gut ich kann Dir nicht helfen. Jedes Array hat nur eine Spalte, das möchtest Du aber nicht glauben.
Viel Erfolg noch.
Gruß Hajo
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige