Fichier excel très lent

[Résolu/Fermé]
Signaler
Messages postés
284
Date d'inscription
samedi 10 décembre 2011
Statut
Membre
Dernière intervention
26 juin 2021
-
Messages postés
24149
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
4 août 2021
-
Bonjour,
J'utilise un fichier excel quotidiennement. Je rencontre divers soucis de lenteur que je n'arrive pas à supprimer. essais sur différents PC.
Il y a plusieurs macros qui tournent, mais je n'avais pas de soucis jusqu'à maintenant.
J'ai simplement rajouté des lignes sur les trois feuille.
De plus quand je transfert ce fichier par mail, il devient pour le destinataire outre la lenteur extrême, mais en plus en lecture seule ??
Merci pour tout aide précieuse.
Cdt

Le fichier: https://www.cjoint.com/c/CAglAFPCEuL


9 réponses

Messages postés
24149
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
4 août 2021
6 853
Bonjour,

C'est ta formule en Récapitulatifs colonne B qui prend beaucoup de ressources.
Les matricielles c'est très gourmand.

eric
Messages postés
284
Date d'inscription
samedi 10 décembre 2011
Statut
Membre
Dernière intervention
26 juin 2021
13
Bonjour eriiic,
Je te remercie pour cette réponse très rapide.
Y aurait il une solution ?
Cdt
Messages postés
24149
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
4 août 2021
6 853
Le faire par macro.
Par ailleurs tu peux avantageusement remplacer ta formule en Tableau Commandes!A5 par :
=Feuil3!A2

eric
Messages postés
24149
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
4 août 2021
6 853
suite...
Un exemple si c'est une liste sans doublon que tu veux. A mettre dans Récapitulatifs :
Private Sub Worksheet_Activate()   
    Dim dict, c, ref   
    Set dict = CreateObject("Scripting.Dictionary")   
    With Worksheets("Feuil3")   
        ref = .[E2].Resize(.Cells(Rows.Count, 5).End(xlUp).Row - 1, 1).Value   
        For Each c In ref   
            dict(c) = c   
        Next c   
    End With   
    [B4].Resize(Cells(Rows.Count, 2).End(xlUp).Row - 3, 1).ClearContents   
    [B4].Resize(dict.Count, 1) = Application.Transpose(dict.keys)   
End Sub

mettre Récapitulatifs!B au format texte.
La liste se mettra à jour à l'activation de la feuille Récapitulatifs
eric
Messages postés
284
Date d'inscription
samedi 10 décembre 2011
Statut
Membre
Dernière intervention
26 juin 2021
13
Eriiic,
J'avais mis une réponse elle n'a pas été prise en compte apparemment...
Si celà peut-être utile voici le fichier avant le rajout des lignes
et la case "Recherche", il tourne parfaitement sans ralentissement.
https://www.cjoint.com/c/CAgqswhCFP1

Je pense que je vais essayer de rajouter les lignes sur celui-ci, et mettre la case recherche avec sa formule (c'est pas gagné).
Ma crainte est que le rajout des lignes (le top serait 200 sur "tableau de commande et récapitulatif) ralentisse le tableau.

La formule "=Feuil3!A2 " fonctionne en l'état actuel, mais en feuille 3, j'actualise les données par l'import d'un fcihier texte, et avec cette formule, ça fait des décalages, et des cellules avec "#REF!", d'où les formules mises par un membre de ce superbe forum.
Au plaisir de te relire.
Cdt
Messages postés
24149
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
4 août 2021
6 853
il tourne parfaitement sans ralentissement.
Il met quand même presque 2s à s'actualiser.
Et si tu passes à nouveau à 250 lignes dans Récapitulatifs tu repasses à 4-5s.

Je t'ai proposé une macro qui fait la même chose en 0.05s, à toi de voir...
https://www.cjoint.com/c/CAgqUB1E5WS

eric
Messages postés
284
Date d'inscription
samedi 10 décembre 2011
Statut
Membre
Dernière intervention
26 juin 2021
13
Je te remercie pour cette avancée.
Effectivement, il fonctionne parfaitement.
Si j'ai tout bien suivi, sur "récapitulatif", tu as fait une macro qui met à jour à chaque fois que l'on visualise cette feuille, d'où le délai de 4 à 5 secondes ? c'est bien celà ?
Il ne me reste plus qu'à recopier le code et la zone recherche. Je vais faire des tests.
je ne manquerai pas de te tenir informé.
Cdt
Messages postés
284
Date d'inscription
samedi 10 décembre 2011
Statut
Membre
Dernière intervention
26 juin 2021
13
Par contre quand je recopie le code pour la zone recherche sur le nouveau classeur ça plante !!
C'est une usine à gaz mon fichier non ?
Messages postés
24149
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
4 août 2021
6 853
La macro crée une liste sans doublon de Feuil3!E:E et la colle en Récapitulatif!B4.
Prend la version du fichier joint au dernier post, j'ai ajouté un test si tu démarre sur une feuille vide.

eric
Messages postés
284
Date d'inscription
samedi 10 décembre 2011
Statut
Membre
Dernière intervention
26 juin 2021
13
Merci Eriiic,
Ca m'a l'aire de fonctionné super bien et sans aucun ralentissement.
Dernière chose que je n'arrive plus à effectuer, j'avais une zone "recherche" en haut de mon tableau faite par un memebre avec une macro, je n'arive pas à la recopier.
Cdt
Messages postés
24149
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
4 août 2021
6 853
Bonjour,

ca veut dire quoi : je n'arive pas à la recopier.
eric
Messages postés
284
Date d'inscription
samedi 10 décembre 2011
Statut
Membre
Dernière intervention
26 juin 2021
13
Je fais un copier/coller de la zone en mode "création" sur l'onglet "développeur",
puis je recopie le code, mais ça marche pas.
C'est la zone "Recherche" sur le fichier du premier post:
https://www.cjoint.com/c/CAglAFPCEuL
Messages postés
24149
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
4 août 2021
6 853
Dernière tentative.
Essaie d'être précis et complet dans tes explications...
Tu copies le code d'accord, mais pour en faire quoi ? Que cherches-tu à faire ?
Messages postés
284
Date d'inscription
samedi 10 décembre 2011
Statut
Membre
Dernière intervention
26 juin 2021
13
Sur la feuille "Tableau de commande", je cherche à créer une zone recherche en haut de mon tableau, afin de ne sélectionnez que les lignes dont la référence recherchée est indiquée.
En quelque sorte, je souhaite "automatisé" un "CTRL F".
Une fois les lignes sélectionnées, je souhaite qu'elles soient "marquées" soit par une coloration de la ligne, soit un autre marquage.
De cette manière une fois, les références reçues traitées, ne resteraient visibles que les manquantes.
J'espère que ces explications seront suffisantes.
Je joins un fichier avec le résultat que je souhaiterai
https://www.cjoint.com/c/CAhkoOQfXEX
Bien cordialement
Messages postés
24149
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
4 août 2021
6 853
On devait deviner tout ça ???

Ajoute une zone de texte ActiveX, clic-droit 'propriétés' pour la nommer 'choix', double-cliquer dessus et colle le code du post 12

eric

PS : et arrete de poster des fichiers qui mettent 30s à s'ouvrir comme au post 12. Supprime les formules matricielles quand tu postes un exemple....
Messages postés
284
Date d'inscription
samedi 10 décembre 2011
Statut
Membre
Dernière intervention
26 juin 2021
13
Merci de ta réponse aussi rapide et qui a finalisé mon tableau, je te remercie grandement.
"On devait deviner tout ça ??? "
Non, absolument pas, mais tu me demandes des explications claires, je te les ai fournies.
Sur le tableau que tu m'adresses au post #6, il me manquait cette zone, et je me devais de te fournir un maximum d'explications.
"PS : et arrete de poster des fichiers qui mettent 30s à s'ouvrir comme au post 12. Supprime les formules matricielles quand tu postes un exemple...."
J'en prend acte, je ferai très attention la prochaine fois, mais je pensais qu'il était nécessaire d'envoyer le fichier complet afin que les différentes macros, formules etc.. soient visibles.

Quand je poste une demande sur le forum (très enrichissant, et formidable), c'est que mes connaissances sur Excel ont atteint leurs limittes. Contrairement à certains autres membres demandeurs, je laisses toujours mes fichiers libre d'accès afin qu'ils puissent servir.
Je te remercie du temps accordé et te souhaite une agréable journée.
Bien amicalement
Messages postés
24149
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
4 août 2021
6 853
J'en prend acte, je ferai très attention la prochaine fois, mais je pensais qu'il était nécessaire d'envoyer le fichier complet
Disons que ce problème de lenteur (qui t'exaspérait et dit toi que ça nous fait le même effet) était résolu et ta question n'avait plus rien à voir.
Autant travailler sur un fichier propre et réduit au minimum pour la question posée.
eric