Forumbeitrag
Excel-Version des Fragestellers:
2022
Erfahrungslevel des Fragestellers:
Basiskenntnisse in Excel
Gut wenn ich den Code richtig verstehe , dann machst du das Sub M_snb()
' sn = gesamter Datenblock aus Tabelle1, beginnend bei Zelle (1,4) = Spalte D
sn = Tabelle1.Cells(1, 4).CurrentRegion
' sp = gesamter Datenblock aus Tabelle2, beginnend bei Zelle (1,2) = Spalte B
sp = Tabelle2.Cells(1, 2).CurrentRegion
' Dictionary erzeugen
With CreateObject("scripting.dictionary")
'Dictionary aus Tabelle2 aufbauen
' Key = Wert aus Spalte B
' Value = Wert aus Spalte C
For j = 1 To UBound(sp)
.Item(sp(j, 1)) = sp(j, 2)
Next
'Tabelle1 Zeile für Zeile durchgehen
For j = 1 To UBound(sn)
' Wenn der Wert in Spalte F (3. Spalte im Array) <= 0,1 ist
If sn(j, 3) <= 0.1 Then
' Dann ersetze diesen Wert durch den Dictionary‑Wert
' Key ist der Wert aus Spalte D (1. Spalte im Array)
sn(j, 3) = .Item(sn(j, 1))
' Und lösche diesen Key aus dem Dictionary
.Remove sn(j, 1)
End If
Next
End With
'Ergebnis in Tabelle3 schreiben
Tabelle3.Cells(1).Resize(UBound(sn), 3) = sn
End Sub
kurz gesagt wenn Wert <=0,1 ersetze ihn durch einen Wert aus dem Dictionary.
Gruß
Christian