Anzeige
Archiv - Navigation
1604to1608
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
Inhaltsverzeichnis

Hilfe!!!

Hilfe!!!
31.01.2018 08:54:32
Amy
Hallo!
Ich habe ein Problem mit folgendem Makro. Und zwar wird hier die Spalte D in einer Schleife nach den Werten X, Y, Z, ABDEF, ABDE, AB, und ABY durchsucht. Dieser Wert wird anschließend zu dem Array „filterCriteria“ hinzugefügt. Am Ende sollte daher das Array wie folgt aussehen:
Array(X, Y, Z, ABDEF, ABDE, AB, ABY)
Jedoch überspringt er Zellen, die ein „AB” enthalten einfach, und fügt den Wert auch nicht zum Array hinzu. Das Array sieht also nach Ausübung des oberen Makros so aus:
Array(X, Y, Z, ABDEF, ABDE, ABY)
Kann mir jemand sagen, wo hier der Fehler liegt?
Anbei das Makro zur Veranschaulichung:

Dim filterCriteria() As String
Dim b As Integer
b = 0
ReDim Preserve filterCriteria(b)
filterCriteria(b) = "eins"
For a = 6 To ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row
Debug.Print Range("D" & a).Value
If Range("D" & a).Value = "X" Or Range("D" & a).Value = "Y" Or Range("D" & a).Value = "Z"  _
Or Range("D" & a).Value = "ABDEF" Or Range("D" & a).Value = "ABDE" Or Range("D" & a).Value = "AB" Or Range("D" & a).Value = "ABY" Then
If filterCriteria(0)  "eins" Then
If Not IsInArray(Range("D" & a).Value, filterCriteria) Then
ReDim Preserve filterCriteria(b)
filterCriteria(b) = Range("D" & a).Value
b = b + 1
End If
Else
ReDim Preserve filterCriteria(b)
filterCriteria(b) = Range("D" & a).Value
b = b + 1
End If
End If
Next

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

Betreff
Datum
Anwender
Anzeige
AW: Hilfe!!!
31.01.2018 09:12:38
Sepp
Hallo Amy,
wahrscheinlich steht in den Zellen nicht "AB", sondern "AB " oder " AB"!
Gruß Sepp

AW: Hilfe!!!
31.01.2018 09:15:54
Amy
Hallo Sepp!
Nein, das hab ich schon probiert, das ist es nicht..
LG
AW: Hilfe!!!
31.01.2018 09:15:55
Amy
Hallo Sepp!
Nein, das hab ich schon probiert, das ist es nicht..
LG
AW: Hilfe!!!
31.01.2018 09:17:43
Sepp
Hallo Amy,
dann wird dir ohne die Tabelle in der der Effekt auftritt keiner helfen können.
Gruß Sepp

Anzeige
AW: Hilfe!!!
31.01.2018 09:44:08
Werner
Hallo Amy,
prüf doch mal eine der Zellen in denen dein AB steht.
=LÄNGE(DeineZellemitAB)
oder
=WENN(DeineZellemitAB="AB";"richtig";"falsch")
Gruß Werner
AW: Hilfe!!!
31.01.2018 09:52:12
Sepp
Hallo Amy,
hab es jetzt bei mir getestet und läuft ohne Probleme.
Habe deinen Code etwas "eingekocht".
Sub amy()
Dim filterCriteria() As String
Dim varCriteria() As Variant
Dim lngIndex As Long, lngRow As Long

varCriteria = Array("AB", "ABDE", "ABDEF", "ABY", "x", "Y", "Z")

Redim filterCriteria(lngIndex)

With ActiveSheet
  For lngRow = 6 To .Cells(.Rows.Count, 4).End(xlUp).Row
    Debug.Print .Cells(lngRow, 4).Value
    If IsNumeric(Application.Match(.Cells(lngRow, 4).Value, varCriteria, 0)) Then
      If IsError(Application.Match(.Cells(lngRow, 4).Value, filterCriteria, 0)) Then
        Redim Preserve filterCriteria(lngIndex)
        filterCriteria(lngIndex) = .Cells(lngRow, 4).Value
        lngIndex = lngIndex + 1
      End If
    End If
  Next
End With
End Sub

Gruß Sepp

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige