Microsoft 365 Macro mal optimisé ou pc peu puissant ?

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Alstroemeria

XLDnaute Nouveau
Bonjour,

J'ai fait des modifications sur un fichier excel, sauf que le fichier est très lent maintenant

Est-ce parce que j'ai mal écrit le code de la macro ? Ou juste mon pc n'est pas assez puissant ?

Je ne peux pas envoyer le fichier mais voici la macro :

VB:
Private Sub Workbook_Open()
On Error Resume Next
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False ' Disable all alerts
    Application.AskToUpdateLinks = False ' Prevent update link prompts

    ' Force updating links silently, even if broken
    Dim Links As Variant
    Links = ThisWorkbook.LinkSources(Type:=xlExcelLinks)
    If Not IsEmpty(Links) Then
        For Each Link In Links
            ThisWorkbook.UpdateLink Name:=Link, Type:=xlExcelLinks
        Next Link
    End If

    ' Refresh all PivotTables and connections
    ThisWorkbook.RefreshAll

    ActiveWorkbook.Save
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True ' Re-enable alerts
    
    On Error GoTo 0
End Sub
 
Bonjour,
Ce n'est pas la macro qui pose problème, mais tous les liens qui peuvent s'y trouver 🙄
A+
je n'arrive plus à rien avec le fichier, l'enregistrer prend une éternité (si ça marche, je dois souvent interrompre avec le gestionnaire de tâche)

là j'essaie de l'ouvrir depuis tout à l'heure mais ça fait que mouliner, je peux même pas modifier ma macro 🙁
 
Bonjour Alstroemeria, wDog,
Ouvrez XL, désactivez toutes vos macros, puis ouvrez votre fichier.
Combien de liens avez vous dans votre fichier ?
Ca peut ramer si le nombre de liens est très élevé, si la taille du fichier est vraiment grand, ou si le fichier est vérolé.
La macro en soi ne devrait pas être lente. Faites un essai avec juste une dizaine de liens, et modifiez votre macro avec cette modif.
Commencer et finissez votre macro avec :
VB:
Private Sub Workbook_Open()
T0=Timer
...
Votre code
...
MsgBox Timer-T0
End Sub
Et dites nous combien de liens vous avez et le temps que cela prends.
 
Bonjour à tous

@Alstroemeria

1736507636584.png


Rien ne t’empêche de fournir un fichier représentatif 😳

C'est quoi représentatif ?

- représentatif, même organisation des lignes et des colonnes, mêmes libellés, même nom des TS, mêmes noms de feuilles...
- anonymisé, pas de données personnelles réelles tels nom, n° sécu, adresse ... remplacé par Nom1, Nom2 etc ....
- simplifié, une quinzaine de lignes reproduisant l'ensemble des différents cas envisageables (Avec le résultat souhaité éventuellement)

Si cela fonctionne sur le fichier fourni et pas sur le vrai fichier c'est qu'il n'est en rien représentatif ou que tu n'as pas su transposer ce qui devrait être un simple copier coller du code.

Comment veux tu que l'on t'aide si tu ne nous donnes rien à examiner

Et ton fichier à combien de ligne avec des liens ???
 
Bonjour.
Personnellement, j'utilise les instructions suivantes qui permettent une réelle accélération :
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False

suite du code

Application.Calculate
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Application.EnableEvents = True
exit sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour