Nouveau style de contour

Pour diversifier vos schémas, Excel a maintenant (au moins pour la béta que je teste) la possiiblité de changer les types de traits pour Croquis.

Si vous en avez marre des lignes droites bien faîtes, voici un outil qui pourra être utile pour faire des "croquis" ! Après, on sélectionne tout et on change le trait pour une ligne pleine 🙂

Voici comment y accéder, après avoir sélectionné votre forme :

Pour ne plus pleurer

Le problème de la corruption des fichiers

L'une des choses les plus horribles qui puissent arriver à vos fichiers excel, c'est de tout perdre suite à la corruption du fichier. C'est une situation assez rare - heureusement - mais qui peut quand même arriver... 2 étudiants sur 40 lors de mon dernier cours avec des fichiers assez complexes.

Pour limiter les dégâts, voici un code VBA qui va - lors de chaque fermeture du fichier - sauvegarder une version du fichier en incluant la date et l'heure.

Comme cela, si le fichier se corrompt, vous pourrez toujours repartir d'un dernier enregistrement non corrompu.

Procédure :

Enregistrez d'abord le fichier.

Dans VBE (ALT+F11), double-cliquez sur ThisWorkbook, puis coller ce code.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim fso As Object
    Set fso = VBA.CreateObject("Scripting.FileSystemObject")
    ThisWorkbook.Save
    fso.CopyFile ThisWorkbook.Path & "\" & ThisWorkbook.Name, ThisWorkbook.Path & "\" & Replace(Date, "/", "-") & "-" & "-" & Replace(Time, ":", "-") & "-" & ThisWorkbook.Name
End Sub

Beaucoup d'améliorations sont possibles, j'y reviendrai dans d'autres posts.

  • Vous pourriez garder uniquement les n fichiers les plus récents.
  • Vous pourriez changer le répertoire de sauvegarde.
  • Finalement, vous pourriez créer la copie à chaque sauvegarde grâce à l'événement Workbook_AfterSave.

PS : sur certains ordinateurs, ce code peut poser des problèmes en raison du Scripting.FileSystemObject. Si c'est le cas, il existe plusieurs raisons :

  • Vous êtes sur MAC. Il existe des alternatives, mais c'est un peu compliqué.
  • Il est possible qu'il y ait des protections si vous travaillez sur un serveur.
  • Il manque une référence au système de script (Dans VBE, Outils-Références, Microsoft Scripting Runtime). Le fichier se trouve en général ici : C:\WINDOWS\System32\Scrrun.dll. S'il n'est pas là, vous pouvez l'ajouter en choisissant Parcourir...

SI.NON.DISP

Vous connaissez certainement la fonction SIERREUR. Elle permet de remplacer la combinaison = SI(ESTERREUR(...)).

Voici une autre fonction qui permet d'identifier l'erreur #N/A, au lieu d'utiliser =SI(ESTNA(...)).

Elle s'utilise de la même manière que SIERREUR :

=SI.NON.DISP(valeur, valeur_si_na)

Quand utiliser l'une par rapport à l'autre?

Evidemment, cela dépend de la situation.

  • Si vous ne voulez capturer que l'erreur NA, le cas le plus courant étant une RECHERCHEV ou un INDEX/EQUIV, alors, utilisez SI.NON.DISP
  • Si vous voulez capturer toutes les erreurs, alors on utilise SIERREUR.

Par exemple, supposons que vous vouliez retouner la valeur du CA pour la ville sélectionnée, en gérant l'erreur.

Si la valeur cherchée existe (Lille), mais qu'elle renvoit une valeur d'erreur (ici #DIV/0), la fonction SI.NON.DISP va retourner la valeur d'erreur, ce qui est une bonne chose, car l'information retournée est plus précise. La fonction SIERREUR retourne le message d'erreur indiqué dans la formule.

Dans le cas de Parris (avec deux "r"), les deux fonctions vont retourner le message d'erreur indiqué dans la formule.

Question subsidiaire, mais pourquoi n'ont ils par utilisé la fonction SINA !!!

PS : pour en savoir plus sur la combinaison INDEX/EQUIV, regardez cette série de vidéo :