Avatar billede basseanden Nybegynder
13. oktober 2004 - 17:54 Der er 8 kommentarer

Excel VBA og Access 97

Hej Gutter

Jeg har fået en interessant opgave.

Jeg har et Excel-ark i Excel XP og dette ark kører automatisk en masse makroer (ca. 200). Jeg vil nu lave en DB i Access 97 hvor Excel via VBA skal skrive ned i en tabel for hver gang en makro er blevet udført korrekt. Yderligere oplysninger er date, tt:mm:ss, makroens navn osv.

Note: Det skal være Access 97

Hvad skal jeg bruge af kode i Excel?

Skal koden skrives efter hver eneste makro?

Hilsen
Jansen
Avatar billede overchord Nybegynder
13. oktober 2004 - 18:03 #1
Ville det vaere nemmere bare at lade Excel makroen som koerer de 200 andre makroer notere naar en makro er udfoert. Hvis en excel makro spytter dette ud i et regneark kan det saa efterfoelgende importeres i Access.
Avatar billede brynil Nybegynder
13. oktober 2004 - 18:18 #2
>>overchord: det var den samme tanke jeg fik, men jeg har lidt besvær med at finde ud af hvordan jeg skulle konstruere tælleren, uden at skulle skrive kode 200 gange.
Kan man læse makronavnene ind i et array og eksekvere dem med et loop? Eller har du en idé?
Avatar billede meinertsen Nybegynder
14. oktober 2004 - 23:18 #3
Haha... Det lyder som noget jeg burde sidde og lave, men vil da også gerne høre et forslag hvor man kan få en makro til at skrive følgende i et sheet:

Tidspunkt for start af makro
Tidspunkt for slutning af makro
Makro Sub navn() eller bare et stykke tekst

Skal det eventuelt sættes op så man indsætter kode i starten og i slutningen af koden?

Hvis nogen har en løsning giver jeg også gerne 200 p i retur

Hilsen M
Avatar billede overchord Nybegynder
15. oktober 2004 - 13:59 #4
brynil -> Jeg tror ikke umiddelbart at man kan fyre dem af fra et array som saadan, men det ville alligevel ikke goere den store froskel idet du stadig skulle skrive navnet paa hver makro ind...
Til gengaeld kunne du maaske kyle de 200 makroer sammen i et overordnet script som i retning af
MotherOfAllMacros(x as integer)
case x = 1
      Macro1
case x = 2
      Macro2
osv

Hvis du saa kalder denne fra en makro med en error-handler :

F.eks

Sub RunItAll()

On Error Resume Next

for x = 1 to 200
    Sheet1.Range("a" & x) = "Macro number " & x & "ran on " & Now()
    MotherOfAllMacros(x)
    Sheet1.Range("b" & x) = "Completed successfully"
next x

De raekker hvor kolonne b ikke er udfyldt vil saa indikere fejl.

Det er et meget loest forslag og kraever en del arbejde, men forhaabentligt kan det hjaelpe lidt.
Avatar billede brynil Nybegynder
15. oktober 2004 - 14:20 #5
>> overchord: Jeg prøvede med et par simple makroer og det fungerede faktisk fint med et array.

Men jeg synes dit forslag er en udmærket løsning.
Avatar billede overchord Nybegynder
15. oktober 2004 - 14:50 #6
ok - det er faktisk interessat at det funger med et array - hvis de 200 makroer saa er systematisk navngivet kan du maaske oven i koebet droppe en masse og bare sammensaette makronavnet som en string med numre (f.eks "Makro-" & x).
Avatar billede brynil Nybegynder
15. oktober 2004 - 20:10 #7
Hmmm - jeg tror i skal spise salt til. Jeg har siddet hele aftenen og forsøgt at genskabe min vidunderkode fra igår aftes uden at det er lykkedes. Så betragt det som noget inderligt vrøvl - indtil det modsatte er bevist.
Avatar billede basseanden Nybegynder
15. oktober 2004 - 22:05 #8
Hmm... Tror ikke det vil virke så godt med min løsning.

Det er en makro som starter det hele, eks. auto_open()
auto_open fungere så som Call og kalder derefter flere makro, der hver især kalder på et par makroer:

Kunne se sådan her ud:

Sub auto_open()
Call makro1
Call makro2
Call makro3
Call makro4
End Sub

Sub makro1()
"regne regne"
Call makro5
Call makro6
End Sub

Sub makro2()
"regne regne"
Call makro7
Call makro8
End Sub

Sub makro3()
"regne regne"
Call makro9
Call makro10
End Sub

...

Jeg skal have at vide om hver makro fra makro1-makro200 er kørt igennem ordentligt.

Hilsen
Jansen
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
Kurser inden for grundlæggende programmering

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