Wert in Array überprüfen
webdepp
ich habe ein kleines Problem mit Arrays. Stehe gerade auf dem Schlauch.
Und zwar folgendes: Ich gehe eine Excelliste durch und suche mit einen Wert raus und summiere ihn dann mit Countif. Jetzt kommt, das Problem, der Suchwert kann doppelt vorkommen und ich kann die Excelliste nicht filtern, da diese nicht geändert werden darf. Das bedeutet ich muss das genuzte Suchwort in ein Array schreiben. Das habe ich auch hinbekommen. Aber wie kann ich jetzt das neue Suchwort mit dem Array vergleichen. Und wenn das neue Suchwort nicht im Array vorkommt, soll die Routine weiter laufen. Sonst next, please...
Ich möchte damit erreichen, das kein Suchwort doppelt vorkommt. Weil es sonst auch doppelt eingetragen wird.
Danke Webdepp
Private Sub Start_100A78A_Click()
Dim v_suchspalte, v_suchzeile, v_lpar, v_cpu, v_zeile, v_spalte, z, v_colour, v_firstrow As _
Integer
Dim v_zeile_rahm, v_spalte_rahm, v_intleer, v_length As Integer
Dim v_ram_mb, v_ram_gb As Double
Dim v_suche_1, v_suche_2, v_lastword, v_typsn As String
Dim v_suchliste As Variant
v_suchspalte = 4 'Spalte in der das Suchwort steht
v_zeile = 45 'Startzeile für Grafik
v_spalte = 2 'Startspalte für Grafik
v_firstrow = 74 'erste Zeile Datenbestand
v_lastrow = 109 'letzte Zeile Datenbestand
v_lastword = "Vio 2" 'letztes Suchwort
v_colour = 3 'Startfarbe Grafik
v_zeile_rahm = v_zeile - 2
v_spalte_rahm = v_spalte
v_suchliste = Array()
'ermittelt Typ Seriennummer
v_length = Len(Sheets("HW_SMI").Cells(v_firstrow - 1, 1))
v_intleer = InStr(Sheets("HW_SMI").Cells(v_firstrow - 1, 1), " ")
v_typsn = Right(Sheets("HW_SMI").Cells(v_firstrow - 1, 1), v_length - v_intleer)
'ermmiteln der ersten leere Zelle
For z = v_firstrow To v_lastrow
If Sheets("HW_SMI").Cells(z, 4) = v_lastword Then
Exit For
End If
Next z
'Schleife für alle Suchwörter
For v_suchzeile = v_firstrow To z
'Festlegung Suchwort
v_suche_1 = Sheets("HW_SMI").Cells(v_suchzeile, v_suchspalte).Value
'Prüfung ob Suchwort dem vorher gehenden entspricht
If v_suche_1 v_suche_2 And v_suche_1 "" Then
'Berechnung Werte nach Suchwort
v_lpar = WorksheetFunction.CountIf(Sheets("HW_SMI").Range("D74:D109"), v_suche_1)
'v_lpar = WorksheetFunction.CountIf(Sheets("HW_SMI").Range(Cells(v_firstrow, _
v_suchspalte), Cells(v_lastrow, v_suchspalte)), v_suche_1)
v_cpu = WorksheetFunction.SumIf(Sheets("HW_SMI").Range("D74:D109"), v_suche_1, Sheets(" _
HW_SMI").Range("T74:T109"))
v_ram_mb = WorksheetFunction.SumIf(Sheets("HW_SMI").Range("D74:D109"), v_suche_1, _
Sheets("HW_SMI").Range("Z74:Z109"))
v_ram_gb = Round((v_ram_mb / 1024), 2)
'Schreiben der Daten in Zelle
Sheets("Grafik_Koeln").Cells(v_zeile_rahm, v_spalte_rahm) = v_typsn
Sheets("Grafik_Koeln").Cells(v_zeile_rahm + 1, v_spalte_rahm) = "CPU: " & Sheets(" _
HW_SMI").Range("T" & v_firstrow - 1) & " / RAM: " & Sheets("HW_SMI").Range("Z" & v_firstrow - 1) / 1024 & " GB"
Sheets("Grafik_Koeln").Cells(v_zeile, v_spalte) = "Lpar: " & v_lpar & " / CPU: " & _
v_cpu & " / RAM: " & v_ram_gb & " GB"
'Zellenformatierung
'Zeilenhöhe
Sheets("Grafik_Koeln").Rows(v_zeile).RowHeight = 15 * v_lpar
'Füllfarbe
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlTop
End With
'Suchwort neben Lpar eintragen
Sheets("Grafik_Koeln").Cells(v_zeile, v_spalte + 1) = v_suche_1
'Variablen hochzählen
v_suche_2 = v_suche_1
v_zeile = v_zeile + 1
v_colour = v_colour + 1
End If
Next v_suchzeile
End Sub