Fonction IsNumeric — Attention aux guillemets

Bon­jour à tous,

xl-en-bref 1 1En bref : atten­tion à la fonc­tion VBA “IsNu­mer­ic”, car cette fonc­tion va retourn­er Vrai (True), même pour une chaîne de car­ac­tère comme “1”.

Je suis en train de tra­vailler sur des fonc­tions très spé­ci­fiques pour la prochaine for­ma­tion VBA avancé sur les arrays !
Il va être très com­plet et super utile 🙂

Au pas­sage, je suis tombé sur la fonc­tion IsNu­mer­ic et une “lim­ite” assez dan­gereuse (source : Cheap Pearson).

Ce code va ain­si retourn­er 12, au lieu de 3 !

Sub test_AttentionIsNumeric()
Dim V1 As Variant
Dim V2 As Variant
V1 = "1"
V2 = "2"
If IsNumeric(V1) = True Then
If IsNumeric(V2) = True Then
MsgBox V1 + V2
End If
End If
End Sub

Donc, il faut faire très atten­tion à la fonc­tion IsNu­mer­ic, car elle va retourn­er la valeur Vraie (True), même s’il s’ag­it d’une string (chaîne de car­ac­tères), et le ‘+’ va se com­porter comme un ‘&’.

[EDIT]: suite à un com­men­taire de Raphaël, vous pou­vez faire une con­ver­sion des strings avant util­i­sa­tion, en util­isant ces fonc­tions : CDbl ou CLng. Il existe d’autres fonc­tions de con­ver­sion pour d’autres cas de fig­ure : CStr, CVar, CDate, etc.

A bien­tôt.

Gaë­tan

7 règles d’or pour appréhender un fichier Excel complexe !

7 regles images 1Bon­jour à tous,

Cela va sure­ment vous arriv­er : vous démar­rez une nou­velle mis­sion et vous devez met­tre à jour et/ou per­fec­tion­ner un fichi­er méga-com­plexe. Pas de panique !

De façon à éviter des gross­es cat­a­stro­phes, voici une série de règles d’or pour y arriv­er au mieux.
Bien sur, si vous voyez d’autres aspects, n’hésitez-pas à com­menter ci-dessous :-).

Comme me l’a fait remar­quer mon ami Dominique H., ces règles sont itéra­tives et l’or­dre dépend du pro­jet : “Pour ma part, je doc­u­mente plus rapi­de­ment qu’il n’est con­seil­lé par cette méth­ode. Autrement dit, j’al­terne des actions visant à une com­préhen­sion locale et les actions visant à une com­préhen­sion glob­ale. Donc une alter­nance de top-down et bot­tom-up.”. Mer­ci Dominique ! 

1. Sauvegardez !

Faites une copie du dossier con­tenant les fichiers, assurez-vous que les sauve­g­ardes soient faites régulière­ment et tra­vaillez sur la copie de sauve­g­arde dans un pre­mier temps

En effet, si vous ouvrez un fichi­er com­plexe, il y a de fortes chances que des liaisons avec d’autres fichiers soient actives.

De fait, sauve­g­ardez non seule­ment le fichi­er, mais aus­si les fichiers liés. Si les fichiers sont tous dans le même réper­toire, faites une copie du répertoire.

copier 1

De manière générale, je tente d’éviter les liaisons entre fichiers, mais cela n’est pas tou­jours possible.
Pour voir les liaisons : Onglet Don­nées, Mod­i­fi­er les liens.
liaison_fichier_externe 1

Idéale­ment, tra­vaillez sur le fichi­er de sauve­g­arde pour le com­pren­dre en pro­fondeur avant de mod­i­fi­er le fichi­er original.

2. Discutez avec l’auteur et les utilisateurs du fichier

Ca peut sem­bler évi­dent, mais si l’au­teur du fichi­er est encore joignable, cela peut vous faire gag­n­er un temps considérable.
Passez au moins deux heures avec l’au­teur du fichi­er pour com­pren­dre la philoso­phie du fichi­er, la struc­ture glob­ale et les points déli­cats du fichier.
Dis­cutez aus­si avec les util­isa­teurs pour com­pren­dre com­ment le fichi­er est utilisé.

3. Prenez votre temps

Si le fichi­er est très com­plexe, plusieurs jours sont par­fois néces­saires pour com­pren­dre toute la struc­ture du fichier.

4. Documentez

C’est aus­si un excel­lent moyen de s’as­sur­er que l’on maîtrise com­pléte­ment le fichier.
Pour cela :
— créez une feuille ou un doc­u­ment word dédié à la documentation.
— ajoutez des com­men­taires directe­ment dans les cel­lules — clic droit, ajouter un com­men­taire, ou via l’on­glet Révision :
novueau-commentaire 1

5. Comprenez parfaitement la structure globale

Il s’ag­it ici de pren­dre con­nais­sance de toutes les feuilles qui exis­tent dans le fichier.

- Par exem­ple, assurez vous que vous con­nais­sez les feuilles masquées, clic droit sur une feuille :
feuilles_masquees 1

- ou encore les feuilles masquées via VBA (xlSheetVery­Hid­den).
Ouvrez l’édi­teur de visu­al basic et regardez si des feuilles ont la pro­priétés XLVery­Hid­den — ALT+F11, sélec­tion­nez la feuille, touche F4 pour affich­er les propriétés :
xlSheetVeryHidden 1

6. Affinez la compréhension des formules

Voici quelques out­ils que l’on peut combiner :
— Sur une cel­lule qui con­tient un cal­cul qui utilise plusieurs cel­lules de la feuille » clic dans la barre de for­mule pour avoir un visuel sur les cel­lules con­cernées — leurs bor­dures se col­orent tout comme leurs références dans la for­mule. Mer­ci à Lau­rent J. pour la suggestion.
— Utilisez les out­ils d’au­dit, pour repér­er les antécé­dents et les dépendants.
— Affichez toutes les formules.
— Éval­uez les formules.

audit

- Une alter­na­tive plus rapi­de pour éval­uer les for­mules con­siste à sélec­tion­ner une par­tie de la for­mule et appuy­er sur F9 pour cal­culer cette sélection.
ATTENTION à ne pas valid­er cette for­mule, sinon vous allez ren­dre le fichi­er inutil­is­able. Donc utilisez la touche ECHAP au lieu d’en­trée pour sor­tir de la for­mule sans valider.
Voir aus­si ici pour une expli­ca­tion plus détail­lée.

toucheF9

- ATTENTION, si vous voyez des { } autour des for­mules, il s’ag­it de for­mules matricielles qui sont validées par CTRL+MAJ+ENTREE, donc si vous devez les éditer, sortez de la for­mule avec ECHAP, mais ne validez surtout pas avec seule­ment la touche ENTREE. Si vous devez mod­i­fi­er la for­mule, validez avec CTRL+MAJ+ENTREE.
formule-matricielle

— Con­nais­sez vos noms. Sou­vent dans des fichiers com­plex­es, de nom­breux noms ont été créés et il con­vient donc de bien les analyser.
Pour cela, utilisez le Ges­tion­naire de noms, disponible dans l’on­glet Formules :

— Utilis­er l’outil espi­on pour visu­alis­er simul­tané­ment des change­ments dans plusieurs endroits du fichier
fenetre-espion 1

Gestionnaire-de-noms 1
Vous pou­vez aus­si coller la liste des noms pour faire une analyse plus fine :
coller-liste-noms

7. Comprendre le code VBA

On pour­rait refaire une longue liste pour ce point, mais il est essen­tiel de bien com­pren­dre le code VBA du fichier.
Pour cela, utilisez les out­ils de débogage :
— Ajout d’un point d’ar­rêt en cli­quant dans la marge
vba-point-arret 1
— Déroule­ment pas à pas avec les touch­es de rac­cour­ci appropriées
VBA-pas-a-pas
— Util­i­sa­tion des espions
vba-espion 1

Et il y a encore pleins d’autres en VBA, mais ca sera pour une prochaine fois ! 

Je vous invite à com­menter pour partager votre pro­pres trouvailles :-).

A bien­tôt.

Gaë­tan

Explosif ! Eclatez vos neurones !

Au sens fig­uré, bien sur !!!

Bref, n’ou­bliez pas les packs pro­posés ici :

For­ma­tions Excel & VBA — Achats groupés

Et pour ter­min­er, voici le com­men­taire de Stéphane, qui vient juste de finir d’é­tudi­er les CD sur VBA avancé (vol. 1 et 2) ! 🙂
———
Bon­jour Gaëtan,

Je tenais à vous remerci­er pour les cours VBA 1 & 2 que j’ai acheté
sur votre site.
Grace à ces cours, j’ai pu enfin finalis­er le pro­jet que je souhaitais
faire pour mon tra­vail à savoir associ­er sur le même user­form la
ges­tion automa­tique d’un for­mu­laire de saisie ain­si que la gestion
d’une table de don­nées avec les list­box avec recherche dynamique et
avec critères et dis­tri­b­u­tion du fichi­er pour les clients.

ET TOUT CA EN UN CLIC !

Mer­ci encore.

Stéphane.
————

Gaë­tan