Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1652to1656
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
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?

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
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

330 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige