09. januar 2012 - 23:06Der 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.
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"
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 ?
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"
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"
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.
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.
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:
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"
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?
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.
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"
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"
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.
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 !!
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.