• 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 uit kolom filteren met VBA

Status
Niet open voor verdere reacties.

HenkQ

Gebruiker
Lid geworden
14 feb 2020
Berichten
11
Goedemorgen,

Ik vind van alles op het gebied van unieke waarden uit een kolom filteren, echter niet mijn specifieke situatie.


Wat ik wil is uit kolom C alle unieke waarden filteren en dan opslaan in een VBA-variabele als tekst met een / tussen de waarden, dus niet op het werkblad.


Aantekening 2020-02-28 113301.jpg

Wie heeft hier een regeltje code voor?

Alvast bedankt.
 
Bv
Code:
Sub VenA()
  ar = Cells(1, 3).CurrentRegion
  For j = 1 To UBound(ar)
    If InStr(c00, ar(j, 1)) = 0 Then c00 = c00 & "/" & ar(j, 1)
  Next j
  Debug.Print Mid(c00, 2)
End Sub
 
"Super" of "bijna super", that's the question.
Mij lijkt het nuttiger ook "/" mee op te nemen in de zoektekst, want nu zal, en ik verzin zo maar wat, als eerst "Freddy" is toegevoegd aan c00, en daarna "Fred" wordt aangetroffen, deze laatste niet worden toegevoegd. En dat is met grote waarschijnlijkheid toch de bedoeling (?)
 
Da's wel een goede @Enigmasmurf alleen maak ik code obv voorbeeldjes en niet op mogelijk omissies in niet geplaatste voorbeeldbestanden;)

Alternatief al moet het volgens mij ook direct met Filter kunnen dus zonder loop.

Code:
Sub VenA()
  ar = Cells(1, 3).CurrentRegion
  With CreateObject("Scripting.Dictionary")
    For j = 1 To UBound(ar)
      .Item(ar(j, 1)) = ""
    Next j
    c00 = Join(Application.Index(.keys, 0, 0), "/")
  End With
  Debug.Print c00
End Sub
 
alleen maak ik code obv voorbeeldjes
VenA, da's ook een oplossing, natuurlijk.
Zelf ben ik eerder van het principe dat een voorbeeld maar een voorbeeld is :d
Alternatief stukje code dat op de eerst ingeslagen weg verder gaat:
Code:
Sub enigmasmurf()
  ar = Cells(1, 3).CurrentRegion
  c00 = "/" & ar(1, 1) & "/"
  For j = 2 To UBound(ar)
    If InStr(c00, "/" & ar(j, 1) & "/") = 0 Then c00 = c00 & ar(j, 1) & "/"
  Next j
  Debug.Print Mid(c00, 2, Len(c00) - 2)
End Sub
 
Alternatief stukje code dat op de eerst ingeslagen weg verder gaat:
Dat had je al vermeld vandaar het alternatief.

Gaat zo ook wel goed denk ik.
Code:
If InStr(c00, ar(j, 1) & "/") = 0 Then c00 = c00 & "/" & ar(j, 1)
tenzij iemand /Fred of /Fred/ of wat jij maar verzinnen wil heet.:p
 
Laatst bewerkt:
Code:
c00 = Join(.keys, "/")
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan