• 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.

Unieke waarden

Status
Niet open voor verdere reacties.

Dloyd Spencer

Gebruiker
Lid geworden
16 jan 2006
Berichten
13
Ik heb een code toegevoegd onder macro 'finaliseren' om de unieke waarden van een bepaald bereik weer te geven. Om één of andere reden doet de code zijn werk, behalve de eerste waarde geeft hij dubbel weer. Kan iemand me helpen bij het zoeken naar de fout in de code?

Staat er trouwens een limiet op de grootte van bestanden die je kan toevoegen? Het lukt me niet om het bestand (4,3Mb) toe te voegen
 
Dar zit inderdaad een limiet van 100Kb op. 4,3 Mb is een behoorlijk document trouwens. Je kan uiteraard ook even alleen de macro hier plaatsen.
 
Het gaat over het rode gedeelte.

Sub finaliseren()

With Sheets(1)
lrow = .[F120].End(xlUp).Offset(1).row
sq = .Range("B21:I" & lrow)
End With

With Sheets(2)
.Cells(Rows.Count, 2).End(xlUp).Offset(1).Resize(UBound(sq), UBound(sq, 2)) = sq
End With

Range("G17:G18,B21:I120,G7:G9,G11").ClearContents

With Sheets(2)
.Range("B3:B10002").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheets(2).Range("K3"), Unique:=True
End With

Range("G7").Select


End Sub
 
Plaats eens een uitgekleed voorbeeld.
 
Er is een lijst met een aantal bestellingen.

[table="width: 500, class: grid"]
[tr]
[td]Bestelnr.[/td]
[td]Bestellijnnr.[/td]
[td]Datum bestelling[/td]
[td]Leverancier[/td]
[td]...[/td]

[/tr]
[tr]
[td]B201510001[/td]
[td]BL2015100001[/td]
[td]10/04/2015[/td]
[td]Leverancier A[/td]
[td]...[/td]

[/tr]
[tr]
[td]B201510001[/td]
[td]BL2015100002[/td]
[td]10/04/2015[/td]
[td]Leverancier A[/td]
[td]...[/td]

[/tr]
[tr]
[td]B201510001[/td]
[td]BL2015100003[/td]
[td]10/04/2015[/td]
[td]Leverancier A[/td]
[td]...[/td]

[/tr]
[tr]
[td]B201510002[/td]
[td]BL2015100004[/td]
[td]11/04/2015[/td]
[td]Leverancier B[/td]
[td]...[/td]

[/tr]
[tr]
[td]B201510002[/td]
[td]BL2015100005[/td]
[td]11/04/2015[/td]
[td]Leverancier B[/td]
[td]...[/td]

[/tr]
[tr]
[td]B201510003[/td]
[td]BL2015100006[/td]
[td]12/04/2015[/td]
[td]Leverancier C[/td]
[td]...[/td]

[/tr]
[/table]

O.w.v. de bestellijnnrs. kan het zijn dat een bestelnr. meerdere keren voorkomt in de lijst met bestellingen (zie voorbeeld). Ik zou op hetzelfde tabblad een vertikaal lijstje willen laten creëren (vanaf cel K3 naar beneden) van alle unieke bestelnrs. in de lijst met bestellingen. De lijst met bestelnrs heeft een bereik van B3:B10002.

Het registreren van bestellingen gaat via een zelfgemaakt formulier en komt via een knop terecht in het tabblad met de bestellingen. Vlak na het uitvoeren van deze macro wil ik de macro laten lopen met de unieke bestelnrs. Zie hieronder de macro zoals nu opgenomen in mijn bestand. Het rode gedeelte gaat over de unieke waarden.

Sub finaliseren()

With Sheets(1)
lrow = .[F120].End(xlUp).Offset(1).row
sq = .Range("B21:I" & lrow)
End With

With Sheets(2)
.Cells(Rows.Count, 2).End(xlUp).Offset(1).Resize(UBound(sq), UBound(sq, 2)) = sq
End With

Range("G17:G18,B21:I120,G7:G9,G11").ClearContents

With Sheets(2)
.Range("B3:B10002").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheets(2).Range("K3"), Unique:=True
End With


Range("G7").Select


End Sub


De code doet het behalve dat hij de eerste bestelnr. in de lijst 2x weergeeft. Ik kan maar niet vinden waarom...

Kan iemand me daarbij helpen?
 
Je gebruikt de range B3:B10002. Staan de labels in rij 3 of in rij 2?
Indien in rij 2, wijzig je range dan eens in B2:B10002.......
 
Je moet filteren op de labels omdat deze ook gekopieerd worden.

best lastig om even een voorbeeldje te maken.
 

Bijlagen

Rij 1 is leeg. In rij 2 staan de labels. Vanaf rij 3 begint de data.

Zoals VenA ook al aangegeven heeft, dient je range ook de labels te omvatten.
Vandaar mijn advies om de range op regel 2 te laten beginnen. Je krijgt nu de eerste rij dubbel, omdat die ook gebruikt wordt als label...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan