dimanche 17 février 2013

Comment rater un projet de Business Intelligence ?

Même mal engagé ou devenu inutile, un projet informatique est rarement abandonné. C’est encore plus vrai pour un projet de Business Intelligence, lié qu’il est à la stratégie de l’entreprise. Au pire, on le redéfinit, on le recentre, on le replanifie, on le resize...

Au-delà de la question stratégique, cela s’explique aussi par l’importance des budgets engagés. Un projet Business Intelligence n’est pas le énième lot d’une application spécifique utilisée par tel ou tel département, ni la montée de version d’un logiciel lambda. C’est un gros projet qui touche tout le monde ou presque, et un budget lourd pour l’entreprise. Autrement dit : il ne faut pas se rater.

Pourtant, l’ampleur d’un tel projet laisse la place à de nombreuses possibilités d’erreur. Du fait de son étalement dans le temps et de sa large portée à travers l’entreprise, un projet Business Intelligence fourmille d’opportunités d’échec, tant en termes de décisions que de façons de faire, et ceci à n’importe quelle étape.

L’esprit ironique de ce billet fait écho à mon billet de mars 2012 sur la thématique du tableau-Excel-trop-ambitieux-et-finalement-inexploitable (“Comment rendre un tableau inutile ?”). Et tout comme dans ce billet-là, mon point de vue est résolument opérationnel : il y a aussi des manières de compromettre un projet BI depuis une Direction SI mais ce n’est pas mon domaine donc je n’en parlerai pas ici !

Petit tour d’horizon des ingrédients d’un échec...

dimanche 21 octobre 2012

Ajuster le filtre automatique

Pour enrichir une table, on a parfois besoin d’y ajouter une colonne. On peut faire ça à deux endroits :
- soit quelque part au milieu de la table par insertion d’une nouvelle colonne ;
- soit à côté de la table, c’est à dire dans une colonne vide à gauche ou à droite.

Par ailleurs, on travaille parfois avec le filtre automatique et on veut le garder en place (qu’on l’utilise ou non pour l’enrichissement de la table). Le comportement de ce filtre est différent selon le cas ci-dessus :
- dans le premier cas (insertion d’une colonne au milieu de la table), il n’y a pas de souci : le filtre automatique couvre aussi la colonne insérée ;
- mais dans le second cas (ajout à gauche ou à droite), le filtre automatique ne s’étend pas à la nouvelle colonne !


Si on veut conserver un filtre automatique couvrant l’ensemble de la table, il va falloir enlever le filtre automatique puis le remettre en place.

dimanche 2 septembre 2012

Convertir des € en K€

Bon, convertir des € en K€, ce n’est pas difficile du tout, il suffit de diviser par mille.
Soit.

Oui mais : si on a une grande plage de valeurs à convertir ?
Bon, pas trop difficile : on saisit la valeur 1000 dans une cellule vide à quelque part, on copie cette cellule, on sélectionne toute la plage de données, on fait Edition / Collage spécial / Valeurs + Multiplication, et voilà. Ca marche pour une colonne entière ou même pour plusieurs colonnes contiguës.

Oui mais : si on a plusieurs plages non-contiguës ?
Bon, c’est un peu fastidieux mais c’est gérable : on fait la même chose plusieurs fois !

Oui mais : si on doit faire cette manip à intervalles réguliers ?
Là ça devient pénible.


La macro ci-dessous fait ce travail.

dimanche 19 août 2012

Appliquer la fonction Somme dans plusieurs champs d’un TCD.

Parmi les manipulations qu’on est amené à faire sur les champs d’un TCD, il y en a plusieurs qu’on ne peut faire que sur un champ à la fois.

On en a vu une dans le billet du 22 janvier dernier : on parlait des sous-totaux de champs (de lignes par exemple), qu’on ne peut supprimer qu’un après l’autre - jusqu’à Excel 2003. Avec une macro VBA, on a alors vu comment les supprimer tous d’un seul coup.

Ici on va en voir une autre, à propos des fonctions d’agrégation des champs de données.


Mise en situation.

Parfois on génère un TCD, on place ses champs de données et on se retrouve devant ça :


Ça, c’est les fonctions d’agrégation qu’Excel utilise par défaut pour les champs de données. Vous avez sans doute remarqué qu’Excel utilise parfois la Somme, parfois le Nombre.

dimanche 1 juillet 2012

Convertir un nombre en texte

Le billet de dimanche dernier portait sur les manipulations d’Excel autour du mode Edition : entrer&sortir d’une cellule.

C’était l’occasion d’utiliser l’instruction SendKeys, qui simule une action utilisateur au clavier. Au-delà de cette opération entrer&sortir, l’un des premiers usages que j’avais fait de cette instruction avait été de bricoler une macro qui me permette de convertir facilement un nombre en texte si ce nombre avait été malencontreusement entré comme valeur numérique.

Par exemple, si j’avais un listing d’adresses dont l’une des colonnes était le code postal, il arrivait que ces codes postaux aient un format numérique - le format par défaut pour des nombres. Bien sûr dans beaucoup de cas on pourrait travailler avec les valeurs numériques de ces codes postaux ; mais ça pourrait poser problème dans certaines situations.

Illustration avec les codes postaux qui commencent par 01 (Ain), 02 (Aisne), 03 (Allier) … 09 (Ariège). Si on laisse Excel les traiter comme des nombres, le premier 0 va être coupé et les codes postaux seront donc transformés en valeurs commençant par 1, 2, 3... 9. Et si on veut - exemple au hasard - en extraire le code du département, ça ne marche pas de prendre les deux chiffres à gauche du code postal !


dimanche 24 juin 2012

Entrer & sortir d'une cellule

“Entrer et sortir d’une cellule”, c’est l’impression que donnent ces opérations ultra-courantes et c’est comme ça que beaucoup de gens les appellent. Pour être précis, il s’agit du mode Edition (edit mode en anglais), qu’on active (entrer) ou qu’on désactive (sortir).

Ceci recouvre la grande distinction qu’il y a entre deux types de tâches qu’on effectue dans Excel.
- Travailler sur des ensembles de cellules : faire de la mise en forme, des graphiques, des TCD, etc : tout ça se fait toujours sur des ensembles de cellules (ou des lignes entières, ou des colonnes entières, ou des feuilles entières, ou éventuellement une seule cellule, mais sans saisir quoi que ce soit dans la cellule).
- Travailler le contenu d’une seule cellule : y entrer un nombre, ou du texte, ou une formule.

Le sujet, ici, est le passage d’un mode de travail à l’autre.
Commençons par quelques fondamentaux pour ça :

dimanche 6 mai 2012

Comparer facilement deux colonnes.

Vérifier que deux ensembles de cellules sont strictement identiques : construisons une petite macro pour faire ça en un clin d’oeil !


Contextes d’utilisation

Imaginons qu’on a sous les yeux deux listes censées être identiques. Il semble d’ailleurs qu’elle le soient. Pourtant, à y regarder de plus près... Exemple avec les 22 régions de France métropolitaine :



Variante sur une grande échelle : dans un tableau contenant des milliers de lignes, on a deux colonnes redondantes l’une avec l’autre. Leurs étiquettes sont similaires voire identiques et les valeurs portées dans les lignes visibles à l’écran sont les mêmes deux par deux. On veut donc supprimer l’une des deux. Mais est-on vraiment certain que toutes les valeurs sont identiques ? Sur toute la hauteur de la table ?

Autre situation : on souhaite regrouper deux tables de données provenant de deux classeurs différents. Concrètement : on veut copier l’une (sans ses étiquettes de colonne) en-dessous de l’autre. Les deux ont le même colonnage. Sauf que : il arrive qu’on ne soit pas absolument certain que les deux tables comportent réellement le même colonnage. L’un des classeurs a pu être retravaillé par quelqu’un qui y aura ajouté une colonne. Ou supprimé une colonne. Ou interverti deux colonnes. C’est donc prudent, avant de regrouper les deux tables, de vérifier que les colonnes sont bien les mêmes !
 
Exemple d’une liste de villes avec leur département et leur région :



La problématique de vérification est similaire et rentre dans le cas de ce qu’on veut faire ici, à ceci près qu’il faudra d’abord copier les lignes d’étiquettes des deux tables et les coller l’une sous l’autre dans un nouveau classeur par exemple, puis transposer le bloc de données constitué.

On pourrait imaginer d’autres situations encore. L’idée reste celle-ci : vérifier que deux séries de cellules sont bien identiques.