HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Entdecke rund 2 Millionen Excel-Lösungen im
Forumsarchiv
Forumbeitrag
Excel-Version des Fragestellers:
2022
Erfahrungslevel des Fragestellers:
Basiskenntnisse in Excel
Christian
15.06.2026 19:22:00
AW: Makro berücksichtigt nicht alle Zeilen
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
Als Antwort auf diesen Beitrag
snb
15.06.2026 12:03:10
AW: Makro berücksichtigt nicht alle Zeilen
Dieser Code doch:
Zeilen ohne Namen können gelöscht werden.

Sub M_snb()

sn = Tabelle1.Cells(1, 4).CurrentRegion
sp = Tabelle2.Cells(1, 2).CurrentRegion

With CreateObject("scripting.dictionary")
For j = 1 To UBound(sp)
.Item(sp(j, 1)) = sp(j, 2)
Next

For j = 1 To UBound(sn)
If sn(j, 3) <= 0.1 Then
sn(j, 3) = .Item(sn(j, 1))
.Remove sn(j, 1)
End If
Next
End With

Tabelle3.Cells(1).Resize(UBound(sn), 3) = sn
End Sub


Folgenachrichten
Antwort auf Beitrag erstellen
Bitte einen Anwendernamen ohne @ eingeben.
Bitte das Passwort eingeben.
Bitte eine gültige E-Mail-Adresse eingeben.
Bitte einen Betreff eingeben.
Weitere Optionen
Aktivieren, wenn die Frage/der Beitrag noch nicht beantwortet wurde und unter Listen > Offene Threads erscheinen soll.
Beispieldatei hochladen

Bitte einen Nachrichtentext eingeben.