14. maj 2007 - 10:38Der er
17 kommentarer og 1 løsning
Hente data fra anden fil
Hej
Jeg vil gerne kopierer data fra anden excel fil, vha. af makro, hvorledes gør jeg mon lettest det ... jeg ved at jeg kunne bruge dataforbindelse eller åbne arket og kopi paste ...
Word-hajen: Jeg har prøvet at Kopierer og justerer til ...
Men ... efter kopiering vil jeg jo gerne lukke det ark jeg henter i. hvorefter jeg bliver spurgt om jeg vil gemme de data jeg har i min udklipsholder ... og det vil jeg jo mægtig gerne :)
Hvorfor vil du gemme det kopierede i udklipsholderen? Når først du har sat det ind i den anden fil, er der vel ingen grund til at gemme det i udklipsholderen?
Jeg har nok pillet ved indstillingerne til klippebordet, for jeg oplever det ikke. Jeg ville ikke lukke "hente fra"-arket, inden jeg satte det kopierede ind. Kopier, sæt ind, luk. Det ville klart være min foretrukne (og dermed også min anbefaling).
Finde tilbage? Hvor vil du tilbage til? Hvis du har brugt en del af min kode, har du formentlig også et objekt, som kan aktivere den rigtige fil/evt. ark for dig igen.
Smid evt. din kode herinde og fortæl mig, hvad du vil.
Jovist et objekt, i den fil jeg åbner, men ikke i den jeg har åben. Og jeg ved ikke hvad jeg skal skrive for at aktiverer objekterne, altså for at kunne skifte mellem dem.
Her lidt kode, med indføjet det som jeg tror at jeg mangler ...
Public Sub Hentkundedata() Dim objRange As Range Dim strFileName As String Dim objWB_kdata As Workbook Dim objWS_kdata As Worksheet Dim objWB_tilbud As Workbook
If strFileName <> "" Then If Dir(strFileName) <> "" Then Set objWB_kdata = Workbooks.Open(strFileName) Set objRange = ActiveWorkbook.Sheets("kundedata").Range("A3:r100") objRange.Copy
hvad er der galt med en dataforbindelse, som du selv nævner? Det er ret effektivt og hvis dataene i arket hvor du henter i bliver opdateret, bliver det opdateret i arket der henter ved klik på opdater knappen
Der er intet i vejen med dataforbindelse, i det her tilfælde vil det være bruger afhængig / situationsbestemt hvilken fil dataerne skal hentes fra, og den enkelte bruger er ikke nødvendigvis vidende om, hvorledes de skifte datafil.
Jeg har tidligere forsøgt, at få makro til automatisk at oprette dataforbindelsen og så hente via den, med det lykkedes mig aldrig at få det array'et til at spille til at spille, så brugeren blot indtastede "data filens navn". Jvf. http://www.eksperten.dk/spm/775145 - kunne det lykkedes ville jeg nok vælge den.
udtryk for det aktive ark, når du starter? I så fald skal du bare skrive:
Set objWB_tilbud = ActiveWorkbook
Hvis du så senere har behov for at tilgå noget i "tilbudsfilen", bruger du bare denne reference. F.eks.:
objWB_tilbud.Sheets(1)..... (et eller andet)
I øvrigt en kommentar til din kode - når du har kopieret dit range (objRange.Copy), bør du sætte det kopierede ind, før du begynder på noget andet (du skriver: "Her skal jeg så tilbage og arbejde i tilbudet").
Mht. linjen Range("A3").Select - hvis du kigger i min kode, vil du se, at jeg ikke selecter... jeg sætter et range i stedet, som jeg så "smider" det kopierede ind i. På den måde er du fri for at få din markør til at "hoppe rundt" mellem filer, ark, celler osv.
Og jo vidste blot ikke, hvad jeg skulle skrive, derfor "det åbne tilbud"
Ligeledes med "Her skal jeg så tilbage og arbejde i tilbudet" ... vidste ikke hvorledes jeg kunne skrive til tilbudsarket. Og naturligvis indsætte før vidre arbejde.
Og her har jeg får den hjælp jeg havde brug for. Det passer mig godt ikke få løsningen, men at have den i stå lidt på tå afstand.
Synes godt om
Ny brugerNybegynder
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.