Avatar billede zack Nybegynder
25. november 2003 - 11:05 Der er 24 kommentarer og
1 løsning

Slå værdi op i regneark

Jeg har en celle, som hedder 1000 eksempelvis. Denne værdi angiver navnet på det regneark jeg ønsker den skal slå op i.

Hvordan laver jeg en formel, som slår en bestemt celle (G19) op i dette ark?

Placering regneark:

f:\kalk\
Avatar billede bak Forsker
25. november 2003 - 11:23 #1
Hvis det regneark, der skal slåes op i ikke er åbnet på forhånd, kan du ikke gøre det med en formel.
Så er du nødt til at bruge en makro.
Avatar billede zack Nybegynder
25. november 2003 - 11:26 #2
okay... hvordan ser den så ud?
Avatar billede bak Forsker
25. november 2003 - 11:46 #3
Sub test()
path = "F:\Kalk\"
file = Range("a2").Text & ".xls"  'cellen der indeholder filnavnet
sheet = "Ark1"
rng = "$G$19"
End Sub


Private Function GetValue(path, file, sheet, range_ref)
Dim arg As String
arg = "'" & path & "[" & file & "]" & sheet & "'!" & Range(range_ref).Range("A1").Address(, , xlR1C1)
GetValue = ExecuteExcel4Macro(arg)
End Function
Avatar billede zack Nybegynder
25. november 2003 - 13:07 #4
Hmm... den kokser..

Den skal smide den værdi den finder ind i celle B2. Værdien der er filnavnet, står i celle A2.
Avatar billede bak Forsker
25. november 2003 - 14:01 #5
er er gledet en linie ud :-)

Sub test()
path = "F:\Kalk\"
file = Range("a2").Text & ".xls"  'cellen der indeholder filnavnet
sheet = "Ark1"
rng = "$G$19"
Range("B2").value=GetValue(Path, File, Sheet, rng)
End Sub


Private Function GetValue(path, file, sheet, range_ref)
Dim arg As String
arg = "'" & path & "[" & file & "]" & sheet & "'!" & Range(range_ref).Range("A1").Address(, , xlR1C1)
GetValue = ExecuteExcel4Macro(arg)
End Function
Avatar billede zack Nybegynder
25. november 2003 - 14:21 #6
Er lidt i tvivl om, hvordan jeg skal behandle: 'cellen der indeholder filnavnet

Skal jeg bare direkte erstatte det med A2 eksempelvis?
Avatar billede bak Forsker
25. november 2003 - 15:22 #7
Nej, du skriver bare filnavnet på den fil du vil hente data fra i celle A2
feks. 1000 og så kører du makroen.
Den indsætter så værdien fra 1000.xls ark1 celle G19 i det aktive arks celle B2
Avatar billede zack Nybegynder
25. november 2003 - 15:38 #8
Den melder fejl. "Der opstod en kompileringsfejl: Der kan ikke tildeles en skrivebeskyttet egenskab.

Sub test()
path = "F:\Kalk\"
file = Range("a2").Text & ".xls"  A2
sheet = "Ark1"
rng = "$G$19"
Range("B2").Value = GetValue(path, file, sheet, rng)
End Sub


Private Function GetValue(path, file, sheet, range_ref)
Dim arg As String
arg = "'" & path & "[" & file & "]" & sheet & "'!" & Range(range_ref).Range("A1").Address(, , xlR1C1)
GetValue = ExecuteExcel4Macro(arg)
End Function
Avatar billede bak Forsker
25. november 2003 - 16:10 #9
fjern lige det sidste A2 i denne linie
file = Range("a2").Text & ".xls"  A2
Avatar billede zack Nybegynder
27. november 2003 - 10:20 #10
Den melder fejl. "Der opstod en kompileringsfejl: Der kan ikke tildeles en skrivebeskyttet egenskab.

og så er path = markeret
Avatar billede bak Forsker
27. november 2003 - 10:25 #11
Det forstår jeg ikke lige.
Hvilken version af excel bruger du ?
prøv at ændre alle de steder der står path til p, i det tilfælde at det skulle være fordi path er en indbygget ting der ikke må ændres.
Det virker fint ved mig på xl2000
Avatar billede zack Nybegynder
27. november 2003 - 10:27 #12
ok.. jeg bruger 97. Prøver lige at ændre.
Avatar billede zack Nybegynder
27. november 2003 - 10:31 #13
Det hjalp.. nu kom jeg lidt videre. Den kan ikke filen, hvor filnavnet står i A2. Leder i mappen.. mit navn, under documents and settings. Filnavnet står som: Dokumenter[8886.xls]Ark1
Avatar billede bak Forsker
27. november 2003 - 10:45 #14
står der bare 8886 i a2 ?
Avatar billede zack Nybegynder
27. november 2003 - 11:33 #15
Ja...
Avatar billede bak Forsker
27. november 2003 - 11:59 #16
har du mulighed for at sende arket til tommybak@netscape.net
Avatar billede zack Nybegynder
27. november 2003 - 13:59 #17
Sendt...
Avatar billede bak Forsker
27. november 2003 - 14:22 #18
Du havde ikke ændret sheet til det rigtige ark (stod til Ark1, men men arket hedder bare A) og du manglede at ændre en path til p


Sub test()
p = "F:\KALK\"
file = Range("a2").Text & ".xls"
sheet = "A"
rng = "$G$19"
Range("B2").Value = GetValue(p, file, sheet, rng)
End Sub


Private Function GetValue(p, file, sheet, range_ref)
Dim arg As String
arg = "'" & p & "[" & file & "]" & sheet & "'!" & Range(range_ref).Range("A1").Address(, , xlR1C1)
GetValue = ExecuteExcel4Macro(arg)
End Function
Avatar billede zack Nybegynder
27. november 2003 - 14:25 #19
Tak... så virker det!
Avatar billede zack Nybegynder
27. november 2003 - 14:31 #20
Hvor meget skal ændres i makroen, før den kan tage flere ting og smide over.

Eksempelvis skal I19 (8886) til C2 (mappe3) og
H31 til D2

?
Avatar billede bak Forsker
27. november 2003 - 21:59 #21
Sådan. Du fylder bare celler på i variablen Cells2Get

Sub test()
Dim Cells2Get()
Dim szPath As String
Dim szFile As String
Dim szSheet As String

'***** B R U G E R UD F Y L D T *********************************
szPath = "F:\KALK\"                    'Sti
szFile = Range("A2").Text & ".xls"      'Filnavn
szSheet = "A"                          'Arknavn
Cells2Get = Array("G19", "I19", "H31")  'Celler, der skal hentes
'****************************************************************

For j = 0 To UBound(Cells2Get)
  ActiveCell.Offset(0, j + 1) = GetValue(szPath, szFile, szSheet, Cells2Get(j))
Next
Avatar billede bak Forsker
27. november 2003 - 22:00 #22
Du skal selvfølgelig beholde funktionen

Private Function GetValue(p, file, sheet, range_ref)
Dim arg As String
arg = "'" & p & "[" & file & "]" & sheet & "'!" & Range(range_ref).Range("A1").Address(, , xlR1C1)
GetValue = ExecuteExcel4Macro(arg)
End Function
Avatar billede zack Nybegynder
28. november 2003 - 11:28 #23
Melder fejl i denne linie:

arg = "'" & p & "[" & file & "]" & sheet & "'!" & Range(range_ref).Range("A1").Address(, , xlR1C1)
Avatar billede bak Forsker
28. november 2003 - 16:03 #24
zack-> den skal virker, har du ændret arknavn eller andet ?
Avatar billede zack Nybegynder
25. juli 2005 - 11:35 #25
luk
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