• 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.

Excel blijft op de achtergrond draaien

Status
Niet open voor verdere reacties.

nielsbl11

Gebruiker
Lid geworden
26 sep 2012
Berichten
98
Als ik excel afsluit blijft deze op de achtergrond draaien waardoor ik continu taakbeheer op moet starten om excel af te sluiten.

Weet iemand of dit eenvoudig te verhelpen is?
 
Ter aanvulling : ik heb excel 2003. En het het probleem is pas later gekomen.
 
nielsbl11,

Ik denk dat je het userform de oorzaak is.
Doe je dit soms met Hide verbergen? (zo blijft hij in het geheugen staan)
Beter is Unload me te gebruiken. (zo is hij uit het geheugen)
 
het klopt dat ik deze met hide verberg. Wat bedoel je met unload?

Code:
Private Sub Cmdbestandopenen_Click()
UserForm1.Show
End Sub
 
Laatst bewerkt:
Zit er op je Userform een knop annuleren of sluiten?
Wat is daar de code van.
B.V.B.
Code:
Private Sub CommandButton1_Click()
  Unload Me
End Sub
 
Laatst bewerkt:
als ik excel open maar mijn forum niet oproep en dan weer afsluit blijft excel ook op de achtergrond draaien. probleem is hiermee niet verholpen. het moet wel aan de macro liggen zoiets heb ik gelezen op internet.
 
Als je Excel opnieuw opstart en een andere file opent en sluit heb je dat probleem dan ook?

Zet anders het bestandje zonder gevoelige info hier.
Er zijn zat experts hier, die het foutje wel zullen vinden, denk ik.
 
ik open het bestand via een 3D software programma ik zal de code hier plaatsen:

Code:
'maakt het document leeg voordat er een nieuw programm
    Sheets("Leaflet").Select
    Range("A1:H300").Select
    Selection.ClearContents
    Range("A1").Select
               
       
    With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & Application.GetOpenFilename, Destination:=Range("A1"))
     
        .Name = "leaflet_x56088_6"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = xlWindows
        .TextFileStartRow = 1
        .TextFileParseType = xlFixedWidth
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1)
        .TextFileFixedColumnWidths = Array(7, 24, 39)
        .Refresh BackgroundQuery:=False

 
End With

'streepje wordt underscore in kolom A
'Streepje wordt 0 in kolom B

For Each cl In Range("A1:A200").SpecialCells(2)
cl.Value = Replace(cl.Value, "-", "_")
Next

For Each cl In Range("B9:B200").SpecialCells(2)
cl.Value = Replace(cl.Value, "-", "0")
Next

[B2] = Chr(34) & [B2] & Chr(34)
[B3] = Chr(34) & [B3] & Chr(34)

Sheets("Leaflet").Select
    Range("B368:B369").Select
    Selection.ClearContents

[B368] = [B4]
[B369] = [B5]
[B368] = Chr(34) & [B368] & Chr(34)
[B369] = Chr(34) & [B369] & Chr(34)

'onderstaande code zorgt ervoor dat de vorige datum en naam wordt verwijderd

Sheets("Leaflet").Select
    Range("B370:B371").Select
    Selection.ClearContents
 
 'onderstaande code zorgt ervoor dat de naam van de auteur wordt vermeld
 
     Range("B370").Select
        ActiveCell.FormulaR1C1 = Chr(34) & txtmijnnaam.Value & Chr(34)
        
    Range("B371").Select
        ActiveCell.FormulaR1C1 = Chr(34) & txtdatum.Value & Chr(34)
     
        
 Sheets("Programma").Select
 
 Call controle
 
 End
 
Nu maar hopen dat een expert hier genoeg aan heeft om het op te lossen.
 
Wat bedoel je met een programma opent excel? Als een extern programma excel opent als server (via COM interop o.i.d.) dan zal excel niet meer uit server modus gaan tenzij het programma excel spcecifiek ook weer sluit. Dit is de meest voorkomende manier om meerdere excels te draaien in het geheugen.

Ook als een extern programma de excel opent via een filehandle zal excel niet meer automatisch sluiten totdat de handle "veilig" is teruggegeven.
 
vanuit een 3D software pakket kan ik een spreadsheet aanklikken hier opent een nieuw venster van excel. (excel start wel op onderin de taakbalk). maar hij slaat het excel document wel op in het model van het software pakket. Is het eenvoudig om te zorgen dat excel niet steeds op de achtergrond blijft draaien?
 
Vermijd 'Select' en 'Activate' in VBA.

in plaats van:
Code:
For Each cl In Range("A1:A200").SpecialCells(2)
cl.Value = Replace(cl.Value, "-", "_")
Next

gebruik

Code:
columns(1).replace "-","_"
 
Als het softwarepakket de "eigenaar" is van de sessie is die ook verantwoordelijk voor het afsluiten. Normaal gesproken draait er 1 "server" van excel en sluit die zichzelf als alle bestanden gesloten zijn. Als een ander proces echter de server opent kan hier een tweede bijkomen.

Als je met de hand eerst een andere excel opent en vervolgens je softwarepakket opent en hier een excel mee maakt, heb je dan 1 of 2 maal excel.exe in je tasklist?
 
Vermijd 'Select' en 'Activate' in VBA.

in plaats van:
Code:
For Each cl In Range("A1:A200").SpecialCells(2)
cl.Value = Replace(cl.Value, "-", "_")
Next

gebruik

Code:
columns(1).replace "-","_"

maar wat als je niet de hele kolom van opmaak wil veranderen maar bijvoorbeeld vanaf B9
 
Is het eenvoudig om te zorgen dat excel niet steeds op de achtergrond blijft draaien?
Het is wat wampier zegt: je 3d programma is eigenaar van die excel instance. Als je het 3d programma afsluit dan wordt die excel instance toch ook afgesloten?
 
Als ik met de hand eerst excel open en vervolgens vanuit het softwarepakket opent hij een nieuwe map binnen een excel venster. dus hij staat dan 1 keer in taakbeheer.

en met opmaak bedoelde ik dat het - wordt vervangen door _

ik kreeg van snb een voorbeeld om dit voor een hele kolom te doen. Maar wat als ik dat niet voor een hele kolom wil doen maar bijvoorbeeld vanaf rij 9 in kolom B
Code:
columns(1).replace "-","_"
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan