Droite, gauche, droite, gauche…

Un truc tout bête auquel je viens juste de penser...

Vous connaissez surement STXT qui permet de renvoyer une chaîne de caractère à partir de la position de début et de la longueur.

Mais comment faire l'inverse : partir de la fin de la chaîne pour renvoyer un certain nombre de caractères.
Par exemple, retourner le nombre de secondes - ici 24 - qui se trouvent juste avant les millisecondes ? Il faut donc partir de la fin de la chaîne.
Methode 1 sans test "," union : 19:23:05 - Tps : 00:00:24:49

Une solution est de faire une soustraction avec la fonction NBCAR dans une fonction STXT :
=STXT(A4;NBCAR(A4)-4;2)
qui se lit : en considérant la chaîne de caractère en A4, on part de (nombre de caractères total - 4) et on retourne 2 caractères. Le 4 correspond à 5 caractères moins 1 caractère.

En fait, on peut aussi faire quelque chose de similaire avec =GAUCHE(DROITE()) :
=GAUCHE(DROITE(A4;5);2)
Prends les 5 derniers caractères de A4 (DROITE), puis, prends les 2 premiers caractères du résultat (GAUCHE)

Les deux formules sont identiques en terme de résultats, mais je trouve la deuxième un peu plus facile à comprendre, car on ne doit pas faire de calcul pour déterminer le 4 (5-1). A chaque fois, mon cerveau fait un mini-nœud sur le -1.

Vous pouvez télécharger le fichier ici.

A bientôt.

Gaëtan

Pourquoi est-ce si lent de protéger une feuille avec Excel VBA?

Etant en train d'optimiser des (gros) fichiers, un des problèmes était lié à la protection des feuilles. En fait, avec l'arrivée de 2013, le mécanisme de cryptage a été amélioré, et donc, il est plus lent...Ca ne se sent pas sur une feuille, mais sur une vingtaine de feuilles, c'est remarquable (plusieurs secondes).

Résultat : on repense complétement la manière dont les feuilles doivent être protégées.

Souvent, en informatique, il y a une solution simple et évidente, mais pas optimale, et ensuite, il faut se creuser les neurones pour l'optimiser, et là, ça devient complexe !!!

A bientôt...

Gaetan

Ajouter un graphique lié à deux tableaux croisés dynamiques (TCD)

Suite à la publication de mon dernier bébé, voici une astuce complémentaire pour lier un graphique à deux tableaux croisés dynamiques.

En fait, l'astuce est toute simple, il faut partir d'un graphique vierge et on ajoute les données au fur et à mesure, mais manuellement. On n'y pense pas forcément, car si on lie le graphique en partant du TCD, il devient automatiquement un graphique dynamique, et donc lié à un seul TCD et non pas deux.

Si vous n'y connaissez rien en TCD, voici un petit rappel.

Voici la procédure :
1/ Ajout du graphique vierge à partir d'une cellule vide
2/ Onglet Création - Sélectionner les données - Ajout des séries comme indiqué ci-dessous.
3/ Dans les options du champ "produit" pour les deux TCD, on va trier de A à Z et afficher les éléments sans données.
4/ Attention à ajuster le graphique si de nouveaux éléments apparaissent. C'est donc une technique plutôt adaptée à des listes finies de produits.

A bientôt
Gaetan