Débuter avec Excel VBA les fonctions de page

4
5113

dans cette 5eme partie nous allons voir comment utiliser les fonctions de page dans excel Vba.
notamment nous allons devenir un vendeur de fruit et donc nous allons créer une simple facture.
que nous allons programmer avec excel vba grâce au Fonction de page.

alors que vas faire notre petit facture ?
et ben tout simplement ajouter des articles que nous allons indiquer dans une zone de recherche
puis nous allons compter la TVA et le prix TTC tout ça grâce au vba avec les fonctions de page.

1 C’est quoi une fonctions.

dans Excel nous avons l’habitude d’utiliser des fonctions ou autrement dit des formules.
et ces fonctions nous permette comme leurs noms l’indiques d’exécuter des fonctions mais qui sont déjà pré programmer.
il nous suffit de faire appel à une fonction et d’indiquer les critères.

par exemple si j’indique des chiffres dans plusieurs cellule et que je veux les compter ensemble
je fais la formule =somme(cellule) et je reçois la somme de cette plage de cellule.

2 fonction de page rechercheV.

la première chose que nous allons faire c’est d’utiliser la fonction de page RechercheV
pour chercher une information et la faire afficher dans notre facture.

comme nous allons chercher le prix d’un article nous allons déclarer notre variable en currentcy.

DIM Prix_article as CURRENCY

puis nous allons utiliser la fonction de page recherchev mais comme nous devons utiliser tout en anglais cela devient vloopkup.
de la même façon que la fonction rechercheV nous allons afficher l’objet qui contient le critère de recherche dans notre exemple c’est la cellule L3.
puis nous allons devoir indiquer notre plage de recherche qui se trouve sur notre page article sur la plage b4:d8.
désormais nous allons indiquer dans quel colonne de notre page se trouve le résultat que nous voulons afficher,
la c’est le 3 et comme nous voulons un résultat exacte nous allons affiche le 0.

qui donne le code suivant

prix_article = WorksheetFunction.VLookup(Range(« K2 »), Sheets(« article »).Range(« B3:D12 »), 3, 0)

puis nous allons indiquer dans notre facture le résultat de notre recherche

Range(« D10 ») = prix_article

avant de faire la même chose pour le reste nous allons devoir indiquer sur quel ligne nous devons placer nos information
afin de pouvoir register d’autre article sans devoir ajouter une ligne manuellement.

pour cela nous allons crée une nouvelle variable en Integer que nous allons nommé DL de dernière ligne.

Dim DL As Integer

et notre DL va contenir les information suivante.

DL = Range(« b1000 »).End(xlUp).Row + 1

désormais nous pouvons ajouter toute les information automatiquement dans notre facture.

‘###Ajouter dans la facture###
Range(« B » & DL) = Nr_article
Range(« C » & DL) = description_article
Range(« D » & DL) = prix_article
Range(« E » & DL) = Range(« k3 »)
Range(« k2:k3 »).ClearContents
Range(« F » & DL) = Range(« E » & DL) * prix_article
Rows(DL + 1).EntireRow.Insert

3 Fonction de page SOMME

désormais que nous avons nos information nous allons calculer la somme de notre facture.

pour cela nous allons déclarer notre varialbe.

Dim HTVA As Currency
HTVA = WorksheetFunction.Sum(Range(« F10:F11 »))
Range(« F12 ») = HTVA

rien de bien compliquer nous allons faire la même chose qu’une fonction de page faire la somme.

de la nous pouvons calculer la TVA et le TTC.
nous allons déclarer ces variable.

Dim TVA As Currency
Dim TTC As Currency

puis nous allons les programmer

TVA = HTVA * 0.06
Range(« F13 ») = TVA
TTC = HTVA + TVA
Range(« f14 »)= TTC

4 Fonction de page Nombre

notre facture est plus au moin terminer mais nous allons la rendre un peu plus dynamique
et donc ajouter automatiquement une nouvelle ligne après avoir entré des données

pour cela nous allons ajouter un code apres avoir introduit des donnée dans notre facture.

Rows(DL + 1).EntireRow.Insert ‘ajouter une nouvelle ligne

rien de spécial nous avons ajouter une nouvelle ligne.

allons ajouter un nouvelle article.
hmm comme nous pouvons le voir désormais nos prix HtVA, TVA et TCC sont décaller.
pour cela nous allons devoir dire au code qu’il doit décendre le prix hTVA , tva et TCC d’une ligne vers le bas.

et pour cela nous allons utiliser la fonction de page nombre
nous allons déterminer combien de ligne il faut désendre.

donc nous allons déclarer la varialbe nombre_article

Dim nombre_article As Integer

puis nous allons compté combien de ligne il y a sur une plage de donnée qui n’est pas vide avec le code suivant.
à placer au dessus des calcule de HTVA

nombre_article = WorksheetFunction.CountA(Range(« b10:b1000 »))

désormais nous allons modifier notre code de HTVA, TVA et TCC
en disant qu’il faut descendre le nombre de fois que la valeur qui ce trouve dans la varialbe nombre_article grace au offset

HTVA = WorksheetFunction.Sum(Range(« F10:F11 »))
Range(« F12 »).Offset(nombre_article) = HTVA
TVA = HTVA * 0.06
Range(« F13 »).Offset(nombre_article) = TVA
TTC = HTVA + TVA
Range(« f14 »).Offset(nombre_article) = TTC

désormais si nous ajoutons un article nous allons voir que tout descend comme il le faut.
par contre le calcule de la HTVA est limité à la cellule F10 à F11
ce qui veut dire qu’il ne vas pas calculer au delà.

et donc nous allons devoir modifier notre code HTVA comme suite

HTVA = WorksheetFunction.Sum(Range(« F10:F » & DL))

5 Bonus éviter les doublons

alors je sais que vous allez me poser cette question c’est pourquoi je vais déjà vous répondre.
oui il est possible de contrôler si un article existe déjà et d’ajouter le nombre.

pour cela nous allons utiliser les boucles que nous avons vu dans la partie précédente.

For ligne = 10 To DL
If Range(« K2 ») = Range(« B » & ligne) Then
Range(« e » & ligne) = Range(« e » & ligne) + Range(« k3 »)
Range(« F » & ligne) = Range(« e » & ligne) * Range(« d » & ligne)

Range(« k2:k3 »).ClearContents

GoTo suite
End If
Next ligne

alors ici quelque chose de nouveau c’est le GOTO qui veut dire quand c’est fini va à la partie suite.

cette partie suite nous allons la placer dans notre code juste après que le code ajouter les article dans notre facture.

et ce petit code va nous permettre d’ajouter le nombre à l’article.
mais aussi d’éviter de créer une nouvelle entrée pour cette article.
donc nous contournons la partie du code qui ajoute.

pour finir nous allons aussi ajouter un bouton pour remettre la facture à 0.

pour cela nous allons crée un nouveau bouton avec le code suivant.

Dim nombre As Integer
If Range(« B10 ») <> «  » Then
nombre = Range(« b1000 »).End(xlUp).Row
Rows(« 10: » & nombre).EntireRow.Delete
Range(« f12:f14 »).ClearContents
End If

voila désormais vous devez être capable de travailler avec les fonction de page.
comme nous avons pu le voir ce n’est vraiment pas difficile c’est identique que les formules sauf qu’il y a moins d’assistance et qu’il faut connaître le nom de fonction en anglais.
dans la prochaine partie nous allons voir comme traiter les erreurs dans VBA.
d’ici la si vous avez des question surtout n’hésitez pas de me le faire savoir.

4 Commentaires

  1. Merci bcp pour les tutos mais seulement moi jai un problème au niveau de l’ajout de offset pour faire decendre les TVA,TTC, htva
    Par ce que sur le code suivant
    Htva=Range(« f18 »). Offset(nbre_deligne) selon ma compréhension si la facture a deux produit il y aura bcp d’espace vide par ce que on commence a f18 et on fait un décalage de 2cellule vers le bas pour afficher la htva et f19 pour TVA … J’aimerai avoir un peux de détail sur le fonctionnement et

  2. Bonsoir. Je tiens à dire un grand merci à M. Daniel pour cette formation. Je suis nouveau et je pense qu’avec ces tuto je vais m’en sortir avec VBA que je cherchais à maîtriser depuis des années.

LAISSER UN COMMENTAIRE

Please enter your comment!
Please enter your name here

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.