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
Robert Pilz
15.06.2026 10:44:38
AW: Makro berücksichtigt nicht alle Zeilen
Hallo Christian;


Ich denke mal so.

Sub SchreibeAZN_A_bis_C()


Dim wsCodes As Worksheet, wsLeute As Worksheet, wsAZN As Worksheet
Dim lastRow As Long, i As Long
Dim arrCodes As Variant
Dim nameMatch As Variant
Dim codeVal As String, nameVal As Variant, dateVal As Variant
Dim valF As Double
Dim dictAZN As Object
Dim key As Variant
Dim arrOut() As Variant

Set wsCodes = ThisWorkbook.Worksheets("Codes")
Set wsLeute = ThisWorkbook.Worksheets("Leute")
Set wsAZN = ThisWorkbook.Worksheets("AZN")
Set dictAZN = CreateObject("Scripting.Dictionary")

'--- Codes D:F einlesen ---
lastRow = wsCodes.Cells(wsCodes.Rows.Count, "D").End(xlUp).Row
If lastRow < 1 Then Exit Sub

arrCodes = wsCodes.Range("D1:F" & lastRow).Value

'--- AZN-Daten sammeln ---
For i = 1 To UBound(arrCodes, 1)

codeVal = Trim(CStr(arrCodes(i, 1))) 'Spalte D
dateVal = arrCodes(i, 2) 'Spalte E

If IsNumeric(arrCodes(i, 3)) Then 'Spalte F
valF = CDbl(arrCodes(i, 3))

If valF <= 0.1 And valF > 0 And codeVal <> "" Then

If Not dictAZN.Exists(codeVal) Then

nameMatch = Application.VLookup(codeVal, wsLeute.Range("B:C"), 2, False)

If Not IsError(nameMatch) Then
nameVal = nameMatch
Else
nameVal = ""
End If

dictAZN.Add codeVal, Array(nameVal, dateVal)

End If

End If
End If

Next i

'--- Ausgabe in AZN!A:C ---
wsAZN.Range("A:C").ClearContents

If dictAZN.Count > 0 Then

ReDim arrOut(1 To dictAZN.Count, 1 To 3)

i = 1
For Each key In dictAZN.Keys
arrOut(i, 1) = key
arrOut(i, 2) = dictAZN(key)(0)
arrOut(i, 3) = dictAZN(key)(1)
i = i + 1
Next key

wsAZN.Range("A1").Resize(dictAZN.Count, 3).Value = arrOut

End If

End Sub
Als Antwort auf diesen Beitrag
Christian
14.06.2026 13:27:21
Makro berücksichtigt nicht alle Zeilen
https://www.herber.de/bbs/user/180803.xlsm

Hallo, ich bitte euch um Eure Hilfe.

Ich, und zugegebenermaßen auch die KI nicht, finden heraus, weshalb das Makro, dass den Inhalt des Blatts AZN erstellt hat, die Zeile Codes!2719 übergangen hat, bzw. der Text nm4074444 aus Codes!D2719 nicht in AZN!A mit den dazugehörigen Infos in AZN!B:C erscheint.

Ich hoffe jemand von euch findet den Fehler, danke.

Ziel des Makros ist in AZN!A alle Texte aus Codes!D aufzulisten, neben denen eine Zahl <=10% steht ohne Duplikate und die gezeigten Infos nebendran in AZN!B:C zu schreiben.

Vielen Dank
Christian

PS: Das Original ist um einiges umfangreicher, ich habe es aufgrund der Größenbeschränkung der Dateien hier im Forum auf die für das Makro relevanten Inhalte begrenzt. Im Original gibt es also durchaus auch Zeilen in Codes die die Bedingung <=10% nicht erfüllen. (Haben dann größere Zahlen oder sind leer).
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.