Avatar billede h_s Forsker
07. april 2007 - 09:45 Der er 12 kommentarer og
1 løsning

Kopier celleområde

Jeg skal bruge en makro, der kan kopier et celle område en fil til den fil, som jeg starter makroen fra (den fil har selv makroen)

Fil der skal kopieres fra: G:\test\stamdata.xls
Arket hedder Stamdata
Område: C4:CW24

Fil der skal kopieres til: "Der hvor makroen startes fra"
Arket hedder Stamdata
Område: C4:CW24

Kan nogen hjælpe mig?
Avatar billede supertekst Ekspert
07. april 2007 - 10:35 #1
rem Kode indsættes i ThisWorkbook i "ModtagerFilen"

Const kopierFraFil = "C:\Documents and Settings\pb\Skrivebord\0704KopierFraFil\Kildefil.xls"  'Tilpasses
Dim kXls
Sub KopierData()
    ActiveWorkbook.Sheets("Stamdata").Activate
 
    Set kXls = CreateObject("Excel.Application")
    With kXls
        .Workbooks.Open kopierFraFil
        .Sheets("Stamdata").Activate
        .Range("C4:CW24").Select
        .Selection.Copy
    End With
   
    ActiveSheet.Range("C4").Select
    ActiveSheet.Paste
   
    kXls.Application.DisplayAlerts = False
    kXls.Quit
    Set kXls = Nothing
   
    Cells(4, 3).Select
End Sub
Avatar billede kabbak Professor
07. april 2007 - 10:53 #2
Sub KopierData()
Application.ScreenUpdating = False
    Workbooks.Open Filename:="C:\test\stamdata.xls"
    Sheets("Stamdata").Range("C4:CW24").Copy ThisWorkbook.Sheets("Stamdata").Range("C4")
    ActiveWorkbook.Close False
    Application.ScreenUpdating = True
End Sub
Avatar billede kabbak Professor
07. april 2007 - 11:14 #3
ret lige
"C:\test\stamdata.xls"
til
"G:\test\stamdata.xls"
Avatar billede h_s Forsker
07. april 2007 - 17:16 #4
Hvad er forskellene i jeres bud på mit problem?
Jeg har prøvet kabbak' forslag, fordi det så mest enkelt ud, men er der noget som Supertekst gør "bedre/anderledes"?
Avatar billede kabbak Professor
07. april 2007 - 22:22 #5
jeg kan ikke se nogen forskel, min kode er bare som du ser mere enkelt, men  måske hurtigere.
Avatar billede h_s Forsker
08. april 2007 - 11:19 #6
Super - Hvad nu hvis denne makro skal ligge i Stamdata.xls på G-drevet og skal kaldes af en makro i den fil, som den skal kopieres TIL - kan det lade sig gøre?
Kan det lade sig gøre at kopier hele arket i stedet for et område og dermed erstatte et eksisterende ark - selvom der er kæder Til arket, som skal bibeholdes?
Avatar billede h_s Forsker
14. april 2007 - 18:09 #7
Har I glemt mig? :-)
Avatar billede kabbak Professor
14. april 2007 - 23:38 #8
" Kan det lade sig gøre at kopier hele arket i stedet for et område og dermed erstatte et eksisterende ark - selvom der er kæder Til arket, som skal bibeholdes?"

denne overskriver alle celler i modtager arket, kæder burde bibeholdes, men prøv at tjekke

Sub KopierData()
Application.ScreenUpdating = False
    Workbooks.Open Filename:="G:\test\stamdata.xls"
    Sheets("Stamdata").Cells.Copy ThisWorkbook.Sheets("Stamdata").Range("A!")
    ActiveWorkbook.Close False
    Application.ScreenUpdating = True
End Sub

hvor for vil du have makroen i "Stamdata.xls på G-drevet ", du skal jo alligevel have en makro for at kalde den.
Avatar billede h_s Forsker
15. april 2007 - 21:34 #9
Arkene der kopieres over i ligger mange forskellige steder. Mange af de oplysninger og beregninger, der ligger i de ark, er af lovgivningsmæssig karakter, såsom Skatteregler og beløb.
Når der så sker mindre ændringer i lovgivningen, er det så meningen at jeg vil lave en lille makro, der laver ændringen. Det kunne være ny beregningsmåde af ejendomsværdiskatten, ny skat, sletning af en gammel skat (Topskat hvis vi er heldige ;-) ) eller noget helt andet.
Opdateringen sker så ved at køre en makro fra arket med beregningerne, der så henter Stamdata fra G-drevet og køre en makro med ændringerne. (Jeg kender jo ikke de evt. ændringer endnu, så det er lidt svært at lave makroerne nu)
Der er nu ca. 200 filer, der skal laves om og indtastes i mit nye ark. Det har givet en del "uro" i afdelingen. Derfor vil jeg i den nye version kunne klare mindre ændringer uden at der skal indtastes om!
Avatar billede h_s Forsker
18. april 2007 - 20:31 #10
Har I opgivet ;-)
Avatar billede kabbak Professor
18. april 2007 - 20:51 #11
du skrev:

Jeg skal bruge en makro, der kan kopier et celle område en fil til den fil, som jeg starter makroen fra (den fil har selv makroen)

Jeg mener vi har svaret på det spørgsmål.

det med at kalde en makro i et anden projektmappe, vil jeg helst ikke ud i, jeg skal selv lære det først.

Det svære i det er at man ikke kan vide hvilken projektmappe der kalder, for der skal dataerne jo kopieres over i.
Avatar billede h_s Forsker
19. april 2007 - 17:15 #12
Du har fuldstændig ret :-)
Jeg har stillet det spørgsmål nogle gange efterhånden uden held, så dette var et forsøg på at tage et step ad gangen.
Det lykkedes så heller ikke :-)
Hvis du finder en løsning, så er der max point at hente. Du kan evt. sende en mail på henrik@southfarm.dk

Smid et svar!

Der var lige indsneget sig en lille fejl i dit forslag:

Sub KopierData()
Application.ScreenUpdating = False
    Workbooks.Open Filename:="G:\test\stamdata.xls"
    Sheets("Stamdata").Cells.Copy ThisWorkbook.Sheets("Stamdata").Range("A1") <---
    ActiveWorkbook.Close False
    Application.ScreenUpdating = True
End Sub
Avatar billede kabbak Professor
19. april 2007 - 17:37 #13
Jeg havde set fejlen, 1 og ! er på på samme tast, og man så ikke når at slippe Shift efter stort A, så glipper det.

Jeg regnede med at du selv fandt ud af det ;-))
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