En direct d’Excel Virtually Global (2/2)

Je continue d'avoir beaucoup de plaisir à écouter tous ces experts discuter d'Excel.

Menu dynamique:

Audit de classeurs

Excellente liste de points à vérifier lors de l'audit d'une feuille de calcul. Présentation de Patrick O'beirne (http://www.sysmod.com/).

Voici un extrait de sa liste de "bad smells"

  • Erreurs sur les références relatives/absolues (le $).
  • Vérification des liens externes.
  • Calculs manuels.
  • Vérification des types de données (par exemple, des dates mal formatées, du texte à la place de nombres).
  • Recherchev, Match avec la valeur 0 ou 1 mal appropriée.
  • Long code VBA provenant de l'enregistreur de macro.

Quelques trucs pour identifier des erreurs:

  • Remplacer des valeurs numériques par des 0 et des 1 pour voir si tout est ok (sur une copie de sauvegarde, bien sur).
  • Avoir des données valides de référence pour vérifier que les calculs sont exacts.
  • Mise en couleur des formules, avec une couleur différente par formule différente. De fait, si dans une ligne ou une colonne, on a des formules différentes, on va tout de suite les voir. Patrick a fourni gratuitement ce fichier pour faire cela : www.sysmod.com/xltest_colorizer.zip
    Par exemple, ca m'a permis de rapidement identifier des erreurs potentielles en colonne AO, AP et AQ :

Je rajouterai :

  • Plages entrées en dur en VBA, par exemple, range("A1:A10"), ce qui peut générer des problèmes si quelqu'un ajoute ou supprime des lignes ou si d'autres données sont entrées en A11
  • VBA: Utilisation du nom de la feuille, au lieu du nom de l'objet feuille, sauf s'il y a un contrôle absolu de l'application.

Il y a même un certificat : http://www.spreadsheetsafe.com/

Excel Dot Net for Application (DNA)

Il y a eu beaucoup de discussions sur les langages de programmation qui peuvent être utilisés autour d'Excel. Parmi ceux-ci, on retrouve .Net, mais aussi Python, Java, etc.
Voici donc quelques limites d'Excel justifiant l'utilisation de .Net:

  • Multithreading
  • Streaming pour des données en temps réel
  • Parfois plus rapide
  • Nombreuses librairies
  • Etc.

PyXLL pour l'utilisation de Python

Charles Williams - Construire des solutions Excel plus rapide

  • Utilisation d'un chronomètre en VBA. Charles utilise un MicroTimer qui vient - sauf erreur de ma part - avec une de ses applications. De mon côté, j'utilise le Timer qui est suffisant pour beaucoup de cas.
  • Déclarer des variables tableaux en double peut faire gagner du temps (si les valeurs à charger sont bien toutes de ce type de données).
  • Au lieu de comparer des Strings une à une - ce qui prend beaucoup de temps d'après Charles - il propose d'abord de tester si le nombre de caractères est le même avec la fonction LenB, puis de comparer ensuite les chaînes de caractère.
  • En plus de ScreenUpdating et autres EnableEvents, Charles a aussi mentionné ceci : Application.EnableAnimations = False.
  • Personnellement, j'évite au maximum de jouer avec les calculs, juste au cas où Excel plante et que le calcul n'est pas remis.

Du VBA encore plus rapide :

  1. On retrouve classiquement l'utilisation des variables tableaux pour lire ou écrire en une seule fois les données. Voir ici.
  2. Démonstration de l'utilisation de worksheetFunction qui est aussi très très rapide. L'idée générale étant de laisser Excel faire le travail plutôt que de le reprogrammer en VBA.
  3. Une conclusion très intéressante de la démonstration est que l'utilisation de WorksheetFunction.Match DIRECTEMENT AVEC une plage est 15 fois plus rapide que WorksheetFunction.Match avec un array issu d'une plage!

Il y a encore beaucoup, beaucoup de choses à dire, mais je vais digérer un peu tout ça !

En direct d'Excel Virtually Global (1/2)

Bonjour à tous,

Il se déroule actuellement un forum virtuel en Anglais. Je vais reprendre ici quelques pépites que j'ai découvertes grâce à toutes les présentations disponibles. Évidemment, il va manquer beaucoup beaucoup de choses - il y aura 50h de vidéos au total !

Voici le lien vers la conférence si la langue de Shakespeare ne vous fait pas peur !

Graphiques dynamiques:

  • La vidéo est largement inspirée de celle de Liam Bastick
  • Utiliser une table comme source de données afin de la rendre dynamique.
  • Les derniers 10 mois saisis en utilisant MAX et aussi Fin.Mois
  • ALT+F1 pour ajouter un graphique.
  • Afficher les données de cellules masquées.
  • Titre dynamique.
  • Format personnalisé avancé combiné avec une mise en forme conditionnelle. Je n'avais jamais pensé à combiner ces deux mises en forme, mais je vais garder ça en tête pour de futures applications.
  • Le lien pour transformer ii en index/equiv.
  • Le fichier créé dans la vidéo.

Data Streamer

https://www.microsoft.com/en-us/education/hackingstem/datastreamer

En gros, ca permet de connecter un kit Arduino et de récupérer les données en direct dans Excel. C'est assez impressionnant et je sens que je sais ce que va être mon cadeau d'anniversaire ! Il y a tout un tas de capteurs possibles (anémomètre, détecteur de distance...).

Monkey Tools Add-in

Si vous utilisez PowerBI avec Excel, voici un outil qui devrait beaucoup vous aider. Pas trop au début - ça n'est pas pour les débutants - , mais dès que vos requêtes deviennent un peu complexe, trop lentes ou trop lourdes à gérer ; l'outil devient incontournable.

https://www.excelguru.ca/content.php?341-Monkey-Tools

Jinx - Utiliser Java avec Excel

Jinx permet de faciliter la manipulation d'Excel via le langage Java. C'est un outil qui devrait permettre d'établir des ponts entre les utilisateurs finaux d'Excel et les informaticiens. Vous pourrez enfin bénéficier du meilleur des deux mondes.

Quelques rappels de touches de raccourcis et de boutons qu'on n'utilise jamais... Alors qu'on devrait !

F5, puis atteindre, puis Différences par lignes ou par colonnes qui permet de valider que toutes les formules de la sélection sont identiques.

Utilisation des styles (onglet Accueil) pour formater les zones à saisir, le type de données, etc.

Petit rappel de l'existence du bouton Effacer du menu Accueil

Touche Windows et les flèches pour organiser les fenêtres.