Avatar billede oyejo Nybegynder
09. februar 2005 - 09:43 Der er 8 kommentarer og
1 løsning

Flytte public sub til en felles excel-fil

Her et regnark med Vba-kode i 2 moduler.
En modul heter DataFlow, der har jeg definert mange variabler og prosedyrer.

t.ex
Public sTxtF As String
og
Public Sub DataTA()
...
End Sub

I den ander modulen som heter ProsjektNavn
Har jeg tilordninger til variabler og kall på prosedyrer i Modul DataFlow.
t.ex
Call DataTA

Nå ønsker jeg å flytte Modulen DataFlow til et felles regneark, slik at de samme prodedyrer og variabler kan benyttes av flere regneark.

Hvordan gjøres det på en grei måte?
oyejo
Avatar billede sjap Praktikant
09. februar 2005 - 11:28 #1
Gem regnearket med dine VBA-funktioner som XLA fil (Menuen Filer/Gem som og filtype "Tilføjelsesprogram").

Herefter kan du flytte XLA filen til mappen

\Programmer\Microsoft Office\Office\Bibltek

Sådan hedder det i hvert tilfælde i den danske udgave.

Nu kan du så starte Excel og gå ind i menuen Funktioner/Tilføjelsesprogrammer... og så skulle din fil faktisk kunne vælges på listen over tilføjelsesprogrammer.
Avatar billede oyejo Nybegynder
09. februar 2005 - 21:09 #2
hei sjap
Beklager at jeg ikke har hatt tid til å svare før.
Jeg har nå lagret de "Globale Prosedyrene", slik som du har beskrevet.
Men når jeg så starter den "lokale prosedyren" finner den ikke declarasjoene til de eksterne variablene.

Må avslutte for i dag
mvh
oyejo
Avatar billede sjap Praktikant
10. februar 2005 - 00:43 #3
Har du aktiveret programmet under Tilføjelsesprogrammer?
Avatar billede oyejo Nybegynder
10. februar 2005 - 07:35 #4
Ja jeg tror da det.
Når jeg gikk inn på tillegg i excel,kunne jeg se xla fila der, krysset av for den.
Når jeg åpnet VBA-editoren, kunne jeg se fila i Prosjekt Explorer.
Jeg kan også se på koden.

I xla fila er variablen definert som : Public dDate(2) As Date

Programmet godtar ikke denne koden:
dDate(2) = ThisWorkbook.Sheets("KaiTromso").Range("B1")
Får feilmeldingen: Function og Sub not defined
Avatar billede sjap Praktikant
10. februar 2005 - 09:57 #5
Du har ret. Det ser ud til at den IKKE er public mellem to regneark - eller i hvert tilfælde fra et xla-ark og til regneark.

Hvad sker der hvis du blot gemmer dine public erkæringer i et regneark og så prøver at bruge dem fra et andet regneark ?
Avatar billede oyejo Nybegynder
11. februar 2005 - 19:54 #6
Hei sjap!
det ble til at jeg lagret fila slik som du sa. Deretter overførte jeg modulen til de prosjektene som trengte den. Revisjoner utføeres i xla-fila for så å gjenta hele prosedyren.

takker for hjelpen og god helg:-)
Send et svar, så kommer point's
oyejo
Avatar billede sjap Praktikant
11. februar 2005 - 20:07 #7
Fint - og også god helg til dig :0)
Avatar billede oyejo Nybegynder
14. februar 2005 - 08:34 #8
Hei sjap
Fant ut hvordan man kan benytte din løsning som opprinnelig tenkt.

Utgangspunktet er at jeg har object browseren i VBA- åpen.
Der kan jeg se xla fila som:  VBAProsject(filnavn.xla)

1) Det første jeg må gjøre er å gi Prosjektet et nytt spesifikt navn.
- Merker prosjektet, og velger Properties Window, her skriver jeg inn et nytt navn.

2) Så må jeg avslutte excel og starte på nytt slik at prosjektet blir registrert av excel

3) For hver excel fil som skal benytte xla.fila, må jeg åpne vba-editoren, så velger jeg Tools, -> References, her finner jeg nå xla. fila som et prosjekt jeg kan krysse av.

Det var det. ( er desverre dårlig til å forklare :-)
Avatar billede sjap Praktikant
14. februar 2005 - 16:34 #9
Forklaringen er da helt fin. Godt du fik det til at virke. :0)
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