03. september 2004 - 20:59Der er
24 kommentarer og 1 løsning
Sortere data til mange ark
Hej.
Jeg har et problem med et regneark til planlægning af timer på arbejde. Regnearket består af ca 60 kolonner og 700 rækker, og disse data skal så sorteres ud på de næste ark i regnearket efter den opgaveansvarlige, så hver ansvarlig kun skal gennemgå et ark med planlægning. Indtil videre har jeg klaret på dogme metoden med hvis formler, med da der kommer ca. 20 ark ialt med hver 60*70 formler, er det noget tungt at arbejde med, og jeg har faktisk været nodt til at slå automatisk genberegning fra, når jeg sorterer i hovedarket.
Findes der ikke en smartere måde at lave det på?
Hvis jeg får lidt hjælp, skulle det være muligt for mig at få en macro til at virke ;-)
Den ansvarlige vist ved initialer på 2 eller 3 tegn, og output arket har de samme initialer. Jeg er ikke i tvivl om at det er nemt for dig, men det er pænt svært for mig lige nu....
Public Sub CopyRækker(Ark As String) Dim RW As Integer RW = Worksheets(Ark).Range("A65536").End(xlUp).Row Worksheets(Ark).Rows("2:" & RW).ClearContents ' tømmer den opgaveansvarliges ark X = 2 RW = Worksheets("samlet").Range("A65536").End(xlUp).Row For i = 2 To RW If Worksheets("samlet").Range("D" & i) = Ark Then Worksheets("samlet").Rows(i & ":" & i).Copy Sheets(Ark).Paste Destination:=Worksheets(Ark).Cells(X, 1) X = X + 1 End If Next End Sub
Denne skal i arkmodulet for hver ansvarlig
Private Sub Worksheet_Activate() CopyRækker (ActiveSheet.Name) End Sub
den store kode skal være i et modul, ikke i arkmodulet, Når du højreklikker på fanen af et ark og vælg vis programkode Kan du i venstre side se dine arknavne.
Oppe i menulinien vælger du Insert > module
Nu kan du se ovre under arkene til venstre står Module1.
Se nu er Module1 makeret med grå baggrund, det er her den store kode skal være
Så skulle det være på plads, og den fører tallene om til de rigtige ark. Der er lige en vigtig ting jeg glemte at skrive. De første 4 linier er overskrifter, og skal bare være ens på alle ark.
Vær opmærksom på at de ansvarliges ark, bliver opdateret hver geng du går ind på deres ark, så sorteringen skal kobles på opdateringen, for at det virker ok.
Public Sub CopyRækker(Ark As String) Dim RW As Integer RW = Worksheets(Ark).Range("A65536").End(xlUp).Row ' finder sidste række på den opgaveansvarliges ark
Worksheets(Ark).Rows("5:" & RW).ClearContents ' tømmer den opgaveansvarliges ark X = 5 ' første række den skriver i på den opgaveansvarliges ark
RW = Worksheets("samlet").Range("A65536").End(xlUp).Row ' finder sidste brugte række i arket samlet For i = 2 To RW' begynder at læse fra række 2, da der som regl er en overskrift If Worksheets("samlet").Range("D" & i) = Ark Then' finder opgaveansvarliges initialer Worksheets("samlet").Rows(i & ":" & i).Copy' kopierer rækken hvis den skal Sheets(Ark).Paste Destination:=Worksheets(Ark).Cells(X, 1), sætter den ind på næste række i den opgaveansvarliges ark
X = X + 1' lægger 1 til rækken End If Next ' leder videre efter den næste der skal kopieres End Sub
Hvordan mener du at det er bedst at lære at lave macroer? Ved at sidde og bøvle med det, eller skal jeg på et kursus for at lære de grundlæggende ting ordentligt? Arb. har "pålagt" mig at lære at lave macroer, så jeg skal ikke selv betale omkostnignerne.
Sæt din makro til at optage en makro, lav nogle enkelte handlinger, stop den og se hvad den skriver, ret i det for at se om det stadig virker, ved at køre makroen, lær af det.
Gør dem sværer og sværer.
Og følg med på eksperten, både i Excel og Visual basic VB6, de er meget ens.
Ok, jeg prøver at lege med det. Jeg har ikke brugt macro optageren ret meget, men det kunne da godt ske at jeg også skulle se lidt på den.
Jeg har søgt en del her på eksperten, og har også lært lidt af det, selv om det er svært at følge med nogle gange, når man ikke har det grundlæggende på plads.
Gør som mig, Lav et Excel ark, Kald den Makrokoder, find spændende makroer, måske her på eksperten, kopier dem ind på cellerne i et ark, husk indsæt specielt og vælg tekst.
Kopier også linket til spørgsmålet ind i en celle ved siden af, så kan du altid se forklaringen.
Engang når du får tid, leg med makroerne ved at sætte dem ind i modulet, og se hvad de kan.
Synes godt om
Ny brugerNybegynder
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.