Avatar billede ly Nybegynder
16. august 2004 - 12:06 Der er 6 kommentarer

Makro der automatisk tilpasses

Kan man lave en makro hvor en reference automatisk tilpasse fra situation til situation?

Hvis man f.eks. indspiller en makro der kopierer data fra celle a1:a12 og indsætter det i celle b1:b12. Kan man så lave makroen på en sådan måde at næste gang man bruger den, kopierer den data fra celle a1:a12 og indsætter det i celle b13:b25 (altså i enden af de tal der allerede er sat ind).

Det er ikke noget problem f.eks. at lave en formel der kan gengive navnet på den første celle der skal indsættes data i, måske kan det bruges i makroen.

Skriv endelig hvis I har brug for flere oplysninger for at kunne hjælpe.

/ly
Avatar billede bak Forsker
16. august 2004 - 12:22 #1
Sub test()
Range("A1:A12").Copy Range("B65536").End(xlUp).Offset(1, 0)
End Sub
Avatar billede ly Nybegynder
16. august 2004 - 13:07 #2
Tak

Hvad så hvis jeg skal kopiere A1:A12 til B1:b12 i et andet ark (sheet2)? Og data også hele tiden skal sættes ind i bunden. Er der noget specielt man så skal være opmærksom på? Synes nemlig ikke lige jeg kan få det til at fungere....

/ly
Avatar billede bak Forsker
16. august 2004 - 13:37 #3
Nope, du skal bare have sheetet foran range
Activesheet er det du står (det med data i A1:A12)

Sub test()
ActiveSheet.Range("A1:A12").Copy Sheets("Sheet2).Range("B65536").End(xlUp).Offset(1, 0)
End Sub
Avatar billede bak Forsker
16. august 2004 - 13:49 #4
Måske alligevel noget du skal passe på:
Det skal være mindst 1 tal / overskrift allerede i sheet2 kolonne B inden du starter
Avatar billede ly Nybegynder
16. august 2004 - 14:16 #5
Og så er der bare lige lidt mere .... Hvis nu jeg skal indsætte data som transponer, fordi jeg har data i B5:e5 og de skal stå i kollonne e (i bunden) hvordan kæder jeg så det ind i makroen? Min makro ser pt. sådan her ud:

Sub indsæt_makro()

ActiveSheet.Range("b5:e5").copy Sheets("dataark").Range("e65536").End(xlUp).Offset(1, 0)
End Sub

Men der skal på en måde noget paste.special med ind, så jeg kan indsætte data fra vandret til lodret.

Og en ting mere - hvordan giver jeg dig point ??

/ly
Avatar billede bak Forsker
16. august 2004 - 14:41 #6
Sub test()
Dim rng As Range
ActiveSheet.Range("B5:E5").Copy
Set rng = Sheets("Sheet2").Range("E65536").End(xlUp).Offset(1, 0)
rng.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Application.CutCopyMode = False
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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