Avatar billede gunnarb Mester
22. marts 2005 - 16:47 Der er 6 kommentarer og
1 løsning

Kopiere fra et excel ark til første ledige række i et andet ark

Kan man ved hjælp af makro (visual Basic)lave et lille program som kopier nogle celler fra et excel regneark og indsætter det i et andet excel regneark. Hver gang programment køres, skal det indsætte  de kopierede cellerne på den næste ledige række f.eks.  C90 C91 C92 C93 osv.?
Avatar billede martin_moth Mester
23. marts 2005 - 06:56 #1
Yep, det er let nok. Du skal nok bare være mere præcis mht. hvad du vil. Hvilke celler fra hvilket ark skal kopieres til hvilke andre celler på hvilket andet ark og hvornår?
Avatar billede gunnarb Mester
23. marts 2005 - 10:47 #2
Jeg har faktisk indspillet en makro som næsten udføre opgaven, problemet er bare at det indsættes på samme sted hele tiden, og det jeg vil have er at det heletiden finder næste ledige række og indsætter det her. Jeg har et ark der hedder "præmier" (ja det er onsdagslotto) og et ark der hedder "statestik Vik".  I ark "præmier indtaster jeg hver uge de 6 rigtige tal + 2 tillægstal. Disse tal ønsker jeg hver uge at kopiere til ark "Statestik Vik" såleds at hver uger står på en ny række, men makroen skal selv finde den næste ledige række.
Fra ark "Præmier" skal kopieres til ark "Statestik Vik":
 
Fra "Præmier" B15:B20 til "Statestik Vik"  D91:I91 og
Fra "Præmier" C15:C16 til "Statestik Vik"  K91:L91
Række 91 er næste ledige plads.   
Jeg er ikke så stiv i Visual Basis, men jeg kan godt gå ind og ændre nogle ting i programmet.
Et udsnit af programmet ser således ud, hvor jeg kopiere en celle af gangen, fordi (fra lodret til vandret).

Range("B15").Select
    Selection.Copy
    Sheets("Statestik Vik").Select
    Range("D91").Select              (første ledige række)tal 1
    ActiveSheet.Paste
    Sheets("Præmier").Select
    Range("B16").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Statestik Vik").Select
    Range("E91").Select                  (første ledige række) tal 2
    ActiveSheet.Paste

osv. til tal 6 + 2 tillægstal (det kan sikkert gøres meget mer enkelt)
Håber at i kan  hjælp
Avatar billede bak Forsker
23. marts 2005 - 19:10 #3
her er et forslag

Sub Makro1()
Dim rg1 As Range
Dim rg2 As Range
Dim rg3 As Range
   
    Set rg1 = Worksheets("Præmier").Range("B15:B20")
    Set rg2 = Worksheets("Præmier").Range("C15:C16")
    Set rg3 = Worksheets("Statestik Vik").Range("D1000").End(xlUp).Offset(1, 0)
    rg3.Resize(, 6) = Application.WorksheetFunction.Transpose(rg1)
    rg3.Offset(, 7).Resize(, 2) = Application.WorksheetFunction.Transpose(rg2)
End Sub
Avatar billede gunnarb Mester
23. marts 2005 - 23:28 #4
Ja mange tak for hjælpen det virkede perfekt, og nu fik jeg lært en hel del om VB, som jeg kan arbejde videre med.

send lige et svar "bak" så du kan få dine point.
Avatar billede bak Forsker
24. marts 2005 - 01:20 #5
godt det kunne bruges :-)
Avatar billede gunnarb Mester
24. marts 2005 - 01:53 #6
Jeg har accepteret, men hvad med point
Avatar billede gunnarb Mester
24. marts 2005 - 01:55 #7
Hvad gør jeg forkert
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