PedroFC Skrevet 14. desember 2011 Del Skrevet 14. desember 2011 (endret) Ønsker å lage en liste ut i fra to tabeller. Se bilde: Det oransje feltet er utgangspunktet, og det grønne er starten på en slik tabell jeg vil makroen skal kjøre. Det vil si jeg ønsker makroen skal hente et navn fra gruppering 1-5 (øverste tabell). La oss si Per. Han er i gruppe 1 og 5. Dermed vil jeg at makroen skal legge tallene i fra tabell 2 i gruppe 1 og 5 som en liste nedover sammen med navnet hans. Ønsker at det samme skal skje med de andre navnene. Har jobbet litt i VBA tidligere, men nå er det så lenge siden at jeg ikke helt vet hvor jeg skal starte Er det noen som har et forslag til hvordan å angripe denne utfordringen? Endret 15. desember 2011 av PedroFC Lenke til kommentar
Alexen Skrevet 16. desember 2011 Del Skrevet 16. desember 2011 Hei! Her er et forslag som kanskje kan fungere: - Begynn med å hente unike navn og tilhørende kategorier fra den øverste tabellen. For å lagre dette kan du jo kanskje bruke en array av en Type som f.eks Type Person Navn as String Kategorier(9) as Integer End Type Dim Personer(9) as Person for å sørge for at det blir unikt må du for hver celle du leser inn sjekke om det navnet allerede finnes i Personer arrayen, hvis det ikke gjør det oppretter du e ny og hvis det gjør det så legger du til den kategorien du nå står i. - Deretter går du igjennom den nederste tabellen og henter verdiene til de ulike kategoriene, disse kan du f.eks lagre i en 2d-array, kategoridata(katnr, verdinr) ellerno. - Nå kan du gå igjennom alle personene i Personer, gå igjennom alle deres kategorier og hente verdiene fra den 2d-arrayen og skrive ut disse. Ble muligens noe rotete forklart sånn midt på natta, men håper det kan gi litt ideer ihvertfall Lenke til kommentar
PedroFC Skrevet 16. desember 2011 Forfatter Del Skrevet 16. desember 2011 Tusen takk for svaret. Fant en annen måte å gjøre det jeg ville på nettet. Sub aaa() For Each ce In Range("A2:E4") For j = 9 To Cells(Rows.Count, ce.Column).End(xlUp).Row outrow = Cells(Rows.Count, "G").End(xlUp).Offset(1, 0).Row Cells(outrow, "G").Value = ce Cells(outrow, "H").Value = Cells(j, ce.Column) Next j Next ce Range("G:H").Sort key1:=Range("G1"), order1:=xlAscending End Sub Funket glimrende.. Men jeg har også lyst til at det legger seg enda en kolonne i output som sier hvilke gruppe nummeret og tilhørende navn er hentet fra. For feks. Per vil jeg at det skal komme "Per","4646", "1". Når tallene er hentet fra gruppe 5: "Per","561","5"..osv. Noen forslag på hvordan jeg kan innkludere dette i makroen ovenfor? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå