Avatar billede wildthing Nybegynder
16. september 2003 - 13:47 Der er 12 kommentarer og
2 løsninger

makro afvikles 2 gange ved ekstern kald

Jeg har følgende kode i "thisworkbook" under "open"
Private Sub Workbook_Open()

    Set ws = Sheets("dymo")

    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Dim fs, f
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.OpenTextFile("U:\Quality\serviceorders\dymo.txt", ForReading, False)
    i = f.read(6)
    Range("b3").Select
    ActiveCell.FormulaR1C1 = i
    Range("b6").Select
    ActiveCell.FormulaR1C1 = i
    f.Close

    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
        "Dymo LabelWriter Turbo-USB", Collate:=True

    Application.DisplayAlerts = False
    'ThisWorkbook.Saved = True
Application.Quit

End Sub

-------------
Hvis jeg fra et link fra word eller asp kalder denne excel fil er det som om at makroen afvikles 2 gange og der kommer derfor 2 print af arket.

Hvis jeg via "My computer" klikker på filen udskrives indholdet kun een gang?

ER der en snedig person der ved hvad der går galt her?
Avatar billede stefanfuglsang Juniormester
16. september 2003 - 14:33 #1
Jeg kan ikke se nogen fejl i ovenstående.
Prøv at indsætte Msgbox "Open kaldt" i koden og se om der kommer mere end én Msgbox.
Avatar billede wildthing Nybegynder
16. september 2003 - 14:49 #2
Den bliver kaldt 2 gange?!?

wildthing
Avatar billede stefanfuglsang Juniormester
16. september 2003 - 14:56 #3
Jeg har lige konstateret at open bliver kaldt to gange, når man indsætter xls-filen som kæde til fil. Du må vel så bare teste om det er første gang open kaldes:
static secondtime as boolean

if not secondtime then
...
endif
secondtime = true
Avatar billede wildthing Nybegynder
16. september 2003 - 15:06 #4
Jeg har prøvet med en variabel og en if sætning, og nu igen også med din. Det hjælper bare ikke. Det er som om at variablen bliver nulstillet, eller sagt på en anden måde, at Excel kaldes 2 gange. I så fald skal man måske til at skrive variablen ned i en tesktfil, for ikke at miste den.

Har du et bedre bud?

wildthing
Avatar billede bak Forsker
16. september 2003 - 15:23 #5
Kun et skud....
prøv at trække makro ud af workbook_open og sætte den ind i et alm. modul og derefter give den navnet SUB Auto_Open
Avatar billede wildthing Nybegynder
16. september 2003 - 15:37 #6
Det var en god ide "bak", men det giver det samme resultat.

wildthing
Avatar billede stefanfuglsang Juniormester
16. september 2003 - 15:55 #7
Jeg tror følgende virker:

if Application.WindowState <>  xlMinimized then
...
endif

Application.WindowState = xlMinimized


Det er ikke kønt, men hvis det virker er det jo godt nok.
Princippet er at når open kaldes anden gang er Excel minimeret, så if-sætningen bliver ikke udført.
Har dog kun testet dette meget kortvarigt - der kan være situationer hvor det fejler?
Avatar billede wildthing Nybegynder
16. september 2003 - 16:41 #8
Hmm den år vel at lukke og ikke kun at minimere. Nevermind jeg prøver det i morgen

wildthing
Avatar billede bak Forsker
16. september 2003 - 19:51 #9
Dette kan også gøre det, da excel ikke er synlig første gang

If Application.Visible = True Then
bla.bla.bla
End If
Avatar billede stefanfuglsang Juniormester
16. september 2003 - 21:00 #10
Det sidste virker desværre ikke - det prøvede jeg. Excel er hverken synlig første eller anden gang
Avatar billede bak Forsker
16. september 2003 - 21:13 #11
Ok, stefan. Hos mig kommer excel frem anden gang lige inden makroen kører, så her virker det fint. :-)
Avatar billede wildthing Nybegynder
17. september 2003 - 08:25 #12
I kæmper godt, men lige lidt hjælper det altså...
Jeg kører XP
Excel lukkes mellem de to kald (det klarer makroen jo) og derfor dur minimize ikke.
Visible - virker ikke da excel. Vent nu lidt...
jo bak visible dur hvis man  lige tilføjer
....
else
ThisWorkbook.Saved = True
Application.Quit
....

Excel må altså hos mig blive synlig til anden gang?!?
Første gang ryger den i else løkken og anden gang i Then

Perfekt bak. Send et svar og du skal få dine point.

Stefanfuglsang får tak får indsatsen:)
Avatar billede bak Forsker
17. september 2003 - 08:41 #13
Del venligst points mellem mig og stefanfuglsang :-)
Avatar billede wildthing Nybegynder
17. september 2003 - 08:45 #14
Gentleman bak:) det bliver 70/30

wildthing
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