Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Excel] xlsm traag met opslaan (na verloop van tijd)

Pagina: 1
Acties:

  • Arjan90
  • Registratie: September 2005
  • Laatst online: 20-11 12:35
Ik hoop dat jullie mij kunnen helpen omdat ik op mijn werk tegen problemen aanloop met Excel. Ik heb een bestand gemaakt met meerdere functies in VBA en een aantal Userforms, maar het bestand wordt na verloop van tijd altijd traag als ik wil opslaan.
Het bestand verwerkt een batch van gegevens tot PDF, CSV en XLSX (back-up) documenten. Dit wordt op wekelijkse basis uitgevoerd en normaal gesproken is hij binnen 4 minuten klaar met een batch die 10 keer "loop"-t. Vandaag echter was hij maar liefst 40 minuten bezig met de batch, voor wederom 10 loops. Het probleem ontstaat als er in de macro wordt opgeslagen als PDF, csv of xlsx, dit duurt ongeveer een minuut. Als ik buiten de macro om opsla vanuit hetzelfde bestand is er niets aan de hand, het probleem lijkt dus in de macro te zitten.

Hieronder de code die ik gebruik (daar kan ik volgens mij weinig aan aanpassen, maar toch).

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        'Disable alerts
Application.DisplayAlerts = False

'Save and export files
Sheets("Factuur").Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
            SavePath & SaveFileName & ".pdf" _
            , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
            :=False, OpenAfterPublish:=False
            
Sheets("Specificatie").Select
ActiveWorkbook.SaveAs Filename:= _
            SavePath & SaveFileName & ".csv" _
            , FileFormat:=xlCSVMac, CreateBackup:=False, Local:=True
        
ActiveWorkbook.SaveAs Filename:= _
            OriginalPath & "\" & BackupPath & "\" & SaveFileName & ".xlsx" _
            , FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False


Ik heb al meermaals gezocht op dit probleem en elke keer is de oplossing: exporteer je modules en userforms op, sla vervolgens je xlsm op als xlsx zodat je alle macro's verliest. Importeer je modules in het xlsx document en tada: het werkt weer snel. En dat is ook zo, het werkt dan weer prima. Maar toch, drie of vier weken later is het weer raak en moet ik het hele riedeltje weer herhalen.

Het enige wat ik nog kan proberen is in de bovenstaande code eerst het worksheet naar een nieuw Excel bestand te exporteren en dan op te slaan, mogelijk dat ik hierdoor de "bug" (als het dat is) omzeil? Maar het liefst los ik het natuurlijk op binnen dit script, die oplossing lijkt me ook redelijk zinloos en het zou niet nodig moeten zijn.

"Everybody is a genius. But if you judge a fish by its ability to climb a tree, it will live its whole life believing that it is stupid."