Des nouvelles de la prochaine formation VBA avancé

Bonjour à tous,

L'enregistrement des vidéos avance, et cette nouvelle formation va vous être super utile et va vous permettre de gagner un temps précieux!

La première série de vidéos est enregistrée.
Elle va vous permettre d'avoir une compréhension globale des arrays - les tableaux dans VBA. Ceux-ci permettent d'accélérer grandement les calculs en VBA.

Actuellement, je suis en train de finaliser l'explication de plus de 50 fonctions, en créant une base détaillée, visuelle et super rapide d’accès pour insérer la bonne fonction au bon endroit.
Une explication détaillée en vidéo de la fonction vous permettra aussi de bien la comprendre !
C'est un petit challenge à réaliser, mais cela vous sera très utile au final 🙂

Voici quelques copies d'écran pour vous faire patienter ! 🙂

VBA-Array-3 1

VBA-Array-2 1 1

vba-array4 1

A bientôt.

Gaëtan

Conserver la somme lors de l'insertion de lignes au dessus et en dessous de la plage.

Bonjour à tous,

Cette astuce provient de Dominique, qui est aussi l'auteur de Quick Bill, un outil tout simple d'édition de factures.

xl-en-bref 1 1
En bref :

L'idée est d'utiliser la formule suivante : =SOMME(DECALER(B$1;1;0;LIGNES($B$1:$B$5)-2)) pour permettre l'ajout de lignes en dessous et au dessus de la plage.

xl-en-detail 1
Dans le détail :

1/ Si on décompose la formule, on part de la plage qui contient le titre du haut (B1) et la cellule du résultat (B5) et on calcule le nombre de lignes : LIGNES($B$1:$B$5).
2/ On enlève deux lignes LIGNES($B$1:$B$5)-2 pour la ligne de titre et la ligne contenant la formule SOMME
3/ On va ensuite utiliser la formule DECALER pour retourner la plage sur laquelle faire la somme : DECALER(B$1;1;0;LIGNES($B$1:$B$5)-2).
Cette formule se lit : définit une plage partant de B$1, décale cette cellule de 1 ligne vers le bas, de 0 colonne vers la droite, et définit la hauteur de la plage comme étant LIGNES($B$1:$B$5)-2. Cela renvoit donc la plage B2:B4.
4/ Il ne reste plus qu'à faire la SOMME.

FormuleDecaler 1

De fait, lors de l'ajout de nouvelles lignes, $B$1:$B$5 va automatiquement s'étendre et la SOMME va s'appliquer à l'ensemble de la plage.

Note : l'ajout de lignes juste au dessus de la formule SOMME va automatiquement redimensionner la plage de la somme, mais cela n'est pas le cas pour la plage du dessus.

Amusez-vous bien !

Gaetan

Fonction IsNumeric - Attention aux guillemets

Bonjour à tous,

xl-en-bref 1 1En bref : attention à la fonction VBA "IsNumeric", car cette fonction va retourner Vrai (True), même pour une chaîne de caractère comme "1".

Je suis en train de travailler sur des fonctions très spécifiques pour la prochaine formation VBA avancé sur les arrays !
Il va être très complet et super utile 🙂

Au passage, je suis tombé sur la fonction IsNumeric et une "limite" assez dangereuse (source : Cheap Pearson).

Ce code va ainsi retourner 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 attention à la fonction IsNumeric, car elle va retourner la valeur Vraie (True), même s'il s'agit d'une string (chaîne de caractères), et le '+' va se comporter comme un '&'.

[EDIT]: suite à un commentaire de Raphaël, vous pouvez faire une conversion des strings avant utilisation, en utilisant ces fonctions : CDbl ou CLng. Il existe d'autres fonctions de conversion pour d'autres cas de figure : CStr, CVar, CDate, etc.

A bientôt.

Gaëtan