La beauté du VBA… Recopier des formules dans PowerQuery

Je viens de finir avec un client - grosses importations de données bancaires, tout va bien, le processus d'alimentation de la trésorerie est parfait, et là... Paf, la formule ne se recopie pas vers le bas. WTF, comme disent les anglophones...

Bref, il faut passer par du VBA, car la formule ne tient pas à l'intérieur d'une requête PQuery. Si on la met dans une colonne à droite, ca a l'air de bien fonctionner cependant, mais pour d'autres raisons, ca n'était pas une option envisageable.

Le code VBA lui-même est soit l'utilisation de FillDown en sélectionnant la bonne cellule au préalable, soit ajouter la formule avec Formula2R1C1...Il y a peut être aussi d'autres solutions.

Et vous, avez-vous d'autres exemples de cas où le VBA est incontournable, malgré l'existence de l'outil ou de la fonction Excel.

Offre exceptionnelle jusqu’au 24-02-2024 : Transformez votre travail grâce à Modern Excel avec une réduction exclusive sur la formation !

Bonjour à tous,

Vous êtes tout nouveau sur Excel 2021 ou 365?

Bravo, maintenant xlérons votre productivité !

Pour fêter ce début d'année 2024, je vous offre 20 € de réduction sur ma dernière formation sur Modern Excel, et ce jusqu'au 24/02/2024. Si vous avez récemment migré sur Excel 2021 ou 365, ne perdez pas une seconde pour démarrer votre révolution excellienne.

Cliquez ici pour en savoir plus.

A bientôt.

Connaitre la taille de certains éléments d’un fichier (styles, macros, feuilles, etc.)

Je viens de raccrocher avec une client qui a vu passer son fichier de 173 ko à 1 200 ko sans comprendre pourquoi...

Kesako ?

Au delà d'une exploration directe des raisons (voir plus bas) dans le fichier, une autre astuce consiste à faire ceci :

1/ Dans l'explorateur de fichier, copier coller le fichier (on ne sait jamais)

2/ Changer l'extension du fichier pour un .zip (au lieu d'un .xlsm par exemple)

3/ Explorer le contenu. On va voir assez vite où se trouve le problème. Par exemple, dans le répertoire xl/worksheets, on a toutes les feuilles.

Ça va donner quelque chose comme ceci. J'ai ensuite trié les feuilles en fonction de leurs tailles.

On peut ensuite faire un copier coller du fichier .xml qui nous intéresse et l'ouvrir dans Notepad++.

On arrive à ceci, qui indique grâce au codename que sheet11.xml correspond à la feuille nommée "Feuil20".

Dans le cas de ma cliente, il s'agissait de plus de 30000 styles qui avaient été ajoutés dans le fichier - comment, je ne sais pas encore !

Cette astuce qui consiste à "dézipper" un fichier Excel peut être utile dans d'autres cas* :

  • Changer l'onglet du ruban pour des macros complémentaires
  • Explorer les noms natifs des objets Excel, par exemple lors de réparation de fichiers
  • Récupérer des informations dans un fichier corrompu
  • Modifications avancées - je n'ai jamais eu à le faire et probablement très dangereux, mais en théorie ca devrait être possible
  • Suppression de certains éléments - même chose, en théorie ca devrait être possible

Si vous voyez d'autres utilisations, n'hésitez-pas !

Pour une petite liste non-exhaustive de points à vérifier sur un fichier anormalement gros, vous pouvez :

  • vérifier les mises en formes conditionnelles
  • vérifier la dernière cellule vide chaque feuille (CTRL+Page Suivante, puis CTRL+Fin)
  • vérifier les styles utilisés
  • vérifier si des TCDs conservent les données - c'est le mode de fonctionnement par défaut. Pour cela, clic droit sur le TCD, options, onglet données. vérifier la première option "Enregistrer les données avec le fichier".

A très bientôt

PS : merci aux contributeurs sur lInkedin pour les discussions intéressantes à ce sujet :

* liste partiellement complétée avec ChatGPT après avoir enlevé les hallucinations. Vous pouvez vous amuser à lui demander toute une liste et voir différentes hallucinations apparaître ! ???