Delen via

Dubbele gegevens wissen in een lijst

Anoniem
2023-05-14T09:58:33+00:00

Ik heb een lijst (A4 tot C500 ) met volgnummer in kolom A, naam kolom B en datum in kolom C.

Als ik nu gegevens invul in B500 (naam) ,dan zou ik deze wil controleren in de lijst of deze naam er al ergens tussenstaat door op een knop te klikken met een macro.

Als deze dan al in de lijst staat, dan zouden beide namen moeten gewist worden ,alsook de gegevens naast zijn naam (Kolom A En C )

Bv. Ik vul in B500 de naam Jozef, en deze staat als in de lijst op plaats B45 , dan zouden de gegevens moeten gewist worden in A45,B45,C45 ,alsook B500 als ik op een knop/symbool met een macro klik.

Is dit mogelijk?

Alvast bedankt!

Microsoft 365 en Office | Excel | Voor thuisgebruik | Windows

Vergrendelde vraag. Deze vraag is gemigreerd vanuit de Microsoft Ondersteuning-community. U kunt met een stem aangeven of de inhoud nuttig is, maar u kunt geen opmerkingen of antwoorden toevoegen of de vraag volgen.

0 opmerkingen Geen opmerkingen

9 antwoorden

Sorteren op: Meest nuttig
  1. Anoniem
    2023-05-15T06:40:32+00:00

    Die openings en sluitingshaakjes had ik hier gebruikt ,maar niet in de macro. Het was maar voor hier aan te tonen dat de macro niet werkte.

    Dat kunnen lezers van dit forum onmogelijk weten?

    Die gaan ervan dat wat je plaatst ook zo in je bestand hebt gebruikt.

    Ik zou ook nog willen zeggen dat ik een leek ben in excel.

    Dan zou ik, als ik jou was, me als de wiedeweerga gaan verdiepen in Excel, want je gebruikt het al lang. Je hebt hier al vaker vragen gesteld (en dat mag natuurlijk altijd); dat veronderstelt toch dat je in Excel geïnteresseerd bent?

    Het gebruik van een For-Next'-lus is 1 van de basisopdrachten in Excel Als ik nu vermeld dat je die voor je probleem kunt gebruiken, dan is het toch een normale reactie dat je in de helpfile onmiddellijk gaat bekijken hoe die opdracht werkt en wat je ermee kunt doen? Van basiscursussen Excel kun je er op internet meerdere vinden en om iets van vba te kennen is kennis van Excel zonder vba wel het minste dat je nodig hebt. Steeds complete oplossingen van anderen verwachten is wat ál te gemakkelijk.

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen
  2. Anoniem
    2023-05-15T06:13:31+00:00

    Bedankt voor u reactie al 👍

    Ik zou ook nog willen zeggen dat ik een leek ben in excel 🤭

    Die openings en sluitingshaakjes had ik hier gebruikt ,maar niet in de macro. Het was maar voor hier aan te tonen dat de macro niet werkte.

    zouden jullie mij een volledig formule of code kunnen geven voor de macro voor de meerdere bladtabs. Want -next ken ik ook niet 😊😒

    grts,

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen
  3. Anoniem
    2023-05-15T05:37:59+00:00

    Je begint en eindigt de macro met een openings- en sluitingshaakje. Die haakjes staan niet in de oorspronkelijke macro, de macro kan dan sowieso al niet werken.

    Je hebt onzorgvuldig vertaald. De macro-editor geeft per regel en per woord aan waar de fout zit, dan zou herstel daarvan toch niet zo moeilijk moeten zijn? Ik zal die regels hier vermelden:

    ( Sub ClearDuplicateData() 
    
    Dim LastRow that long 
    
    Dim i So long
    
    LastRow = Range("A" &; Rows.Count). End(xlUp)
    
    End Sub   )
    

    Als je een macro over meerdere bladen wil laten lopen, dan kan dat bv. met de opdracht for - next.

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen
  4. Anoniem
    2023-05-14T20:56:32+00:00

    Beste,

    Bedankt voor de reactie al :-)

    Ik heb de code vertaald naar het Engels ,maar er gebeurd niets

    ( Sub ClearDuplicateData()

    Dim NameToCheck As String

     *Dim LastRow that long* 
    
     *Dim i So long* 
    
     *NameToCheck = Range("B500").Value  ' get the name to check from cell B500* 
    
     *LastRow = Range("A" &; Rows.Count). End(xlUp). Row' find the last row of data in column A* 
    
     *For i = LastRow To 1 Step -1 ' loop through each row in reverse order* 
    
     *If Range("B" & i).Value = NameToCheck Then  'if the name in the current row matches the name to be checked* 
    
             *Range("A" & i & ":C" & i).ClearContents  ' clear the contents of columns A through C for the current row* 
    
             *If i = 500 Then 'if the current row is the same as the row named to check* 
    
                 *Range("B500").ClearContents ' clear name to check from cell B500* 
    

    End If

    End If

    Next i

    End Sub )

    Wat ik eigenlijk wil is het volgende ;

    Ik heb verschillende bladtabs (blad1, blad2 ,blad 3,blad 4 ,blad 5) in mijn werkmap. En in elk bladtab staat een lijst, gelijkaardig aan elkaar ( kolom A voor volgnummer , B kolom voor naam en C kolom voor datum )

    Nu zou ik bv. in blad1 een naam willen ingeven en dat ik dan op een knop of symbool klik ,en dat dan de naam gaat opzoeken in de lijsten van Blad2,blad3,blad4,blad5). In elk bladtab staan de namen in kolom B.

    Indien de naam in één van de lijsten voorkomt, moeten deze verwijderd worden, alsook de gegevens in de kolom links (A) en rechts (C) van de naam.

    grts,

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen
  5. Anoniem
    2023-05-14T10:42:12+00:00

    Hoi Stavros76!

    Probeer deze code: Sub ClearDuplicateData()

    Dim NameToCheck als tekenreeks Dim LastRow zo lang Dim i Zo lang

    NameToCheck = Bereik("B500"). Waarde 'krijg de naam om te controleren van cel B500

    LastRow = Bereik("A" &; Rows.Count). Einde(xlUp). Rij 'zoek de laatste rij met gegevens in kolom A

    Voor i = LastRow To 1 Stap -1 'loop door elke rij in omgekeerde volgorde

    Als bereik("B" & i). Value = NameToCheck Dan 'als de naam in de huidige rij overeenkomt met de naam die moet worden gecontroleerd

    Bereik("A" & i & ":C" & i). ClearContents 'wis de inhoud van de kolommen A tot en met C voor de huidige rij

    Als i = 500 Dan 'als de huidige rij hetzelfde is als de rij met de naam om te controleren

    Bereik("B500"). ClearContents 'wis de naam om te controleren vanuit cel B500

    Einde als

    Einde als

    Volgende i

    Einde sub

    Ga als volgt te werk om deze macro te gebruiken: * Open de Visual Basic Editor in Excel door op Alt + F11 te drukken. * Zoek in het deelvenster Projectverkenner de werkmap waarin u de macro wilt maken en dubbelklik op het pictogram om het codevenster te openen. * Plak in het codevenster de bovenstaande code. * Sluit de Visual Basic Editor. * Ga terug naar het Excel-werkblad en selecteer de cel waarin u de naam wilt invoeren die u wilt controleren (in dit geval cel B500). * Klik op het tabblad "Ontwikkelaar" op het lint (als het niet zichtbaar is, gaat u naar Bestand > Opties > Lint aanpassen en vinkt u het vakje "Ontwikkelaar" aan). * Klik op de knop "Invoegen" in de groep "Bedieningselementen" en selecteer het type knop dat u wilt gebruiken (bijv. "Knop"). * Teken de knop op het werkblad. * Klik met de rechtermuisknop op de knop en selecteer "Macro toewijzen". * Selecteer in het dialoogvenster "Macro toewijzen" de macro "ClearDuplicateData" en klik op OK.

    * Test de macro door een naam in te voeren in cel B500 en op de knop te klikken.

    Houd er rekening mee dat deze macro alle vermeldingen van de naam in de lijst wist, inclusief die in cel B500 als het een duplicaat is.

    Laat het me weten, als je extra hulp nodig hebt, help ik je graag verder.

    Hartelijke groeten Shakiru

    Deze reactie is automatisch vertaald. Hierdoor bevat het wellicht gramaticale fouten of vreemde zinnen.

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen