VBA Dictionary

Status
Niet open voor verdere reacties.

koenkidv

Gebruiker
Lid geworden
12 apr 2012
Berichten
12
Beste Excellers,

ik heb een vraag over een comprimeerfunctie met vba.
Nu heb ik de volgende functie van waarschijnlijk de gebruikers snb en timshel.
Ik had deze vraag op worksheet.nl staan en kan dus helaas de link niet kopiëren
Ik had deze vraag perongeluk in de excel forum, niet wetende dat er ook een VBA deel was.

Wat ik nog weet van de vraag die ik zelf stelde is dat ik op zoek was naar een comprimeerfunctie doormiddel van vba.
In deze functie wou ik de waardes uit de 4de kolom achter elkaar gezet (C1+C2, dus C1,C2 Etc.)
en de waardes uit de 5de kolom opgeteld (1+1, dus 2)
Dit werkt allemaal perfect.

Nu de huidige vraag. Hoe kan ik ervoor zorgen dat kolom 34 ook opgeteld word net zoals kolom 5.
Ik hoor graag van julie
bedankt alvast
Koen
Code:
  Br = Range("A21:AI" & lastrange + 20)
    ReDim sq(1)
    With CreateObject("Scripting.Dictionary") ''''het aanroepen van de dictionary''''
        For p = 1 To UBound(Br)
             strS = Br(p, 1) & "|" & Br(p, 2) & "|" & Br(p, 3) & "|" & Br(p, 6) & "|" & Br(p, 7) & "|" & Br(p, 8) & "|" & Br(p, 9) & "|" & Br(p, 10) & "|" & Br(p, 11) & "|" & Br(p, 12) & "|" & Br(p, 13) & "|" & Br(p, 14) & "|" & Br(p, 15) & "|" & Br(p, 16) & "|" & Br(p, 17) & "|" & Br(p, 18) & "|" & Br(p, 19) & "|" & Br(p, 20) & "|" & Br(p, 21) & "|" & Br(p, 22) & "|" & Br(p, 23) & "|" & Br(p, 24) & "|" & Br(p, 25) & "|" & Br(p, 26) & "|" & Br(p, 27) & "|" & Br(p, 28) & "|" & Br(p, 29) & "|" & Br(p, 30) & "|" & Br(p, 31) & "|" & Br(p, 32) & "|" & Br(p, 33) & "|" & Br(p, 35) '''Selecteren van kolommen waarop gecomprimeerd moet worden''''
            sn = .Item(strS)
            If IsEmpty(sn) Then sn = sq
            .Item(strS) = Split(sn(0) & IIf(sn(0) = "", "", ",") & Br(p, 4) & ":)" & sn(1) + Br(p, 5), ":)")    '''''''kolommen geselecteerd waarop gesorteerd wordt''''''
        Next
        Blad1.Range("A21:AI" & lastrange + 20).ClearContents ''''leegmaken van kolom''''
        Blad1.Range("A21").Resize(.Count, 2) = Application.index(.Items, 0, 0) ''''locatie bepalen plus index'''' resultaat van comprimeren (optellen aantal + referenties)
        Blad1.Range("C21").Resize(.Count) = Application.Transpose(.Keys)            'overige kolommen uit dictionary neerzetten in 1 cel
        Blad1.Range("A21:AI" & lastrange + 20).Columns(3).TextToColumns , 1, , , 0, 0, 0, 0, -1, "|"    'splitsen van tekst naar kolommen
    End With
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan