• 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 matrix in kolom weergeven

Status
Niet open voor verdere reacties.

SanderExcel

Gebruiker
Lid geworden
15 okt 2013
Berichten
10
Beste helpers,

VRAAG 1

Ik heb dit al in een oud topic gepost, maar dat stond als "afgerond", dus even een nieuw topic.

Ik heb een bestand met sportuitslagen. Rijen zijn posities in wedstrijden, kolommen zijn verschillende wedstrijden. De velden binnenin de matrix zijn dus gevuld met namen.

Ik wil nu in een ander tabblad alle voorkomende (unieke) namen onder elkaar zetten om middels een simpele verticaal-zoeken actie de resultaten per persoon in een rij te laten komen. Ik krijg het echter met een draaitabel niet voor elkaar, een filter werkt niet. Ik stuitte op deze thread bij mijn zoekacties, maar kreeg de macro niet werkend. Wie kan me helpen?

VRAAG 2
Ik ben in afwachting van het antwoord op vraag 1 alvast verder gegaan. Nu is het zo dat ik de <zoveel> beste resultaten van een sporter wil bewerken. Dat kan in principe eenvoudig met =LARGE. Niet iedere naam komt echter in iedere wedstrijd voor, dus zijn er vrij frequent foutmeldingen (#N/A). Omdat die foutmeldingen er zijn, werkt de functie =LARGE niet. Zoek-en-vervang kan natuurlijk niet op formulevelden... Hoe werk ik hier omheen?

Bij voorbaat dank!

PS: Misschien maakt het niet uit, maar ik gebruik Google Spreadsheets, geen MS Excel.
 
Update: Vraag 2 is inmiddels opgelost. Het is niet ideaal, maar het hele tabblad kopiëren, in een nieuw tabblad alleen de waarden kopiëren en dan zoek-en-vervang werkt natuurlijk wel. Dit levert een werkbare, maar niet ideale situatie.
Vraag 1 staat echter nog open.
 
Als antwoord op je VRAAG 1. Je moet eerst nog wel de bladnamen aanpassen.

Code:
Sub Overzicht()

    Dim dic As Object
    Set dic = CreateObject("Scripting.Dictionary")
    Application.ScreenUpdating = False
    For Each cl In Sheets("Blad1").Cells(1).CurrentRegion.Offset(1, 1).SpecialCells(2)
        If Not dic.exists(cl.Value) Then dic.Add cl.Value, Nothing
    Next cl
    
    With Sheets("Blad2")
        .Columns(1).ClearContents
        .Cells(1).Resize(dic.Count).Value = Application.Transpose(dic.keys)
    End With
    Application.ScreenUpdating = True
    
End Sub
 
Ehhh... dank. Denk ik.
Ik ben echter een dummy als het op macro's en scriptjes aan komt... hoe en waar voer ik dit in?

Waar het om gaat is dat ik in bijgaand bestandje in kolom A van het tabblad "berekening" een lijst wil hebben van alle unieke namen (waarden) in het bereik Uitslagen!B2:M62

Bekijk bijlage Voorbeeldbestand.xlsx
 
@WB

dat kan sneller/efficiënter met:

Code:
Sub Overzicht()
    With CreateObject("Scripting.Dictionary")
       sn=Sheets("Blad1").Cells(1).CurrentRegion.Offset(1, 1).SpecialCells(2)
       for each it in sn
          x0=.items(it)
       Next
    
      Sheets("Blad2").Columns(1).ClearContents
      Sheets("Blad2").Cells(1).Resize(.Count) = Application.Transpose(.keys)
    End With
End Sub

Geïnteresseerd in Dictionaries ?

zie : http://www.snb-vba.eu/VBA_Dictionary.html
 
Laatst bewerkt:
@ snb

Die heb ik allang doorworsteld.:D
Great stuff.:thumb:
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan