Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1188to1192
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

Wert in Array überprüfen

Wert in Array überprüfen
webdepp
Hallo Experten,
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

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Wert in Array überprüfen
26.11.2010 18:07:15
ransi
HAllo
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...
Das hast du doch jetzt selber nicht verstanden, oder ?
Dies ist ein typischer Fall in dem eine Beispielmappe extrem hilfreich wäre.
ransi
Anzeige
AW: Wert in Array überprüfen
26.11.2010 18:55:32
webdepp
Hallo,
vllt etwas kompliziert geschrieben.
Anbei die Beispielmappe. Wie zu sehen, ist wird das Suchwort Produktion1 und Rest1 doppelt mit den geleichen Aufträgen gelistet.
Ich hoffe es kann jmd helfen.
https://www.herber.de/bbs/user/72486.xls
Danke webdepp
AW: Wert in Array überprüfen
27.11.2010 19:53:21
Martin
Hallo webdep,
ist eventuell das CreateObject("Scripting.Dictionary") die entscheidende Lösung für dich? Dieses lässt jeden Schlüssel nur einmal zu. Ich habe es selbst erst vor wenigen Tagen kennengelernt und bin begeistert: https://www.herber.de/forum/archiv/1184to1188/t1187936.htm
Viele Grüße
Martin
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige