Avatar billede Greenseeker Praktikant
05. februar 2009 - 19:48 Der er 4 kommentarer og
1 løsning

Makrohjælp?

Hej!

Jeg har indtil nu kun arbejdet manuelt med makroer, altså selv optaget dem, men jeg kunne godt tænke mig at lære lidt om VBA. Årsagen er en makro der driller… Jeg har lige læst lidt af artiklen "Visual Basic for begyndere", men synes absolut ikke den er for begyndere… :o/
Lad mig først lige fortælle om det pågældende ark. Hæng på, for det kan godt blive lidt langt:

Har 2 ark i skemaet. Ark A hedder 'Indtast nyt skema' og ark B hedder 'Alle skemaer'. Det fungerer sådan at man indtaster data i et skema på ark A. Når man er færdig gemmer man (via en makro aktiveret af en knap i ark A) data fra skemaet til en liste i ark B. For at udpensle det helt, skal makroen gøre følgende:

Makroen skal kopiere...
D9 til D510
J9 til E510
P9 til F510
D13 til G510
M13 til H510
E19 til I510
E20 til J510
E21 (værdien) til K510
K20 til M510
K22 til N510
K23 (værdien) til O510
Q20 til Q510
Q22 til R510
Q23 (værdien) til S510

OBS! Alle kopieringerne er fra ark A til B, og skal selvfølgelig benytte destinationens format!

Dernæst skal listen i ark B (D11:S510) sorteres faldende efter datoerne i kolonne H (ingen overskrift).

Til sidst skal alle data i følgende celler i ark A slettes:
D9;J9;P9;D13;M13;E19;E20;K19;K20;K21;K22;Q19;Q20;Q21;Q22 - Og det var det hele…! :o)

Okay,  problemet:
Når jeg aktiverer makroen via knappen går der 5-7 sekunder, hvor skærmen står og flimrer mellem ark A og B indtil alt er klaret. Det virker ikke så overbevisende, og må kunne gøres bedre? I VBA fylder makroen 138 linjer, men min begrænsede viden om VBA gør at jeg ikke rigtig ved om (og hvordan) jeg kan gøre det kortere og mere effektivt. Det ville være nemt hvis der var én derude, der kunne konstruere hele VBA-koden, men jeg ville egentlig hellere have lidt tips til hvordan jeg bygger den op i dette ark, så jeg får lidt ud af det på længere sigt… Jeg kan godt sende skemaet eller de 138 linier, hvis det kan hjælpe på forståelsen… :o)
Avatar billede lerskov Praktikant
05. februar 2009 - 20:32 #1
Hvis du gerne vil undgå flimmer kan du indsætte følgende før og efter koden. Inden i SUB ()

Før din kode
Application.ScreenUpdating = False

Efter din kode
Application.ScreenUpdating = True
Avatar billede Greenseeker Praktikant
05. februar 2009 - 20:57 #2
Ok. De første linier ser sådan her ud:

Sub Gem()
'
' Gem Makro
'

'
    Range("D9:G9").Select
    Selection.Copy
    Sheets("Alle skemaer").Select
    Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False

Og de sidste:

  With ActiveWorkbook.Worksheets("Alle skemaer").Sort
        .SetRange Range("D11:S510")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("B6").Select
End Sub

Hvor skal det proppes ind? Og kunne du måske lige forklare hvad koden gør? :o)
Avatar billede lerskov Praktikant
05. februar 2009 - 21:20 #3
Sub Gem()
'
' Gem Makro
'

'
Application.ScreenUpdating = false
    Range("D9:G9").Select
    Selection.Copy
    Sheets("Alle skemaer").Select
    Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False

Og de sidste:

  With ActiveWorkbook.Worksheets("Alle skemaer").Sort
        .SetRange Range("D11:S510")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("B6").Select
Application.ScreenUpdating = True

End Sub

Koden slår skærm opdatering til og fra så du kan ikke se koden arbejde.
Avatar billede Greenseeker Praktikant
05. februar 2009 - 21:28 #4
Ahaaaaa! :o)

Det virker perfekt, du er dagens mand, lerskov!

Smid et svar!:o)
Avatar billede lerskov Praktikant
05. februar 2009 - 22:04 #5
Det var så lidt... ;-)
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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