Avatar billede sirtiger Nybegynder
21. oktober 2003 - 11:46 Der er 15 kommentarer og
1 løsning

Dynamisk definere hvilket ark en reference skal være til

Jeg har nogle evaluerings ark som jeg gerne vil lave noget statestik på. Derfor vil jeg lave et nyt ark som trækker data fra en masse ark - og en masse steder i hvert ark. Jeg vil gerne vide om man kan lave et felt hvori man skriver filnavnet på en fil og så er der andre felter der bruger dette til at finde ud af hvilken fil de skal trække data. [Evalueringsark.xls]Spørgsmålsark!$E$5 - men hvor jeg ikke skal ind i alle formelerne og skrive evalueringsark.xls
Avatar billede stewen Praktikant
21. oktober 2003 - 12:04 #1
Er ikke sikker, men skal du ikke blot skifte kæde?

Rediger --> skift kæde

Eller har jeg misforstået?
Avatar billede sirtiger Nybegynder
21. oktober 2003 - 12:10 #2
Jeg vil gerne have det sådan at jeg har en mappe der hedder mappe1 som indeholder en evaluering som jeg så kæder til. Jeg har så også en mappe2 som jeg kæder til. Jeg har ne mappe3 osv. Derfor er jeg interreseret i ikke at skulle skrive 15-20 formler om pr mappe.
Avatar billede stewen Praktikant
21. oktober 2003 - 12:44 #3
Tvivler

Men.... hvad med at erstatte alle et-tallerne i mappe 1 med 2 osv....?
Avatar billede bak Forsker
21. oktober 2003 - 13:20 #4
Hvis filerne er åbne kan du bruge INDDIREKTE funktionen
Filnavn står i A1  (fx. Evaluering)
=INDIRECT("[" & A1 & "]Ark1!$A$1")
Avatar billede aheiss Praktikant
21. oktober 2003 - 14:22 #5
Nogen der ved hvorfor denne kun virker hvis kaldt fra sub ? Ellers var den jo løsningen :
Function GetValue(path, file, sheet, ref)
'  Retrieves a value from a closed workbook
    Dim arg As String
'  Make sure the file exists
    If Right(path, 1) <> "\" Then path = path & "\"
    If Dir(path & file) = "" Then
        GetValue = "File Not Found"
        Exit Function
    End If
'  Create the argument
    arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
    Range(ref).Range("A1").Address(, , xlR1C1)
'  Execute an XLM macro
    GetValue = Application.ExecuteExcel4Macro(arg)
End Function
Avatar billede bak Forsker
21. oktober 2003 - 14:27 #6
aheiss-> jeg har også eksperimenteret en del med den og bare måttet konstantere at det ikke er muligt. Den funker kun i en sub.
Avatar billede aheiss Praktikant
21. oktober 2003 - 14:29 #7
OK - så smider jeg også håndklædet :-(
Avatar billede bak Forsker
21. oktober 2003 - 14:45 #8
Funktionen virker faktisk godt nok, men kan ikke kaldes som en regnearksfunktion, men kun fra en sub... :-(
Avatar billede martin_moth Mester
22. oktober 2003 - 10:30 #9
Du kan jo lave alt med VBA. Skriv et filnavn i den celle du ønsker, og kør derefter en macro (Macroen kan også sættes til at køre automatisk når du retter i cellen med en _OnChange)

I macroen læses filnavnet ind i en variabel, og alle de formler du ønsker at rette bliver rettet med det nye filnavn....

Hvad er problemet i at lave det som en macro (eller i en Sub, som i kalder det)?
Avatar billede stefanfuglsang Juniormester
23. oktober 2003 - 12:57 #10
aheiss ->VBA er meget streng med hvad der tillades i en Function, der kaldes fra regnearket, ExecuteExcel4Macro er åbenbart heller ikke tilladt (man kan jo indirekte ændre cellen man kalder fra)
Jeg har lavet en løsning på disse problemer, men det er lidt uelegant - jeg sender en Postmessage, der checkes i sheetchange, hvorefter en makro kaldes. På den måde kan man næsten alt (også f.eks. ændre formatering i et funktionskald)
Avatar billede martin_moth Mester
23. oktober 2003 - 13:09 #11
Jeg fatter ikke problemet.
Skriv koden i en macro! Kald macroen når den skal køres - evt med en trykknap, en tastekombination (Ctrl + E f.eks.) eller få kørt macroen automatisk når indholdet i en bestemt celle ændres...

Ikke noget pjat med at skrive det i en funktion der kan kaldes fra regnearket - lav en god og solid macro, og kald den når det behøves, evt. automatisk...
Avatar billede martin_moth Mester
26. oktober 2003 - 13:47 #12
sirtiger..?
Avatar billede sirtiger Nybegynder
27. oktober 2003 - 14:51 #13
Jeg er ikke så stærk i makroer, men jeg kan ikke gennemskue at det kan løse mit problem. Det ser ud til at Excel ikke har den ønskede funktinalitet i hvert fald, og det må jeg så bare lære at leve med.
Avatar billede martin_moth Mester
27. oktober 2003 - 14:55 #14
Jamen så kunne dit spørgsmål jo gå på, at du vil have lavet en macro der gør det du nu ønsker...

Men skal jeg forstå det sådan, at kan det ikke løses uden brug af en macro, så skal det ikke løses?
Avatar billede sirtiger Nybegynder
27. oktober 2003 - 14:57 #15
Nej, men jeg tænker også i tid. Jeg gider ikke bruge timer på at finde ud af hvordan jeg bruger makroer, for derefter at bruge noget tid på at flytte data frem og tilbage.
Avatar billede martin_moth Mester
27. oktober 2003 - 16:58 #16
ok :o)

Men husk på, at macroer er vores venner. Med macroer kan du håndterer stort set ALT, du kan skrive/læse til/fra filer/databaser, automatiserer alverdens ting osv...
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