Avatar billede snowball Novice
02. september 2004 - 12:56 Der er 17 kommentarer og
1 løsning

Lettere måde at inkludere en xla fil

Hej.

Jeg fik i http://www.eksperten.dk/spm/530916 hjælp til at få lagt mine macroer ud i en separat fil sådan så det er let at opdatere mine macroer, og det virker helt fint.

Næste "problem" er så bare at jeg håber på der findes en nemmere måde at inkludere denne xla fil i sit VBA projekt. I dag inkluderes filen jo ved at gå ind i Tools -> References og så browse efter filen, men det er jo ikke så fedt at skulle lave om hos 50 personer hvis man finder på at gemme filen et andet sted.

Kan man på en eller anden måde ikke inkludere denne fil dynamisk når man åbner dokumentet? Det optimale ville jo være at man har stien til xla filen stående i en celle på et ark, og filen der er angivet, inkluderes så som det første når Excel dokumentet åbnes.

Kan det lade sig gøre !? :)

På forhånd tak.
Avatar billede sjap Praktikant
02. september 2004 - 19:30 #1
Jeg ved ikke om det egentligt gør det lettere for dig, eller om der er nogen problemer forbundet med det, men du kan da prøve at lave en tom mappe og smide din xla fil over i denne mappe. I Excel skal du i menuen Funktioner/Indstillinger vælge fanebladet Standard og så skrive stien til ovennævnte mappe i feltet "Alternativ filplacering ved opstart". Der må IKKE ligge andre filer i mappen da Excel prøver at åbne det hele. Næste gang Excel startes åbnes xla filen også.
Avatar billede sjap Praktikant
02. september 2004 - 19:38 #2
Det er ligesom ikke hensigten med xla-filer, at de skal åbnes hver gang man åbner et dokument, men at man blot installerer dem én gang, og så skal man ikke tænke mere over det.
Det som du beskriver med, at xla'en skal åbnes hver gang et Excel dokument åbnes, vil bedre kunne håndteres med at du lægger al koden over i dette dokument.
Avatar billede snowball Novice
02. september 2004 - 19:40 #3
Ved at tilføje xla'en i VBA editoren i stedet for selve Excel, så åbnes xla filen jo netop ikke hver gang Excel startes, men kun hvis man åbner det dokument som xla'en hører til.
Avatar billede snowball Novice
02. september 2004 - 19:42 #4
Det du foreslår i 19:30:37 vil jeg gerne undgå da du jo så netop åbner xla'en hver gang Excel åbnes, og det kræver desuden også opsætning af Excel hos alle brugere, hvilket jeg også gerne vil undgå :)
Avatar billede sjap Praktikant
02. september 2004 - 19:53 #5
snowball -> Jeg havde åbenbart ikke læst din problemformulering særligt grundigt - beklager :-(
Er det et problem at aktivere den via Funktioner/tilføjelsesprogrammer? Jeg ved godt at den så altid er aktiv, men er det et problem?
Avatar billede sjap Praktikant
02. september 2004 - 20:53 #6
Holddaheltop. På grund af en lille bitte stavefejl kunne jeg ikke få nedenstående til at fungere, men nu er det langt om længe lykkedes. Så nu håber jeg du kan bruge det ;0)

Private Sub Workbook_Open()
    Application.AddIns.Add "C:\mappenavn\Filnavn.xla"
    AddIns("Navnpåtilføjelsesprogram").Installed = True
End Sub
Avatar billede snowball Novice
03. september 2004 - 08:25 #7
Perfekt!

Har dog ændret det til Application.AddIns.Add "C:\mappenavn\Filnavn.xla", False da den så ikke kommer og spørger om man vil tilføje filen til Excels "Add-in library" :)

Tak for hjælpen.
Avatar billede snowball Novice
03. september 2004 - 10:05 #8
Hhmmm. Var vist lige lidt for hurtig der.

Efter jeg er begyndt at inkludere xla'en på denne måde, så har jeg problemer med at de macroer der ligger på selve arkene, f.eks. Worksheet_Deactivate. Når jeg forsøger at kalde en af de macroer der ligger i xla'en, så får jeg bare at vide at den Sub eller Function ikke findes. Det underlige er så at den åbenbart godt kan se den alligevel, for hvis jeg i VBA editoren skriver navnet på funktionen med kun store bogstaver, så retter editoren rigtigt nok navnet sådan så det er skrevet på samme måde som i xla'en.

Det samme gælder også Public variabler i xla'en. Dem kan den heller ikke tilgå ordentlig.

Nogen forslag?
Avatar billede sjap Praktikant
03. september 2004 - 11:47 #9
Har lige testet det, og kan godt se problemet. Prøver at se på det.
Avatar billede snowball Novice
03. september 2004 - 12:05 #10
Mange tak :)
Avatar billede sjap Praktikant
03. september 2004 - 12:10 #11
snowball -> Det eneste jeg lige kan finde er nedenstående

Application.VBE.ActiveVBProject.References.AddFromFile "C:\mappenavn\Filnavn.xla"

som du også placerer i Workbook_Open. Jeg oplevede lidt problemer med hvornår funktionerne blev tilgægngelige (men de blev det). Det er ikke sikkert du har det samme problem i din version.
Avatar billede snowball Novice
03. september 2004 - 12:19 #12
Erstattede Application.AddIns.Add "C:\mappenavn\Filnavn.xla" med Application.VBE.ActiveVBProject.References.AddFromFile "C:\mappenavn\Filnavn.xla" og så virkede det igen.

Mange tak for hjælpen :)
Avatar billede sjap Praktikant
03. september 2004 - 12:20 #13
Godt det kom til at virke :0)
Avatar billede snowball Novice
03. september 2004 - 12:35 #14
Det er vist godt det snart er weekend!

Det virkede første gang jeg prøvede, men når man så efterfølgende åbner Excel dokumentet igen, så kommer den og brokker sig over at henvisningen findes i forvejen.

Før virkede det med AddIns("PSRMacro").Installed = False i Workbook_BeforeClose, men det er åbenbart ikke nok nu. Application.VBE.ActiveVBProject.References.Remove giver en "Type mismatch" hvis jeg skriver filnavnet.

Nogen forslag til dette (som forhåbent er det sidste problem ;))
Avatar billede sjap Praktikant
03. september 2004 - 12:45 #15
Prøv at skrive

On Error Resume Next

Inden linien, der giver fejl, og

On Error Goto 0

på linien efter.

På din PC er referencen installeret, og derfor kommer programmet med en fejlmeddelelse. Da fejlen ikke har nogen betydning, vil ovenstående sørge for at programmet ikke stopper, men blot går videre selvom fejlen opstår.
Avatar billede snowball Novice
03. september 2004 - 12:51 #16
Perfekt. Så blev det problem også løst, så nu håber jeg ikke der kommer flere problemer.

God weekend, og igen mange tak for hjælpen :)
Avatar billede sjap Praktikant
03. september 2004 - 12:52 #17
Selv god weekend :0)
Avatar billede snowball Novice
08. september 2004 - 15:21 #18
sjap: Hvis du har tid, så må du meget gerne lige kigge på http://www.eksperten.dk/spm/537556 :)
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