7 règles d’or pour appréhender un fichier Excel complexe !

7 regles images 1Bonjour à tous,

Cela va surement vous arriver : vous démarrez une nouvelle mission et vous devez mettre à jour et/ou perfectionner un fichier méga-complexe. Pas de panique !

De façon à éviter des grosses catastrophes, voici une série de règles d'or pour y arriver au mieux.
Bien sur, si vous voyez d'autres aspects, n'hésitez-pas à commenter ci-dessous :-).

Comme me l'a fait remarquer mon ami Dominique H., ces règles sont itératives et l'ordre dépend du projet : "Pour ma part, je documente plus rapidement qu'il n'est conseillé par cette méthode. Autrement dit, j'alterne des actions visant à une compréhension locale et les actions visant à une compréhension globale. Donc une alternance de top-down et bottom-up.". Merci Dominique !

1. Sauvegardez !

Faites une copie du dossier contenant les fichiers, assurez-vous que les sauvegardes soient faites régulièrement et travaillez sur la copie de sauvegarde dans un premier temps

En effet, si vous ouvrez un fichier complexe, il y a de fortes chances que des liaisons avec d'autres fichiers soient actives.

De fait, sauvegardez non seulement le fichier, mais aussi les fichiers liés. Si les fichiers sont tous dans le même répertoire, faites une copie du répertoire.

copier 1

De manière générale, je tente d'éviter les liaisons entre fichiers, mais cela n'est pas toujours possible.
Pour voir les liaisons : Onglet Données, Modifier les liens.
liaison_fichier_externe 1

Idéalement, travaillez sur le fichier de sauvegarde pour le comprendre en profondeur avant de modifier le fichier original.

2. Discutez avec l'auteur et les utilisateurs du fichier

Ca peut sembler évident, mais si l'auteur du fichier est encore joignable, cela peut vous faire gagner un temps considérable.
Passez au moins deux heures avec l'auteur du fichier pour comprendre la philosophie du fichier, la structure globale et les points délicats du fichier.
Discutez aussi avec les utilisateurs pour comprendre comment le fichier est utilisé.

3. Prenez votre temps

Si le fichier est très complexe, plusieurs jours sont parfois nécessaires pour comprendre toute la structure du fichier.

4. Documentez

C'est aussi un excellent moyen de s'assurer que l'on maîtrise complétement le fichier.
Pour cela :
- créez une feuille ou un document word dédié à la documentation.
- ajoutez des commentaires directement dans les cellules - clic droit, ajouter un commentaire, ou via l'onglet Révision :
novueau-commentaire 1

5. Comprenez parfaitement la structure globale

Il s'agit ici de prendre connaissance de toutes les feuilles qui existent dans le fichier.

- Par exemple, assurez vous que vous connaissez les feuilles masquées, clic droit sur une feuille :
feuilles_masquees 1

- ou encore les feuilles masquées via VBA (xlSheetVeryHidden).
Ouvrez l'éditeur de visual basic et regardez si des feuilles ont la propriétés XLVeryHidden - ALT+F11, sélectionnez la feuille, touche F4 pour afficher les propriétés :
xlSheetVeryHidden 1

6. Affinez la compréhension des formules

Voici quelques outils que l'on peut combiner :
- Sur une cellule qui contient un calcul qui utilise plusieurs cellules de la feuille >> clic dans la barre de formule pour avoir un visuel sur les cellules concernées - leurs bordures se colorent tout comme leurs références dans la formule. Merci à Laurent J. pour la suggestion.
- Utilisez les outils d'audit, pour repérer les antécédents et les dépendants.
- Affichez toutes les formules.
- Évaluez les formules.

audit

- Une alternative plus rapide pour évaluer les formules consiste à sélectionner une partie de la formule et appuyer sur F9 pour calculer cette sélection.
ATTENTION à ne pas valider cette formule, sinon vous allez rendre le fichier inutilisable. Donc utilisez la touche ECHAP au lieu d'entrée pour sortir de la formule sans valider.
Voir aussi ici pour une explication plus détaillée.

toucheF9

- ATTENTION, si vous voyez des { } autour des formules, il s'agit de formules matricielles qui sont validées par CTRL+MAJ+ENTREE, donc si vous devez les éditer, sortez de la formule avec ECHAP, mais ne validez surtout pas avec seulement la touche ENTREE. Si vous devez modifier la formule, validez avec CTRL+MAJ+ENTREE.
formule-matricielle

- Connaissez vos noms. Souvent dans des fichiers complexes, de nombreux noms ont été créés et il convient donc de bien les analyser.
Pour cela, utilisez le Gestionnaire de noms, disponible dans l'onglet Formules :

- Utiliser l'outil espion pour visualiser simultanément des changements dans plusieurs endroits du fichier
fenetre-espion 1

Gestionnaire-de-noms 1
Vous pouvez aussi coller la liste des noms pour faire une analyse plus fine :
coller-liste-noms

7. Comprendre le code VBA

On pourrait refaire une longue liste pour ce point, mais il est essentiel de bien comprendre le code VBA du fichier.
Pour cela, utilisez les outils de débogage :
- Ajout d'un point d'arrêt en cliquant dans la marge
vba-point-arret 1
- Déroulement pas à pas avec les touches de raccourci appropriées
VBA-pas-a-pas
- Utilisation des espions
vba-espion 1

Et il y a encore pleins d'autres en VBA, mais ca sera pour une prochaine fois !

Je vous invite à commenter pour partager votre propres trouvailles :-).

A bientôt.

Gaëtan

Quatre conseils pour des fichiers Excel très lents

Bonjour à tous,

Je viens de passer une demi-journée à optimiser un fichier extrêmement lent - que je n'ai pas créé :-).
Pour chaque nouvelle entrée, on doit littéralement attendre 10 secondes avant de récupérer la main !

Voici une petite synthèse des points à vérifier :
- Évidemment, on commence par vérifier les calculs et on les optimise. Si ca n'est pas possible, on peut passer en mode manuel, mais personnellement, je préfère optimiser les formules à la place. Par exemple, des Somme.Si.Ens à la place des formules matricielles.

- Présence de mises en forme conditionnelles. Celles-ci, depuis Excel 2007, ont tendance à s'accumuler dès que l'on fait des copier-coller en conservant le format.
Voir ici pour plus de détails.

- Présence de liens externes, à la fois dans des formules, mais aussi dans des noms. Il y a plusieurs écoles, mais j'évite les liens externes au maximum, surtout si on doit en mettre beaucoup. Si on n'a pas le choix en terme d'organisation des fichiers, je préfère une solution de connexion à des données externes pour rapatrier une table, et l'actualiser à l'ouverture.

- Il semblerait - mais je n'ai pas poussé l'analyse - que faire des liens sur des fichiers stockés dans une dropbox ralentisse le système.

Malheureusement, la liste est loin d'être exhaustive !

N'hésitez pas à partager vos trouvailles !

A bientôt.

Gaëtan

Lister les noms d’un classeur et question…

Il y a une astuce connue très très pratique qui permet de lister tous les noms d'un classeur.

Pour cela, dans l'onglet Formules, sélectionner dans l'onglet "Formules", "Dans une formule", "Coller des noms..." et enfin, "Coller une liste".

coller_les_noms

C'est donc un outil très pratique.

Par contre, là où je coince, c'est comment faire apparaître un nom qui a été défini sur une table.
Dans la zone de noms, le nom créé n'apparaît pas !
Des idées ?

A bientôt.

Gaëtan