Andre175
Gebruiker
- Lid geworden
- 2 feb 2018
- Berichten
- 351
Met onderstaande code wordt een tabel gemaakt met data uit meerdere sheets.
Het leek me juist te werken, maar kwam er achter dat er toch een kleine fout in zat.
bij het verwijderen van dubbele data gaat er iets mis (rode gedeelte in code)
Mijn bedoeling was dat wanneer de gegevens in A,B en E in meerdere regels gelijk zijn, dan de dubbele data te verwijderen.
kolom A = voornaam
Kolom B = Achternaam
Kolom E = mailadres
dus als bijvoorbeeld
A1 = Daan
B1 = Jansen
E1 = jansen@iets.nl
A12 = Daan
B12 = Jansen
E12 = jansen@iets.nl
dan moet 1 van de regels verwijderd worden.
Ik kwam tot de ontdekking dat er per kolom gekeken wordt met de code die ik gebruik.
Als de voornaam 2 x voorkomt, terwijl de achternaam anders is, wordt er al een regel verwijderd.
Dit is niet de bedoeling.
iemand een idee hoe de code wel zou moeten?
Het leek me juist te werken, maar kwam er achter dat er toch een kleine fout in zat.
bij het verwijderen van dubbele data gaat er iets mis (rode gedeelte in code)
Mijn bedoeling was dat wanneer de gegevens in A,B en E in meerdere regels gelijk zijn, dan de dubbele data te verwijderen.
kolom A = voornaam
Kolom B = Achternaam
Kolom E = mailadres
dus als bijvoorbeeld
A1 = Daan
B1 = Jansen
E1 = jansen@iets.nl
A12 = Daan
B12 = Jansen
E12 = jansen@iets.nl
dan moet 1 van de regels verwijderd worden.
Ik kwam tot de ontdekking dat er per kolom gekeken wordt met de code die ik gebruik.
Als de voornaam 2 x voorkomt, terwijl de achternaam anders is, wordt er al een regel verwijderd.
Dit is niet de bedoeling.
Code:
On Error Resume Next
With Sheets("Kids")
.Cells(1).Select
.ListObjects.Add , , , 1, .Cells(1).CurrentRegion
End With
For Each it In Sheets
If InStr("LadderKids", it.Name) = 0 Then
With it.UsedRange
Sheets("Kids").Cells(Rows.Count, 2).End(xlUp).Resize(.Rows.Count, .Columns.Count - 2) = .Offset(1, 2).Value
End With
End If
Next
[COLOR="#FF0000"]Sheets("Kids").ListObjects("Tbl_Kids").DataBodyRange.RemoveDuplicates Array(1, 2, 5), xlYes[/COLOR]
Set Sh1 = Sheets("Kids")
Set sh2 = Sheets("Ladder")
ar1 = Sh1.Range("B2:P200")
For i = 3 To Sheets.Count
For j = 1 To Sh1.Range("A" & Rows.Count).End(xlUp).Row - 2
For jj = 1 To Sheets(i).Range("A" & Rows.Count).End(xlUp).Row - 1
Sh1.Cells(j + 1, 1) = j
ar2 = Sheets(i).Range("A2:H50")
If ar1(j, 1) = ar2(jj, 3) And ar1(j, 2) = ar2(jj, 4) And ar1(j, 5) = ar2(jj, 7) Then
' sh1.Cells(j + 1, i + 5).Value = Sheets("Ladder").Range("A" & i - 1)
Sh1.Cells(j + 1, Columns.Count).End(xlToLeft).Offset(, 1) = Sheets("Ladder").Range("A" & i - 1)
End If
Next jj
Next j
Next i
iemand een idee hoe de code wel zou moeten?