• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

ActiveWorkbook.Close sluit Excel niet af, maar veroorzaakt foutmelding

Status
Niet open voor verdere reacties.

Vieri

Gebruiker
Lid geworden
12 jan 2013
Berichten
64
Hallo,

ik heb een macro om middels een knop het geopende Excel bestand op te slaan op een bepaalde locatie na bevestigen MsgBox. Vervolgens dient er een applicatie geopend te worden en dient het geopende Excel bestand af te sluiten. Ik heb de macro getest op diverse systemen met Office 2013 (ik weet even niet de exacte versie van iedere Office 2013 waar op getest is) en alles werkte naar behoren.

Nu ik de macro bij een klant heb draaien krijg ik onderstaande foutmelding tijdens het afsluiten van het Excel document

IMG_2327.JPG

Dit is de code:
Code:
Sub Export()
'
' Export Macro
'

'
 If MsgBox("Heeft u de lijst uitgeprint?", vbYesNo, "Confirm") = vbYes Then

    ChDir "C:\Users\Public\Documents"
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:="C:\Users\Public\Documents\TAG PRINTING.xlsx" _
        , FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
        
Application.DisplayAlerts = True
Application.Quit

Dim x As Variant
    Dim Path As String
    Dim File As String
    
    Path = "C:\Program Files\NiceLabel\NiceLabel 2017\bin.net\NiceLabelPrint.exe"
    File = "C:\Users\F\Desktop\Printforms\Label.nlbl"
    
    x = Shell("""" & Path & """" & " " & """" & File & """", vbNormalFocus)
 

ActiveWorkbook.Close

End If

End Sub

Ik heb geen eerdere problemen ondervonden met bovenstaande code. Ik kwam nog wel een alternatief tegen voor afsluiten middels
Code:
With Application
 .DisplayAlerts = False
 .Quit
End With
Deze heb ik tussen End If en End Sub geplaatst. Lijkt ook te werken op mijn laptop. Hoe dit bij mijn klant gaat heb ik nog niet kunnen testen. Is er iets essentieel mis met mijn code? Kan deze nog vergemakkelijkt worden of kan de foutmelding te maken hebben met de versie van Office 2013?

Bij voorbaat dank!
 
Je gooit er halverwege je procedure een "Application.Quit" in??? Ofwel, je trekt de stekker uit Excel terwijl je er nog volop in bezig bent?
 
Je gooit er halverwege je procedure een "Application.Quit" in??? Ofwel, je trekt de stekker uit Excel terwijl je er nog volop in bezig bent?

Bedankt voor je bericht. Ik had de Application.Quit er tussenuit gehaald, maar dan blijft Excel geopend met een grijze achtergrond. Ik merk ook dat, nu ik de code een aantal keer achter elkaar uitvoer, ik ook problemen ondervind met afsluiten van Excel als ik mijn typactie eindig in een bepaalde cellen. Selecteer ik een andere cel dan heb ik het probleem weer niet.... Vreemd verhaal.

Met de volgende toevoeging ondervind ik dan weer geen issues
Code:
With Application
 .DisplayAlerts = False
 .Quit
End With

Heb je misschien een tip?
 
Laatst bewerkt:
Ben er inmiddels achter dat het afsluiten van Excel mislukt, als ik mijn invoer in welke cel dan ook niet afsluit met Enter. Dus als ik in B5 de tekst 'hond' invoer en vervolgens niet op Enter druk dan genereert mijn macro een foutmelding bij het afsluiten van Excel. Als ik wél Enter intoets na invoer van tekst dan heb ik de foutmelding weer niet.

Is het een idee om een unselect all commando aan het eind van de code te bouwen?
 
Werk met een Commandbutton ipv een Vorm, die werken niet eerder voordat er een Enter is gegeven.

Maar misschien voldoet...
Code:
activecell.select
...ook bovenaan in je code voor de Vorm.
 
Laatst bewerkt:
Jij ook, voor welke optie heb je gekozen?
 
Ik heb de With.Application toegevoegd. De macro werd volledig uitgevoerd (ook zonder het Enteren na invoeren van gegevens in een cel).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan