een aparte tabel maken met rijen waar waarde VLOOKUP = #N/B

Status
Niet open voor verdere reacties.
Kolom Relatienummer vullen in dezelfde code?

Nog een kleine aanvulling. Ik heb een probleem dat wanneer ik het bestand met de relatiegegevens automatisch open met een macro niet het juiste scheidingsteken wordt gezien. Hierdoor vindt hij de relatiecode niet op basis van het mailadres. Dit is volgens mij op te lossen door de VLOOKUP() in te bouwen in de gemaakte code voor het opzoeken van de relaties (deze werkt namelijk wel). De code is alleen wat geavanceerd en gaat mijn kennis van VBA te boven.

Kortom:

Is het ook mogelijk om dit
Code:
Range("B2").FormulaR1C1 = _
        "=IFERROR(VLOOKUP(RC[-1],'RelatiesSparrow.csv'!C1:C2,2,FALSE),""1758"")"

in te bouwen in deze code?
Code:
Sub EmailCheck()
    Dim Regel As String
    Dim ch1 As Integer
    Dim rnr As Integer
    Dim lst As String
    
    ch1 = FreeFile
    'Open ThisWorkbook.Path & "\RelatiesSparrow.csv" For Input As #ch1
    Open "C:\Users\anjad\Documents\Stichting Sparrow\RelatiesSparrow.csv" For Input As #ch1
    Line Input #ch1, Regel
    While Not EOF(ch1)
        Line Input #ch1, Regel
        ReDim Preserve eml(rnr)
        eml(rnr) = Split(Regel, ";")(0)
        rnr = rnr + 1
    Wend
    Close #ch1

    For rnr = 2 To Range("I2").End(xlDown).Row
        If Not InCSV(Cells(rnr, 9)) Then
            If InStr(1, lst, Cells(rnr, 9)) = 0 Then
                lst = lst & Cells(rnr, 9) & vbCrLf
            End If
        End If
    Next rnr
    
    MsgBox lst, vbOKOnly, "Niet in relatiebestand"
End Sub
Function InCSV(Adres As String) As Boolean
    Dim i As Integer
    For i = 0 To UBound(eml)
        If Adres = eml(i) Then
            InCSV = True
            Exit For
        End If
    Next i
End Function
 
Laatst bewerkt:
Je hebt nog niet verraden waar het relatienummer in het csv-bestand ten opzichte van het emailadres in het csv-bestand staat; evenmin uit hoeveel tekens het relatienummer bestaat.
Ook mis ik de kolom waarin het relatienummer in het Excelbestand staat.

Je bent nogal goed in het onnodig gecompliceerd maken van iets eenvoudigs.

- lees de gegevens in Excel
- lees de gegevens in het csv-bestand
- lees per regel van Excel het emailadres en het relatienummer
- als het relatienummer ontbreekt en het emailadres niet in het csv-bestand voorkomt: breek de controle af.
- als het realtienummer ontbreekt, lees dan aan de hand van het emailadres het relatienummer uit het csv-bestand en zet het in de Array sn.

All you need is:

Code:
Sub M_snb()
    sn = Sheet1.UsedRange
    c00 = CreateObject("scripting.filesystemobject").opentextfile("C:\Users\anjad\Documents\Stichting Sparrow\RelatiesSparrow.csv").readall

    For j = 2 To UBound(sn)
      if sn(j,8)="" then 
        If InStr(c00, sn(j, 9)) = 0 Then Exit Sub
        sn(j,8)=mid(c00,instr(c00,sn(j,90)-10,9)
      end if
    Next

    sheet1.usedrange = sn
    ' werk verder met de volledige gegevens uit het werkblad zonder ontbrekende emailgegevens
    ' meldingen zijn overbodig
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan