Avatar billede chicoboy Novice
22. april 2012 - 20:45 Der er 9 kommentarer og
1 løsning

Makro der markerer et område og kopirerer det til højre

Jeg vil gerne indspille en makro, der når jeg står i en celle markerer alle data nedenunder cellen indtil der mødes en tom celle og cellerne til højre herfor. Disse skal alle kopieres en tak til højre.

      C      D
3    peter    14
4    hans    23
5    birgit    33

Fx - står i C3 - og så få området C3:D5 kopieret til D3:E5 med makroen.

Makroen skal virke uafhængigt af hvilken celle der er "startcelle" og uafhængigt af antal rækker.


Jeg har selv optaget en makro (relativ reference) hvor jeg makerer C3 - taster ctrl+shift+pil ned for at markere data nedad og så pil til højre for at få disse data markeret også - dernæt ctrl C flyt til højre og ctrl V.

Makroen virker da også men altid kun på tre rækker (jf eksemplet)

Hvad gør jeg forkert?
Avatar billede store-morten Ekspert
22. april 2012 - 21:12 #1
Måske

står i C3

Kør makro:
Sub Makro1()
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Cut
    Range(Selection, Selection).Offset(0, 1).Select
    ActiveSheet.Paste
End Sub

C3:D5 flyttes til D3:E5 med makroen.
Avatar billede store-morten Ekspert
22. april 2012 - 21:36 #2
Ps. Evt. data i kolonne E og udaf flyttes med.
Avatar billede store-morten Ekspert
22. april 2012 - 21:38 #3
Måske

står i C3

Kør makro:
Sub Makro2()
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.Offset(0, 1)).Select
    Selection.Cut
    Range(Selection, Selection).Offset(0, 1).Select
    ActiveSheet.Paste
End Sub

Ps. Evt. data i kolonne E overskrives.
Avatar billede chicoboy Novice
22. april 2012 - 22:16 #4
Tak - det virker!

Et par småting.

Hvis makroen kører på en enkelt række - markerer den ned til hvor den møder data igen - kan man undgå det?

hvad skal jeg tilføje for at curseren bliver i den oprindelige kolonne? (altså flytter 1 til venste efter kopiering)
Avatar billede chicoboy Novice
22. april 2012 - 22:17 #5
hov - det var ikke meningen det skulle være et pointsvar - kan du ikke sende det
Avatar billede store-morten Ekspert
22. april 2012 - 22:34 #6
Sub Makro1()
home = ActiveCell.Address
homeArk = ActiveSheet.Name

    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Cut
    Range(Selection, Selection).Offset(0, 1).Select
    ActiveSheet.Paste
    Range(Selection, Selection).Offset(0, 0).Select
   
Sheets(homeArk).Select
Range(home).Select
End Sub
Avatar billede store-morten Ekspert
22. april 2012 - 23:01 #7
Prøv:
Sub Makro3()
home = ActiveCell.Address
homeArk = ActiveSheet.Name

Do Until IsEmpty(ActiveCell)
  ActiveCell.Offset(1, 0).Select
Loop
emty = ActiveCell.Offset(-1, 0).Address

    Range(home, emty).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Cut
    Range(Selection, Selection).Offset(0, 1).Select
    ActiveSheet.Paste
    Range(Selection, Selection).Offset(0, 0).Select
   
Sheets(homeArk).Select
Range(home).Select
End Sub
Avatar billede store-morten Ekspert
22. april 2012 - 23:06 #8
Sub Makro1()
home = ActiveCell.Address
homeArk = ActiveSheet.Name

Do Until IsEmpty(ActiveCell)
  ActiveCell.Offset(1, 0).Select
Loop
  emty = ActiveCell.Offset(-1, 0).Address

    Range(home, emty).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Cut
    Range(Selection, Selection).Offset(0, 1).Select
    ActiveSheet.Paste
   
Sheets(homeArk).Select
Range(home).Select
End Sub
Avatar billede chicoboy Novice
22. april 2012 - 23:28 #9
Tak - helt perfekt nu!
Avatar billede store-morten Ekspert
22. april 2012 - 23:30 #10
Velbekomme, og tak for Point ;-)
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