Avatar billede Nuser2008 Mester
29. september 2020 - 20:23 Der er 3 kommentarer

Vælg fra drop down list

Hej Forum

Jeg har brug for hjælp!

Jeg har en Excel-fil med data i 10 kolonner, hvor sidste kolonne indeholder oplysning om brugerID'er, der er tilknyttet data i de 9 foregående kolonner. Jeg har i alt 150 brugerID'er, der i alt repræsenterer 25.000 rækker med data.

Jeg vil gerne med en makro kunne selektere, så jeg får isoleret alle brugerID 1's data, som jeg så vil kopiere ud i en separat fil. Dernæst skal jeg have isoleret alle brugerID 2's data, som jeg også vil kopiere ud i en separat fil, etc.

Hvordan gør jeg dette smartest? Jeg tænker der skal bruges noget loop, men hvordan jeg kan gennemløbe brugerID-listen og kopiere hver enkelt brugers unikke data ud i en fil, kan jeg ikke gennemskue. Det er jeg dog helt overbevist om, at den ekspertise findes her i forummet. På forhånd mange tak for hjælp.

Hilsen Arne
Avatar billede kim1a Ekspert
29. september 2020 - 21:48 #1
Er det en opgave som skal gentages mange gange? En pivot kan faktisk gøre nøjagtig hvad du beder om. Jeg beskriver som om du kender Pivot, så skriv hvis ikke du gør så laver vi en længere forklaring.
Lav pivottabel, sæt data op med brugerID som filter. I pivottabel analyse menuen kan du nu under indstillinger vælge filtersider (jeg oversætter fra Engelsk så det kan være det hedder lidt anderledes). Nu vil Excel lave en fane med hver brugerID og den opstilling du har valgt i pivoten.

Det kan naturligvis automatiseres hvis det giver mere mening, men det er lige før du kan optage de steps i vba optageren og så virker det fremadrettet.
Avatar billede Nuser2008 Mester
29. september 2020 - 23:05 #2
Hej Kim

Tak for dit svar. Jeg kan dog ikke rigtig gennemskue, hvordan en pivot er løsningen, for jeg skal have dannet 150 individuelle Excel-filer, svarende til antallet af brugerID'er. Så jeg skal på en eller anden måde kunne selektere brugerID for brugerID og kopiere brugernes data ud i separate filer. Men måske er pivot'en en genvej til at isolere brugerID og data?
Avatar billede kim1a Ekspert
30. september 2020 - 07:44 #3
AH, filer ikke faner - jeg har nok været for hurtig til at læse.

Ja det kunne være første skridt, og så gemme det hele som individuelle filer bagefter. Eller have en mellemting. Er du selv lidt ferm i VBA?

Her er uddrag fra en løsning jeg lavede der lyder meget som din, som du kan se skaber den først en pivot og udlæser derefter til faneblade, så mangler du blot at gemme de enkelte faneblade:

Sub skab_pivot_til_kontrol()

Dim IntSidsterækkenr As Integer, IntSidstekolonnenr As Integer
' Variable
IntSidsterækkenr = Sheets("Kontrolfil").Cells.SpecialCells(xlLastCell).Row
IntSidstekolonnenr = Sheets("Kontrolfil").Cells.SpecialCells(xlLastCell).Column

' Indsæt pivot
    Sheets("Pivot Kontrolfil").Activate
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Kontrolfil!R1C1:R" & IntSidsterækkenr & "C" & IntSidstekolonnenr, _
        Version:=xlPivotTableVersion14).CreatePivotTable TableDestination:="R3C1", TableName:="PivotTable1" _
        , DefaultVersion:=xlPivotTableVersion14
    With ActiveSheet.PivotTables("PivotTable1").PivotFields("Medarb. nr.:")
        .Orientation = xlPageField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("PivotTable1").PivotFields("Dato")
        .Orientation = xlRowField
        .Position = 1
    End With
    On Error Resume Next
        ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
        "PivotTable1").PivotFields("Timer"), "Sum of Timer", xlSum
    With ActiveSheet.PivotTables("PivotTable1").PivotFields("LønKat. tekst")
        .Orientation = xlColumnField
        .Position = 1
        .PivotItems("0").Visible = False
        .PivotItems("(blank)").Visible = False
    End With

End Sub

Sub skab_faneblade()

Sheets("Pivot Kontrolfil").Activate
ActiveSheet.PivotTables("PivotTable1").ShowPages PageField:="Medarb. nr.:"
UserForm1.Hide
MsgBox ("Mekanikerfaneblade skabt - gå til fanebladet start hvis du ønsker yderligere instruktion")
End Sub
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester