Avatar billede jmarques Nybegynder
09. januar 2012 - 23:06 Der er 33 kommentarer og
1 løsning

Knap til import af excel data

Hej,

Jeg skal bruge en knap der henter data fra en anden mappe på vores server. Hvis knappen kan spørge om et specifikt regneark i den mappe hvor regnearkene ligger, vil det vil kanon.

Der kommer nye mapper for hvert år som det fremgår af trådene.

Stien til mappen hedder:

P:\Gaming Floor\Table Results

Undermapper er inddelt efter årstal:

P:\Gaming Floor\Table Results\Table Results 2012

Efter måneder:

P:\Gaming Floor\Table Results\Table Results 2012\Januar 2012

Og til sidst er selve regnearkene døbt:

"P:\Gaming Floor\Table Results\Table Results 2012\Januar 2012\010112.xls"

Alternativt hvis det er muligt kan en celle hente disse data ved indtastning af en dato i cellen måske ?

Hvis dette er muligt skal den hente data fra dagen før, for at gøre det rigtig besværligt :-)

Tak for hjælpen på forhånd.

Mvh
Joachim
09. januar 2012 - 23:30 #1
Bruger er blevet udelukket fra forum

Dette indlæg er blevet modereret af en CoAdmin

Avatar billede jmarques Nybegynder
09. januar 2012 - 23:38 #2
Prøver du at være morsom ??
09. januar 2012 - 23:47 #3
Spam

Dette indlæg er blevet modereret af en CoAdmin

Avatar billede x-lars Novice
10. januar 2012 - 13:38 #4
Prøv med:

Sub hent_resultater()

Dato = InputBox("Hvilken dato?", "Dato", "01")
Monthy = InputBox("Hvilken måned?:", "Måned", "01")
År = InputBox("Hvilket år er vi i?:", "År", "2012")

If Monthy = 1 Then Month2 = "Januar"
If Monthy = 2 Then Month2 = "Februar"
If Monthy = 3 Then Month2 = "Marts"
If Monthy = 4 Then Month2 = "April"
If Monthy = 5 Then Month2 = "Maj"
If Monthy = 6 Then Month2 = "Juni"
If Monthy = 7 Then Month2 = "Juli"
If Monthy = 8 Then Month2 = "August"
If Monthy = 9 Then Month2 = "September"
If Monthy = 10 Then Month2 = "Oktober"
If Monthy = 11 Then Month2 = "November"
If Monthy = 12 Then Month2 = "December"

År2 = Right(År, 2)

Vupti = "P:\Gaming Floor\Table Results\Table Results " & År & "\" & Month2 & " " & År & "\" & Dato & Monthy & År2 & ".xls"

Workbooks.Open FileName:=Vupti

End Sub
Avatar billede jmarques Nybegynder
10. januar 2012 - 19:24 #5
SUUUPER det spiller bare - tusind tak for hjælpen.

Lav et svar så du kan få dine point.

Mvh
Joachim
Avatar billede jmarques Nybegynder
10. januar 2012 - 19:46 #6
Nyt spørgsmål hvis du gider ?

Kan jeg sammenflette de to ark sådan at knappen importerer men også placerer det i en bestemt celle - eller rettere i det antal celler (kolonner og rækker?)som det andet ark fylder ?

På forhånd tak.

mvh
Joachim
Avatar billede x-lars Novice
11. januar 2012 - 14:26 #7
Så kunne den sådan ud - husk at tilrette fil- og arknavn nederst i koden.

Sub hent_resultater()

Dato = InputBox("Hvilken dato?", "Dato", "01")
Monthy = InputBox("Hvilken måned?:", "Måned", "01")
År = InputBox("Hvilket år er vi i?:", "År", "2012")

If Monthy = 1 Then Month2 = "Januar"
If Monthy = 2 Then Month2 = "Februar"
If Monthy = 3 Then Month2 = "Marts"
If Monthy = 4 Then Month2 = "April"
If Monthy = 5 Then Month2 = "Maj"
If Monthy = 6 Then Month2 = "Juni"
If Monthy = 7 Then Month2 = "Juli"
If Monthy = 8 Then Month2 = "August"
If Monthy = 9 Then Month2 = "September"
If Monthy = 10 Then Month2 = "Oktober"
If Monthy = 11 Then Month2 = "November"
If Monthy = 12 Then Month2 = "December"

År2 = Right(År, 2)

Vupti = "C:\Gaming Floor\Table Results\Table Results " & År & "\" & Month2 & " " & År & "\" & Dato & Monthy & År2 & ".xls"

Workbooks.Open FileName:=Vupti

Selection.SpecialCells(xlCellTypeLastCell).Select

Selection.Copy

Windows("Slet_mig.xlsx").Activate
Sheets("Ark1").Range("a1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Application.CutCopyMode = False



End Sub
Avatar billede x-lars Novice
11. januar 2012 - 14:27 #8
Hov! C-drevet skal også lige ændres til P!
Avatar billede jmarques Nybegynder
14. januar 2012 - 20:29 #9
Kanon tak for det !

Jeg løber ind i lidt problemer jeg har gjort følgende:

Sub hent_resultater()

Dato = InputBox("Hvilken dato?", "Dato", "01")
Monthy = InputBox("Hvilken måned?:", "Måned", "01")
År = InputBox("Hvilket år er vi i?:", "År", "2012")

If Monthy = 1 Then Month2 = "Januar"
If Monthy = 2 Then Month2 = "Februar"
If Monthy = 3 Then Month2 = "Marts"
If Monthy = 4 Then Month2 = "April"
If Monthy = 5 Then Month2 = "Maj"
If Monthy = 6 Then Month2 = "Juni"
If Monthy = 7 Then Month2 = "Juli"
If Monthy = 8 Then Month2 = "August"
If Monthy = 9 Then Month2 = "September"
If Monthy = 10 Then Month2 = "Oktober"
If Monthy = 11 Then Month2 = "November"
If Monthy = 12 Then Month2 = "December"

År2 = Right(År, 2)

Vupti = "P:\Gaming Floor\Table Results\Table Results " & År & "\" & Month2 & " " & År & "\" & Dato & Monthy & År2 & ".xls"

Workbooks.Open Filename:=Vupti

Selection.SpecialCells(xlCellTypeLastCell).Select

Selection.Copy

Windows("Slet_mig.xlsx").Activate
Sheets("Test Skabelon (m. table result macro)").Range("H15").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Application.CutCopyMode = False


End Sub

Jeg får en "run-time error 1004" i linien:

Selection.SpecialCells(xlCellTypeLastCell).Select

Hvad gør jeg mon forkert ?

mvh
Joachim
Avatar billede x-lars Novice
15. januar 2012 - 10:51 #10
Hmmm....

Umiddelbart skal vi have en linie ind, der aktiverer det ark i projektmappen, som der skal kopieres fra. Herefter skulle koden Selection.SpecialCells(xlCellTypeLastCell).Select markere fra første og til sidste anvendte celle.

Dernæst skal vi have rettet henvisningen til "Slet_mig.xls" til at pege på den anden projektmappe, som du kører koden fra og hvor vi skal have kopien til at havne.

Min mail x_lars at yahoo .com, hvis du vil sende mig filerne - så skal jeg kigge på det.

MVH Lars
Avatar billede jmarques Nybegynder
18. januar 2012 - 21:05 #11
Hej Lars jeg har ikke været på min pind et par dage - jeg skal lige se på det.

Mvh
Joachim
Avatar billede jmarques Nybegynder
19. januar 2012 - 01:16 #12
Hej igen Lars,

Min chef er åbenbart ikke så glad for at jeg mailer dig filerne desværre.

Er der mulighed for at vi kan arbejde videre med det alligevel ?

Hvis der er hvad mangler du af info.

De ark som knappen henter er skrivebeskyttet har det evt noget at sige ?

Mvh
Joachim
Avatar billede jmarques Nybegynder
19. januar 2012 - 01:47 #13
Lidt mere info:

I den mappe på stien : P:\Gaming Floor\Table Results\Table Results, hvori arket ligger der hentes via din knap, bruger man åbenbart kun det sheet der hedder Sheet2.

Arket er også sat til at åbne i Sheet2 når de bruger det til indtastning af data.

Det fylder fra celle A1 til celle BE32.
Avatar billede x-lars Novice
19. januar 2012 - 12:32 #14
Prøv at erstatte

Selection.SpecialCells(xlCellTypeLastCell).Select

Selection.Copy

med

Sheets("Sheet2").Range("A1:BE32").Copy

Filnavnet "Slet_mig.xlxs" skal også erstattes med din mål-projektmappe (altså dér, hvor kopien skal bruges).
Avatar billede jmarques Nybegynder
19. januar 2012 - 22:34 #15
Du er inde på noget af det rigtige når den henter arket kan jeg se at det er ved at blive kopieret (stiplede linier omkring de data der skal kopieres).

Jeg får dog run-time error 9, subscript out of range, i linie:

Windows("P:\Gaming Floor\Table Results\Table Results 2012\Januar 2012\010112.xls").Activate

Koden er kommet til at se således ud i sin helhed:

Sub hent_resultater()

Dato = InputBox("Hvilken dato?", "Dato", "01")
Monthy = InputBox("Hvilken måned?:", "Måned", "01")
År = InputBox("Hvilket år er vi i?:", "År", "2012")

If Monthy = 1 Then Month2 = "Januar"
If Monthy = 2 Then Month2 = "Februar"
If Monthy = 3 Then Month2 = "Marts"
If Monthy = 4 Then Month2 = "April"
If Monthy = 5 Then Month2 = "Maj"
If Monthy = 6 Then Month2 = "Juni"
If Monthy = 7 Then Month2 = "Juli"
If Monthy = 8 Then Month2 = "August"
If Monthy = 9 Then Month2 = "September"
If Monthy = 10 Then Month2 = "Oktober"
If Monthy = 11 Then Month2 = "November"
If Monthy = 12 Then Month2 = "December"

År2 = Right(År, 2)

Vupti = "P:\Gaming Floor\Table Results\Table Results " & År & "\" & Month2 & " " & År & "\" & Dato & Monthy & År2 & ".xls"

Workbooks.Open Filename:=Vupti

Sheets("Sheet2").Range("A1:BE32").Copy

Windows("P:\Gaming Floor\Table Results\Table Results 2012\Januar 2012\010112.xls").Activate
Sheets("Ark1").Range("a1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Application.CutCopyMode = False


End Sub

Er det denne linie der skal ændres. Der hvor der står Ark1 og a1 ?:

Sheets("Ark1").Range("a1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Avatar billede x-lars Novice
20. januar 2012 - 09:45 #16
Hvis jeg forstår dit oprindelige spørgsmål korrekt, står du i en projektmappe - lad os kalde den "målet.xls" - og kører makroen derfra. Makroen åbner en anden fil - "kilden.xls" - og kopierer nogle data i denne. Herefter skifter du tilbage til målet.xls og sætter de data, som er kopieret fra kilden.xls ind hér.

I kilden ligger data på arket Sheet2(A1:BE32)
I målet skal kopierede data indsættes på Sheet2 fra H15

Er det korrekt forstået? Især er arknavnene korrekte?
Avatar billede jmarques Nybegynder
21. januar 2012 - 00:28 #17
Ja det er korrekt forstået på nær et enkelt ark i målet:

"I målet skal kopierede data indsættes på Sheet2 fra H15".

I målet er alle ark nummereret fra nr. 1 - 31 og hedder kun selve tallet. Dvs. vi bruger 1 til d. 1. i måneden, 2 til den 2. osv frem til 31). 

Min tanke er at lave en knap i hvert ark fra 1 - 31.

Jeg har en skabelon der hedder - Tapelog Skabelon som jeg om døber efter hvilken måned vi kommer til Januar hedder Januar 2012.

Så det er i skabelonen jeg vil placere knapperne i hvert ark fra 1 - 31. Så når jeg om døber skabelonen indeholder f.eks projektmappe Januar 2012 knapper der kan bruges i det ark vi er nået til.
Avatar billede x-lars Novice
24. januar 2012 - 10:23 #18
Prøv med:

Husk at ændre Slet_mig.xls til navnet på din mål-projektmappe - er ikke helt med på, om det er den, der hedder "januar 2012.xls"

Du behøver ikke gentage knappen på hvert dato-ark. Den kunne fint ligge én gang på en forside og så vælger den selv det rigtige dato-ark.

Sub hent_resultater()

Dato = InputBox("Hvilken dato?", "Dato", "01")
Monthy = InputBox("Hvilken måned?:", "Måned", "01")
År = InputBox("Hvilket år er vi i?:", "År", "2012")

If Monthy = 1 Then Month2 = "Januar"
If Monthy = 2 Then Month2 = "Februar"
If Monthy = 3 Then Month2 = "Marts"
If Monthy = 4 Then Month2 = "April"
If Monthy = 5 Then Month2 = "Maj"
If Monthy = 6 Then Month2 = "Juni"
If Monthy = 7 Then Month2 = "Juli"
If Monthy = 8 Then Month2 = "August"
If Monthy = 9 Then Month2 = "September"
If Monthy = 10 Then Month2 = "Oktober"
If Monthy = 11 Then Month2 = "November"
If Monthy = 12 Then Month2 = "December"

År2 = Right(År, 2)

Vupti = "P:\Gaming Floor\Table Results\Table Results " & År & "\" & Month2 & " " & År & "\" & Dato & Monthy & År2 & ".xls"

Workbooks.Open FileName:=Vupti

Sheets("Sheet2").Range("A1:BE32").Copy

Windows("Slet_mig.xlsx").Activate
Sheets(Dato).Range("H15:BL47").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

Application.CutCopyMode = False
Avatar billede jmarques Nybegynder
24. januar 2012 - 20:38 #19
Jeg har ændret koden Windows("Slet_mig.xlsx").Activate til:

Sub hent_resultater()

Dato = InputBox("Hvilken dato?", "Dato", "01")
Monthy = InputBox("Hvilken måned?:", "Måned", "01")
År = InputBox("Hvilket år er vi i?:", "År", "2012")

If Monthy = 1 Then Month2 = "Januar"
If Monthy = 2 Then Month2 = "Februar"
If Monthy = 3 Then Month2 = "Marts"
If Monthy = 4 Then Month2 = "April"
If Monthy = 5 Then Month2 = "Maj"
If Monthy = 6 Then Month2 = "Juni"
If Monthy = 7 Then Month2 = "Juli"
If Monthy = 8 Then Month2 = "August"
If Monthy = 9 Then Month2 = "September"
If Monthy = 10 Then Month2 = "Oktober"
If Monthy = 11 Then Month2 = "November"
If Monthy = 12 Then Month2 = "December"

År2 = Right(År, 2)

Vupti = "P:\Gaming Floor\Table Results\Table Results " & År & "\" & Month2 & " " & År & "\" & Dato & Monthy & År2 & ".xls"

Workbooks.Open Filename:=Vupti

Sheets("Sheet2").Range("A1:BE32").Copy

Windows("P:\Gaming Floor\Table Results\Table Results.xlsx").Activate
Sheets(Dato).Range("H15:BL47").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Application.CutCopyMode = False

Desværre skiver den:

Compile Error
Expected End Sub
Avatar billede x-lars Novice
25. januar 2012 - 06:25 #20
UPS, ja den var smuttet - men så skriver du bare "End sub" efter den sidste linje i koden.
Avatar billede jmarques Nybegynder
01. februar 2012 - 15:40 #21
Undskyld ventetiden !

Nu får jeg run-time error 9 Subscript out of range i linie:

Windows("P:\Gaming Floor\Table Results\Table Results.xlsx").Activate
Avatar billede x-lars Novice
01. februar 2012 - 16:12 #22
Du skal nok ikke have stien med i det link, da du allerede har denne mappe åben. Altså:


Windows("Table Results.xlsx").Activate
Avatar billede jmarques Nybegynder
01. februar 2012 - 16:20 #23
Jeg har lige prøvet jeg får samme fejlmelding bare i linjen nedenunder?
Avatar billede x-lars Novice
01. februar 2012 - 23:20 #24
Og arkene er navngivet præcis med datoen - ingen punktummer eller mellemrum eller lignende, kun tallet?
Avatar billede jmarques Nybegynder
02. februar 2012 - 11:30 #25
Ja det er de.

Arket fra 1. Januar 2012 hedder: 010112

Og ligger i mappen der hedder Januar 2012

Og sådan fortsætter de derudaf.
Avatar billede x-lars Novice
02. februar 2012 - 13:01 #26
Jeg tænkte nu mest på fanebladene i Table Results.xlsx. Hedder de "1", "2", osv.? Eller hedder de også "010112", "020112", osv.?
Avatar billede jmarques Nybegynder
02. februar 2012 - 13:26 #27
Aaah min fejl.

Der er 3 faneblade. Som jeg umiddelbart forstår min kollega så bruger de kun det ene (spørg mig ikke hvorfor man har de 2 andre - sjusk tror jeg !).

Først faneblad hedder: Table Results
Andet faneblad hedder: Sheet2
Tredie faneblad hedder: Sheet3

Du kan godt se at de ikke er de mest systematiske personer.

Det er det andet faneblad der bruges i alle ark på alle datoer: Sheet2

Jeg har skrevet det nøjagtigt som det står.

Det er i målet dvs mit ark at fanebladene er inddelt fra 1 - 31. Hvor 1 er den første dag i måneden osv. fremefter.
Avatar billede x-lars Novice
02. februar 2012 - 15:57 #28
Hmmm, så burde den altså virke!

Helt umuligt at sende filerne - f.eks. uden data på siderne?
Avatar billede jmarques Nybegynder
02. februar 2012 - 19:02 #29
Jeg skal lige høre chefen i morgen.

Jeg tænkte på denne linie:

Sheets(Dato).Range("H15:BL47").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

Er det ikke linjen der afgør hvor målet er ? altså i hvilket faneblad i mit ark den skal paste kopien hen ?

Jeg tænker specifikt på: Sheets(Dato)

Mine faneblade har kun et tal: 1, 2, 3 osv...

Hvert tal står får hvilken dag det er i måneden. Der er 31 faneblade i hvert ark.

Kan det være her der skal noget andet?
Avatar billede x-lars Novice
03. februar 2012 - 13:19 #30
Det er netop min pointe: I starten af makroen indtaster du datoen, som der efter gemmes i variablen Dato. Når Målet indeholder et faneblad, der har navn i form af et tal, svarende til en dato, burde Sheets(Dato).activate vælge netop dette faneblad.
Avatar billede jmarques Nybegynder
03. februar 2012 - 14:11 #31
aah men der er lidt forskel.

I målet har fanebladene kun et nummet. Dvs nummer et hedder: 1 nummer to hedder 2 nummer ti hedder 10 osv.

Men der hvor arket hentes har selve arket altid to cifre selvom det er den første i måneden.

Arket der skal hentes har altid 6 ciffre i alt 1. januar 2012 hedder 010112 men hentes over i et faneblad der kun hedder 1

Er det mon det eller giver det overhovedet ingen mening for dig ?
Avatar billede x-lars Novice
03. februar 2012 - 15:05 #32
Ark = faneblad? Ovenfor (#27) skriver du, at i Kilden bruges altid Sheet2 - og det er koden indrettet efter. Kilden hedder så som fil 01012012.xls

Skriver vi lidt forbi hinanden hér?
Avatar billede jmarques Nybegynder
03. februar 2012 - 15:19 #33
Nej ikke helt. Kilden = excel arket der skal hentes og kopieres ind i målet hedder altid noget med: 010112 (ikke 01012012).

I det ark (som en anden afdeling laver et af, for hver dag i måneden) benyttes kun fanebladet der hedder: Sheet2  (som ligger nr. 2 fra venstre i rækken af faneblade).

Målet (som er et excel ark jeg arbejder med) laver jeg 1 ark af pr. måned. Her er hvert faneblad nummereret med numrene fra 1 - 31 (ikke 01, 01 men 1, 2, 3.....osv frem til sidste dag på måneden 31. Ingen punktum eller noget andet).

Hvert ark har dette format (ex januar): Januar 2012

Jeg troede at funktionen gjorde at der altid blev kopieret ind i det faneblad hvor knappen er lavet - min fejl beklager meget !!
Avatar billede jmarques Nybegynder
03. februar 2012 - 15:23 #34
Mål stien til arket (det jeg bruger) for Januar 2012 ser sådan ud:

"P:\Surveillance\Tape Log\2012\Januar 2012.xlsx"

Kilde stien (det de andre bruger) for 1. Januar 2012 ser sådan ud:

"P:\Gaming Floor\Table Results\Table Results 2012\Januar 2012\010112.xls"
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