AW: Hat sonst noch jemand eine Idee mit VBA?
19.02.2016 08:55:46
MAM
Hallo zusammen
Hab noch etwas gesucht und eine Lösungsansatz über ein Array gefunden, welches ich nun für mich angepasst habe. Folgend die Lösung, wenn es einfacher, schneller und besser geht, bin ich natürlich weiterhin froh um jeden Input.
Liebe Grüsse
MAM
Sub Arraybefuellen()
Dim r As Long 'Zeilen#
Dim myArray()
Dim a As Long 'Index Array
Dim b As Long 'Index Array
Dim c As Long 'Index Array
Dim d As Long 'Index Array
Dim LoL As Long 'letzte Zeile
Dim gesuchte_zahl_01 As Variant '1. gesuchte Zahl
Dim gesuchte_zahl_02 As Variant '2. gesuchte Zahl
Dim gesuchte_zahl_03 As Variant '3. gesuchte Zahl
gesuchte_zahl_01 = 23
gesuchte_zahl_02 = 33
gesuchte_zahl_03 = 44
LoL = Cells(Rows.Count, "A").End(xlUp).Row
b = WorksheetFunction.CountIf(Range("A2:A" & LoL), "=" & gesuchte_zahl_01)
c = WorksheetFunction.CountIf(Range("A2:A" & LoL), "=" & gesuchte_zahl_02)
d = WorksheetFunction.CountIf(Range("A2:A" & LoL), "=" & gesuchte_zahl_03)
a = b + c + d
ReDim myArray(1 To a, 1 To 1)
a = 0
For r = 1 To LoL
If Range("A" & r) = gesuchte_zahl_01 Or Range("A" & r) = gesuchte_zahl_02 Or Range("A" & _
r) = gesuchte_zahl_03 Then
a = a + 1
myArray(a, 1) = Range("B" & r) 'Zahl
End If
Next r
Range("F1:F" & UBound(myArray)) = myArray 'Kontroll-Listung
Range("G1") = Application.WorksheetFunction.Small(myArray, 1)
Range("G2") = Application.WorksheetFunction.Small(myArray, 2)
Range("G3") = Application.WorksheetFunction.Small(myArray, 3)
Range("G4") = Application.WorksheetFunction.Small(myArray, 4)
Range("G5") = Application.WorksheetFunction.Small(myArray, 5)
Range("G6") = Application.WorksheetFunction.Small(myArray, 6)
End Sub