• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Opgelost check dubbele naam

Dit topic is als opgelost gemarkeerd

Egbert12345

Gebruiker
Lid geworden
13 dec 2010
Berichten
530
Beste forummers, zie mijn voorbeeldbestand. De macro die ik heb gemaakt klopt voor geen meter. Ik wil graag een controle als een aam dubbel voorkomt. Hebben jullie suggesties?

Groet Egbert
 

Bijlagen

Mag het ook met Voorwaardelijke Opmaak? Lijkt me simpeler... (zie bijlage)

M.b.t. waarom de macro niet werkt (met dank aan Copilot):

Je macro werkt om meerdere redenen niet zoals bedoeld. Dit zijn de belangrijkste problemen:

1. Je verhoogt de teller binnen de lus zelf​

Je hebt:

For A = 2 To 6
grootboeknaam = Cells(A, 3)
A = A + 1

  • De For-lus verhoogt A al automatisch
  • Door zelf nog eens A = A + 1 te doen, sla je rijen over en gaat de lus “raar” lopen

2. Je vergelijkt alleen opeenvolgende cellen​

Je doet:

grootboeknaam = Cells(A, 3)
grootboeknaamXX = Cells(A + 1, 3)

Meer regels weergeven

→ Dit controleert alleen rij 2 met 3, 4 met 5, etc.
→ Maar dubbele waarden kunnen overal staan (bijv. rij 2 en rij 10)

3. Je bereik klopt niet met je omschrijving​

  • Jij zegt: B2:B100
  • Code gebruikt: Cells(A, 3) → dat is kolom C

4. Geen expliciete variabelen (kan fouten verbergen)​

Je declareert geen variabelen (Dim), wat risico geeft op fouten.


Kort samengevat (waarom jouw macro niet werkt)​

  • Teller A wordt verkeerd aangepast
  • Alleen vergelijking van naastliggende rijen
  • Verkeerde kolom (C i.p.v. B)
 

Bijlagen

Laatst bewerkt:
Code:
Sub M_snb()
  sn = Cells(1, 2).CurrentRegion
   
  For j = 1 To UBound(sn)
    If InStr(c00, "|" & sn(j, 1) & "|") Then c01 = c01 & sn(j, 1) & ":  B" & j & vbLf
    c00 = c00 & "|" & sn(j, 1) & "|"
  Next

  MsgBox c01
End Sub
 
Terug
Bovenaan Onderaan