[Excel, VBA] Macro gaat niet verder na Workbook.Open

Pagina: 1
Acties:
  • 828 views sinds 30-01-2008
  • Reageer

  • ChrisM
  • Registratie: Juni 2004
  • Laatst online: 21:54
Ik heb, in principe, een heel simpele macro. Deze controleert of een bestand al geopend is (Function IsBookOpen, van een andere tweaker hier ergens op het forum) en zo niet, dan opent deze het bestand. Maar... als het bestand is geopend, loopt de macro niet verder.

Visual Basic:
1
2
3
4
5
6
7
8
9
10
    ActiefBestand = ActiveWorkbook.Name
                
    Dim isOpen As Boolean
    isOpen = IsBookOpen("Foutcode formulier.xls")
    If isOpen = False Then
        Workbooks.Open Filename:="G:\kvs\VOORRAADcontrole\Foutcode formulier.xls"
        Workbooks(ActiefBestand).Activate
    End If

   ..... verdere verloop van de macro .....


En de isOpen function (ook al is deze niet per se interessant nu, kan wel handig zijn voor de search. :P
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Public Function IsBookOpen(inName As String) As Boolean
    Dim i As Integer
    Dim wBook As Workbook
    Dim found As Boolean
    
    found = False
    
    For i = 1 To Workbooks.Count
        Set wBook = Workbooks.Item(i)
        If wBook.Name = inName Then
            found = True
            Exit For
        End If
    Next i

    IsBookOpen = found
End Function


Ik heb al even gekeken en na het openen van het bestand, dan houdt de macro op. Kan ik dit ook voorkomen?

  • Spotmatic
  • Registratie: Februari 2003
  • Laatst online: 22:40

Spotmatic

Ken sent me

Ik doe het vaak zat op jouw manier en dat gaat eigenlijk altijd goed. Bevat het bestand dat geopend moet worden ook macro's? Zo ja, dan kan dat wellicht daaraan liggen.

Trotse Volkswagen T1 en T3 bezitter


Verwijderd

of bv. links of wachtwoord in het werkblad waardoor een dialoogvenster verschijnt. mogelijke oplossingen
bij macro: beveiliging tijdelijk laag zetten (zoek op automationsecurity)
bij links:application.displayalerts=false
bij wachtwoord:openen met het goede wachtwoord.

  • ChrisM
  • Registratie: Juni 2004
  • Laatst online: 21:54
Het bestand bevat geen macro's, geen links en geen wachtwoord... Het is gewoon een simpel excelsheetje met een opsomming van foutcodes en hun betekenis.

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Wat gebeurt er als je debugged... Blijft je debug sessie ook op een bepaalde regel hangen?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • ChrisM
  • Registratie: Juni 2004
  • Laatst online: 21:54
BtM909 schreef op dinsdag 06 februari 2007 @ 16:13:
Wat gebeurt er als je debugged... Blijft je debug sessie ook op een bepaalde regel hangen?
Ja: hij voert Workbooks.Open nog uit, maar als ik daarna een MsgBox plaatst, dan laat hij die niet zien. Dus Workbooks.Open is het allerlaatste dat hij doet.

Verwijderd

sluit toch eens al je excelinstanties en voeg de application.displayalerts=false voor en =true achter de openopdracht toe om te zien wat dat geeft.

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

ChrisM schreef op dinsdag 06 februari 2007 @ 16:26:
[...]

Ja: hij voert Workbooks.Open nog uit, maar als ik daarna een MsgBox plaatst, dan laat hij die niet zien. Dus Workbooks.Open is het allerlaatste dat hij doet.
Nee, niet met msgboxjes maar echt debuggen :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • ChrisM
  • Registratie: Juni 2004
  • Laatst online: 21:54
Ok... Heb nu wat "echter" gedebugged:

Ik heb de macro staan in mijn Persoonlijke Macro's (dus zodat je hem over alle bestanden kan uitvoeren). Ik heb deze macro gekoppeld aan een snelkeuze (CTRL-SHIFT-M). Als ik de macro uitvoer via ALT-F8 en dan de macro uitvoeren, dan werkt hij wel goed! Als ik hem uitvoer via de snelkeuze CTRL-SHIFT-M, dan werkt hij niet goed (en houdt hij dus op bij het openen van het bestand).

Kan het er aan liggen dat hij in mijn Persoonlijke Macro's staat (en dus niet in het bestand)? Of aan de snelkeuze?

  • ChrisM
  • Registratie: Juni 2004
  • Laatst online: 21:54
Kickje. :) Heb nog niet nieuws toe te voegen, maar ben wel benieuwd...

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Het probleem zit in de shift-M. :)
Shift-open schakelt de macrouitvoering uit, of je nu het workbook opent vanuit de GUI of vanuit code.
Stom genoeg, helpt zelfs een vertraging niet; het lijkt erop alsof excel de hele macro als één commando beschouwt en dus ahw onthoudt dat de shift-key was ingedrukt op het moment dat de macro gestart werd.

edit:

even gezocht en ja hoor:
Macro in Excel Stops After A Workbook.Open Command


en de workaround die ze geven werkt óók niet in dit geval :(
Microsoft has confirmed this is a bug.

[ Voor 26% gewijzigd door Lustucru op 13-02-2007 17:47 . Reden: bevestiging gezocht :) ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland

Pagina: 1