Vous êtes sur la page 1sur 22

Formation-- développement d’applications---

Vente de documents et Livres--Conseils


Whatssap +237690401988

Travail Pratiques1 : Outil de Gestion de stock


Objectifs : Maitrise des contrôles et la création de notre premier TP

Formation Pratiquons ensemble……..Leadeur des Formations VBA +237690401988 1


Formation-- développement d’applications---
Vente de documents et Livres--Conseils
Whatssap +237690401988

Lancer Excel et ouvrer un nouveau classeur et enregistrer le dans votre dossier de travail en
choisissant l’extension .xlsm

Pourquoi l’extension .xlsm ?


Nous utilisons l’extension .xlsm parce que notre fichier comprendra des macros.
1. Création des Userforms
Créer 4 userforms avec les caractéristiques suivantes :
Userform Name Caption Width Height StartUposition
Userform FrmAccueil Accueil 950 540 CenterScreen
Userform FrmProduit Produit 935 430 CenterScreen
Userform FrmFour Fournisseurs 935 430 CenterScreen
Userform FrmClient Client 935 430 CenterScreen

A quoi sert la propriété StartUposition ?


Elle permet de contrôler la position d’un userform à l’affichage, nous avons entre autres :
Propriété Explication
0 ou Manual L’userform est affiché par défaut
1 ou CenterOwner L’userform s’affiche au centre de la fenêtre d’arrière-plan
2 ou CenterScreen L’userform s’affiche au centre de votre écran
3 ou Windows Defaut L’userform s’affiche par défaut selon le système d’exploitation
On peut l’utiliser aussi dans le code dans l’évènement Activate
Exemple :
Private Sub userform_activate()
FrmAccueil.StartUposition=1 ou FrmAccueil.StartUposition=Manual
End Sub

Formation Pratiquons ensemble……..Leadeur des Formations VBA +237690401988 2


Formation-- développement d’applications---
Vente de documents et Livres--Conseils
Whatssap +237690401988

2. Créations des contrôles


Ajouter dans l’userform Produit 2 contrôles Frame avec les caractéristiques suivantes :
Contrôles Name Caption Width Height Left Top
Frame1 Frame1 372 570 6 36
Frame2 Frame2 330 372 576 36
Ajouter dans l’userform Produit 1 contrôle Label avec les caractéristiques suivantes :
Contrôles Name Caption TextAlign Width Height Left Top
Label Label1 LabelTitre fmTextAlignLeft 570 24 6 12
Ajouter dans l’userform Produit 2 contrôles CommandButton avec les caractéristiques
suivantes :
Contrôles Name Caption PicturePosition Visible Width Height Left Top
CommandButton Button5 Fermer True 70 24 810 330
CommandButton Button100 100 -- False 70 24 702 330
Ajouter dans le frame1 2 contrôles Listbox avec les caractéristiques suivantes :
Contrôles Name IntegralHeight TextAlign Visible Width Height Left Top
Listbox Listbox1 False fmTextAlignLeft True 560 18 4 6
Listbox Listbox2 False fmTextAlignLeft False 560 333 4 24
Ajouter dans le frame2 7 contrôles Label avec les caractéristiques suivantes :
Contrôles Name Caption TextAlign Visible Width Height Left Top
Label Label1 Reference fmTextAlignLeft True 91 20 6 6
Label Label2 Désignation fmTextAlignLeft True 91 20 6 36
Label Label3 Quantité fmTextAlignLeft True 91 20 6 66
Label Label4 Prix d’achat fmTextAlignLeft True 91 20 6 96
Label Label5 Prix de vente fmTextAlignLeft True 91 20 6 126
Label Label6 Stock d’alerte fmTextAlignLeft True 91 20 6 156
Label Label7 Taux de TVA fmTextAlignLeft True 91 20 6 186
Ajouter dans le frame2 6 contrôles TextBox avec les caractéristiques suivantes :
Contrôles Name Locked TextAlign Visible Width Height Left Top
TextBox TextBox1 True fmTextAlignLeft True 120 20 97 6
TextBox TextBox2 False fmTextAlignLeft True 222 20 97 36
TextBox TextBox3 False fmTextAlignLeft True 120 20 97 66
TextBox TextBox4 False fmTextAlignLeft True 120 20 97 96
TextBox TextBox5 False fmTextAlignLeft True 120 20 97 126
TextBox TextBox6 False fmTextAlignLeft True 120 20 97 156
Ajouter dans le frame2 1 contrôle Combobox avec les caractéristiques suivantes :
Contrôles Name Locked TextAlign Visible Width Height Left Top
Combobox TextBox7 False fmTextAlignLeft True 120 20 97 186
Ajouter dans le frame2 4 contrôles CommandButton avec les caractéristiques suivants :
Contrôles Name Caption PicturePosition Visible Width Height Left Top
CommandButton Button1 Ajouter True 70 24 6 330
CommandButton Button2 Modifier … True 70 24 84 330
CommandButton Button3 Supprimer True 70 24 168 330
CommandButton Button4 Actualiser True 70 24 252 330

La propriété PicturePosition doit être ici à fmPositionPictureLeftBottom

Formation Pratiquons ensemble……..Leadeur des Formations VBA +237690401988 3


Formation-- développement d’applications---
Vente de documents et Livres--Conseils
Whatssap +237690401988

Vers la fin nous vous expliquerons a quoi sert le button100 et comment insérer des images sur
les différents buttons

Formation Pratiquons ensemble……..Leadeur des Formations VBA +237690401988 4


Formation-- développement d’applications---
Vente de documents et Livres--Conseils
Whatssap +237690401988

Ajouter dans l’userform Client 2 contrôles Frame avec les caractéristiques suivantes :
Contrôles Name Caption Width Height Left Top
Frame1 Frame1 372 570 6 36
Frame2 Frame2 330 372 576 36
Ajouter dans l’userform Client 1 contrôle Label avec les caractéristiques suivantes :
Contrôles Name Caption TextAlign Width Height Left Top
Label Label1 LabelTitre fmTextAlignLeft 570 24 6 12
Ajouter dans l’userform Client 2 contrôles CommandButton avec les caractéristiques suivantes
:
Contrôles Name Caption PicturePosition Visible Width Height Left Top
CommandButton Button5 Fermer True 70 24 810 330
CommandButton Button100 100 -- False 70 24 702 330
Ajouter dans le frame1 2 contrôles Listbox avec les caractéristiques suivantes :
Contrôles Name IntegralHeight TextAlign Visible Width Height Left Top
Listbox Listbox1 False fmTextAlignLeft True 560 18 4 6
Listbox Listbox2 False fmTextAlignLeft False 560 333 4 24
Ajouter dans le frame2 7 contrôles Label avec les caractéristiques suivantes :
Contrôles Name Caption TextAlign Visible Width Height Left Top
Label Label1 Reference fmTextAlignLeft True 91 20 6 6
Label Label2 Type de tiers fmTextAlignLeft True 91 20 6 36
Label Label3 Désignation fmTextAlignLeft True 91 20 6 66
Label Label4 N° téléphone fmTextAlignLeft True 91 20 6 96
Label Label5 Adresse Mail fmTextAlignLeft True 91 20 6 126
Label Label6 Adresse Physique fmTextAlignLeft True 91 20 6 156
Label Label7 Taux de TVA fmTextAlignLeft True 91 20 6 186
Ajouter dans le frame2 6 contrôles TextBox avec les caractéristiques suivantes :
Contrôles Name Locked TextAlign Visible Width Height Left Top
TextBox TextBox1 True fmTextAlignLeft True 120 20 97 6
TextBox TextBox3 False fmTextAlignLeft True 120 20 97 66
TextBox TextBox4 False fmTextAlignLeft True 120 20 97 96
TextBox TextBox5 False fmTextAlignLeft True 120 20 97 126
TextBox TextBox6 False fmTextAlignLeft True 120 20 97 156
Ajouter dans le frame2 1 contrôle Combobox avec les caractéristiques suivantes :
Contrôles Name Locked TextAlign Visible Width Height Left Top
Combobox TextBox2 False fmTextAlignLeft True 222 20 97 36
Combobox TextBox7 False fmTextAlignLeft True 120 20 97 186
Ajouter dans le frame2 4 contrôles CommandButton avec les caractéristiques suivants :
Contrôles Name Caption PicturePosition Visible Width Height Left Top
CommandButton Button1 Ajouter True 70 24 6 330
CommandButton Button2 Modifier … True 70 24 84 330
CommandButton Button3 Supprimer True 70 24 168 330
CommandButton Button4 Actualiser True 70 24 252 330

La propriété PicturePosition doit être ici à fmPositionPictureLeftBottom

Formation Pratiquons ensemble……..Leadeur des Formations VBA +237690401988 5


Formation-- développement d’applications---
Vente de documents et Livres--Conseils
Whatssap +237690401988

Formation Pratiquons ensemble……..Leadeur des Formations VBA +237690401988 6


Formation-- développement d’applications---
Vente de documents et Livres--Conseils
Whatssap +237690401988

Ajouter dans l’userform Client 2 contrôles Frame avec les caractéristiques suivantes :
Contrôles Name Caption Width Height Left Top
Frame1 Frame1 372 570 6 36
Frame2 Frame2 330 372 576 36
Ajouter dans l’userform Client 1 contrôle Label avec les caractéristiques suivantes :
Contrôles Name Caption TextAlign Width Height Left Top
Label Label1 LabelTitre fmTextAlignLeft 570 24 6 12
Ajouter dans l’userform Client 2 contrôles CommandButton avec les caractéristiques suivantes
:
Contrôles Name Caption PicturePosition Visible Width Height Left Top
CommandButton Button5 Fermer True 70 24 810 330
CommandButton Button100 100 -- False 70 24 702 330
Ajouter dans le frame1 2 contrôles Listbox avec les caractéristiques suivantes :
Contrôles Name IntegralHeight TextAlign Visible Width Height Left Top
Listbox Listbox1 False fmTextAlignLeft True 560 18 4 6
Listbox Listbox2 False fmTextAlignLeft False 560 333 4 24
Ajouter dans le frame2 7 contrôles Label avec les caractéristiques suivantes :
Contrôles Name Caption TextAlign Visible Width Height Left Top
Label Label1 Reference fmTextAlignLeft True 91 20 6 6
Label Label2 Type de tiers fmTextAlignLeft True 91 20 6 36
Label Label3 Désignation fmTextAlignLeft True 91 20 6 66
Label Label4 N° téléphone fmTextAlignLeft True 91 20 6 96
Label Label5 Adresse Mail fmTextAlignLeft True 91 20 6 126
Label Label6 Adresse Physique fmTextAlignLeft True 91 20 6 156
Label Label7 Taux de TVA fmTextAlignLeft True 91 20 6 186
Ajouter dans le frame2 6 contrôles TextBox avec les caractéristiques suivantes :
Contrôles Name Locked TextAlign Visible Width Height Left Top
TextBox TextBox1 True fmTextAlignLeft True 120 20 97 6
TextBox TextBox3 False fmTextAlignLeft True 120 20 97 66
TextBox TextBox4 False fmTextAlignLeft True 120 20 97 96
TextBox TextBox5 False fmTextAlignLeft True 120 20 97 126
TextBox TextBox6 False fmTextAlignLeft True 120 20 97 156
Ajouter dans le frame2 1 contrôle Combobox avec les caractéristiques suivantes :
Contrôles Name Locked TextAlign Visible Width Height Left Top
Combobox TextBox2 False fmTextAlignLeft True 222 20 97 36
Combobox TextBox7 False fmTextAlignLeft True 120 20 97 186
Ajouter dans le frame2 4 contrôles CommandButton avec les caractéristiques suivants :
Contrôles Name Caption PicturePosition Visible Width Height Left Top
CommandButton Button1 Ajouter True 70 24 6 330
CommandButton Button2 Modifier … True 70 24 84 330
CommandButton Button3 Supprimer True 70 24 168 330
CommandButton Button4 Actualiser True 70 24 252 330

La propriété PicturePosition doit être ici à fmPositionPictureLeftBottom

Formation Pratiquons ensemble……..Leadeur des Formations VBA +237690401988 7


Formation-- développement d’applications---
Vente de documents et Livres--Conseils
Whatssap +237690401988

Formation Pratiquons ensemble……..Leadeur des Formations VBA +237690401988 8


Formation-- développement d’applications---
Vente de documents et Livres--Conseils
Whatssap +237690401988

Ajouter dans l’userform client 4 contrôles CommandButton avec les caractéristiques suivants :

Ajouter dans les Frame1 2 contrôles Listbox avec les caractéristiques suivants :
Contrôles Name Caption IntegralHeight Width Height Left Top
CommandButton Button1 Ajouter
CommandButton Button2 Modifier
CommandButton Button3 Supprimer
CommandButton Button4 Fermer
CommandButton Button1 Ajouter

Ajouter dans les Frame1 2 contrôles Listbox avec les caractéristiques suivants :

A quoi sert la propriété TextAlign?


Elle permet de contrôler la position du texte dans un contrôle à l’affichage, nous avons donc :
Propriété Explication
1 ou fmTextAlignLeft Lors de la saisie, le texte de ce contrôle est aligné au bord gauche
2 ou fmTextAlignCenter Lors de la saisie, le texte de ce contrôle est centré
3 ou fmTextAlignRight Lors de la saisie, le texte de ce contrôle est aligné au bord droit

On peut l’utiliser aussi dans le code dans l’évènement Change


Exemple : Me.TextBox1.TextAlign=1 ou Me.TextBox1.TextAlign =fmTextAlignLeft

Formation Pratiquons ensemble……..Leadeur des Formations VBA +237690401988 9


Formation-- développement d’applications---
Vente de documents et Livres--Conseils
Whatssap +237690401988

3. Ajout des icônes sur les buttons


Nous allons ajouter les icones sur les différents buttons en utilisant la propriété Picture des
CommandButton

Les images se trouvent dans le dossier de l’exercice

Formation Pratiquons ensemble……..Leadeur des Formations VBA +237690401988 1


Formation-- développement d’applications---
Vente de documents et Livres--Conseils
Whatssap +237690401988

4. Création de la Base
Créer 4 feuilles dans votre Classeur
 La première Feuille vous la nommer Client
 La deuxième Feuille vous la nommer Fournisseur
 La troisième Feuille vous la nommer Produit
 La Quatrième Feuille vous la nommer Accueil

Formation Pratiquons ensemble……..Leadeur des Formations VBA +237690401988 1


Formation-- développement d’applications---
Vente de documents et Livres--Conseils
Whatssap +237690401988

La feuille Client

Formation Pratiquons ensemble……..Leadeur des Formations VBA +237690401988 1


Formation-- développement d’applications---
Vente de documents et Livres--Conseils
Whatssap +237690401988

La feuille Fournisseur

Formation Pratiquons ensemble……..Leadeur des Formations VBA +237690401988 1


Formation-- développement d’applications---
Vente de documents et Livres--Conseils
Whatssap +237690401988

La feuille Produit

Formation Pratiquons ensemble……..Leadeur des Formations VBA +237690401988 1


Formation-- développement d’applications---
Vente de documents et Livres--Conseils
Whatssap +237690401988

5. Programmation des évènements


Dans l’userform Produit

Option Explicit

Explication
L’instruction Option explicit place au début du code de l’userform permet lors de la compilation
du programme de vérifier que toutes les variables ont étés déclarées
Pour déclarer une variable on utilise le mot clé Dim suivi du nom de la variable et suivi de As et
du type de variable.

Exemple :
 Dim i as Long Variable déclarée de Type nombre réel
 Dim Sh As Worksheet Variable Sh déclarée de type Feuille
 Dim C as Range Variable C déclarée de type Plage
 Dim j as int Variable j déclarée de type nombre entier

Lire le cours intitulé


Les variables pour mieux comprendre

Option Base 1
C’est une instruction qui concerne les tableaux, nous l’expliquerons plus tard

Option Compare Text


Cette instruction permet de dire au compilateur lors des comparaisons de prendre tout élément à
comparer comme étant une chaine de caractère.

Formation Pratiquons ensemble……..Leadeur des Formations VBA +237690401988 1


Formation-- développement d’applications---
Vente de documents et Livres--Conseils
Whatssap +237690401988

Private Sub userform_activate()


Dim Ligne, i As Long
Dim Sh As Worksheet
Set Sh = ThisWorkbook.Sheets("Produit")
Ligne = Sh.Cells(Sh.Rows.Count, 1).End(xlUp).Row

Me.LabelTitre.Caption = Sh.Range("P1").Value2
Me.Caption = Sh.Range("P1").Value2

For i = 1 To 7
Me.Controls("TextBox" & i).Text = ""
Next i

Me.TextBox7.AddItem "0"
Me.TextBox7.AddItem "19.25"

For i = 1 To 2
Me.Controls("ListBox" & i).Clear
Me.Controls("ListBox" & i).RowSource = ""
Me.Controls("ListBox" & i).ColumnCount = 7
Me.Controls("ListBox" & i).ColumnWidths = "65;150;55;55;55;95;60"
Next i

Me.Listbox1.List() = Sh.Range("A1:G1").Value
Me.TextBox1.Text = Sh.Range("O1").Value

If Ligne = 1 Then
Else
Me.Listbox2.List() = Sh.Range("A2:G" & Ligne).Value
End If

Me.Button1.Enabled = True
Me.Button2.Enabled = False
Me.Button3.Enabled = False

Me.TextBox2.SetFocus
Set Sh = Nothing
End Sub

Explication
 Ligne = Sh.Cells(Sh.Rows.Count, 1).End(xlUp).Row
Je recherche la dernier cellule non vide de la colonne 1 commençant par le bas pour monter je la stocke
dans la variable Ligne
 Me.TextBox7.AddItem "0"
 Me.TextBox7.AddItem "19.25"
Ici le Textbox7 est un combobox donc une liste déroulante, j’insère les données à l’intérieur de ma liste
avec la méthode .Additem

Formation Pratiquons ensemble……..Leadeur des Formations VBA +237690401988 1


Formation-- développement d’applications---
Vente de documents et Livres--Conseils
Whatssap +237690401988

 Me.Controls("ListBox" & i).Clear


Efface le contenu du contrôle Listbox de numéro i

 Me.Controls("ListBox" & i).RowSource = ""


Supprime la source de donnée liée au contrôle Listbox de numéro i

 Me.Controls("ListBox" & i).ColumnCount = 7


Je donne le nombre de colonne du contrôle Listbox de numéro i (7)

 Me.Controls("ListBox" & i).ColumnWidths = "65;150;55;55;55;95;60"


Je donne les épaisseurs du contrôle Listbox de numéro i
Lorsque je mets la valeur 0 pour une épaisseur alors elle sera masquée
Vous remarquerez que le nombre d’épaisseur est égale de au nombre de colonne défini plus haut
par la propriété ColumnCount (7)

 Me.Listbox1.List() = Sh.Range("A1:G1").Value
Je charge dans le contrôle Listbox 1 les données de la plage A1 à G1

 Me.Listbox2.List() = Sh.Range("A2:G" & Ligne).Value


Je charge dans le contrôle Listbox 2 les données de la plage A2 à G (Ligne)
Ligne étant le numéro de la dernière ligne vide de la colonne 1.

Formation Pratiquons ensemble……..Leadeur des Formations VBA +237690401988 1


Formation-- développement d’applications---
Vente de documents et Livres--Conseils
Whatssap +237690401988

Private Sub Button1_Click()


Dim Ligne, i As Long
Dim Sh As Worksheet
Set Sh = ThisWorkbook.Sheets("Produit")
Ligne = Sh.Cells(Sh.Rows.Count, 1).End(xlUp).Row + 1
For i = 1 To 7
If Me.Controls("TextBox" & i).Text = "" Then
Beep
MsgBox Me.Controls("Label" & i).Caption & " ne peut etre vide", vbCritical
Me.Controls("TextBox" & i).SetFocus
Exit Sub
End If
Next i
If MsgBox("Confirmer l'ajout?", vbYesNo, "Confirmation") = vbYes Then
For i = 1 To 7
Sh.Cells(Ligne, i).Value = Me.Controls("TextBox" & i).Text
Next i

For i = 1 To 7
Me.Controls("TextBox" & i).Text = ""
Next i

Sh.Range("O1").AutoFill Destination:=Sh.Range("O1:O2"), Type:=xlFillDefault


Sh.Range("O1").Value = Sh.Range("O2").Value
Sh.Range("O2").ClearContents

Me.TextBox1.Text = Sh.Range("O1").Value

Ligne = Sh.Cells(Sh.Rows.Count, 1).End(xlUp).Row

Me.Listbox2.List() = Sh.Range("A2:G" & Ligne).Value


Me.Listbox2.ListIndex = -1
Me.Button1.Enabled = True
Me.Button2.Enabled = False
Me.Button3.Enabled = False

Me.TextBox2.SetFocus
End If
Set Sh = Nothing
End Sub

Formation Pratiquons ensemble……..Leadeur des Formations VBA +237690401988 1


Formation-- développement d’applications---
Vente de documents et Livres--Conseils
Whatssap +237690401988

Private Sub Button2_Click()


Dim Ligne, i As Long
Dim Sh As Worksheet
Set Sh = ThisWorkbook.Sheets("Produit")
Ligne = CLng(Me.Selection.Caption)

For i = 1 To 7
If Me.Controls("TextBox" & i).Text = "" Then
Beep
MsgBox Me.Controls("Label" & i).Caption & " ne peut etre vide", vbCritical
Me.Controls("TextBox" & i).SetFocus
Exit Sub
End If
Next i

If MsgBox("Confirmer la modification?", vbYesNo, "Confirmation") = vbYes Then

For i = 1 To 7
Sh.Cells(Ligne, i).Value = Me.Controls("TextBox" & i).Text
Next i

For i = 1 To 7
Me.Controls("TextBox" & i).Text = ""
Next i

Me.TextBox1.Text = Sh.Range("O1").Value

Ligne = Sh.Cells(Sh.Rows.Count, 1).End(xlUp).Row

Me.Listbox2.List() = Sh.Range("A2:G" & Ligne).Value


Me.Listbox2.ListIndex = -1

Me.Button1.Enabled = True
Me.Button2.Enabled = False
Me.Button3.Enabled = False
Me.TextBox2.SetFocus
End If
Set Sh = Nothing
End Sub

Formation Pratiquons ensemble……..Leadeur des Formations VBA +237690401988 1


Formation-- développement d’applications---
Vente de documents et Livres--Conseils
Whatssap +237690401988

Private Sub Button3_Click()


Dim Ligne, i As Long
Dim Sh As Worksheet
Set Sh = ThisWorkbook.Sheets("Produit")
Ligne = CLng(Me.Selection.Caption)

Beep
If MsgBox("Confirmer la suppression?", vbYesNo, "Confirmation") = vbYes Then
Sh.Range(Sh.Cells(Ligne, 1), Sh.Cells(Ligne, 7)).Delete (xlUp)

For i = 1 To 7
Me.Controls("TextBox" & i).Text = ""
Next i

Me.TextBox1.Text = Sh.Range("O1").Value

Me.Listbox2.Clear
Me.Listbox2.RowSource = ""

Ligne = Sh.Cells(Sh.Rows.Count, 1).End(xlUp).Row

If Ligne = 1 Then
Else
Me.Listbox2.List() = Sh.Range("A2:G" & Ligne).Value
End If

Me.Listbox2.ListIndex = -1

Me.Button1.Enabled = True
Me.Button2.Enabled = False
Me.Button3.Enabled = False
Me.TextBox2.SetFocus
End If
Set Sh = Nothing
End Sub

Formation Pratiquons ensemble……..Leadeur des Formations VBA +237690401988 2


Formation-- développement d’applications---
Vente de documents et Livres--Conseils
Whatssap +237690401988
Private Sub Button4_Click()
Dim Sh As Worksheet
Dim Cellule As Range
Dim Ligne, i, j As Long

Set Sh = ThisWorkbook.Sheets("Produit")
Let Ligne = Sh.Cells(Sh.Rows.Count, 1).End(xlUp).Row

For i = 1 To 7
Me.Controls("TextBox" & i).Text = ""
Next i

Me.TextBox1.Text = Sh.Range("O1").Value

Me.Button1.Enabled = True
Me.Button2.Enabled = False
Me.Button3.Enabled = False

Me.Listbox2.ListIndex = -1
Me.TextBox2.SetFocus

Set Sh = Nothing
End Sub

Private Sub Button5_Click()


Unload Me
End Sub

Explication :

Unload permet de decharger un Userform


Sa syntaxe est la suivante Unload NomdeL’userform a femer
Donc ici comme nous sommes dans l’userform que nous voulons fermer nous pouvons mettre
Unload me
Me ici represente le nom de l’userform dans lequel se trouve la macro

Mais nous pouvons aussi ecrire


Unload FrmProduit

Formation Pratiquons ensemble……..Leadeur des Formations VBA +237690401988 2


Formation-- développement d’applications---
Vente de documents et Livres--Conseils
Whatssap +237690401988

Private Sub Listbox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)


Dim Sh As Worksheet
Dim Cellule As Range
Dim Ligne, i, j As Long

Set Sh = ThisWorkbook.Sheets("Produit")
Let Ligne = Sh.Cells(Sh.Rows.Count, 1).End(xlUp).Row

If Me.Listbox2.ListIndex < 0 Then


Beep
MsgBox "Veuillez selectionner une ligne " & vbCrLf & vbCrLf & "contenant un enregistrement",
vbCritical, "Erreur de Selection"
Else

Me.TextBox1.Text = Me.Listbox2.List(Me.Listbox2.ListIndex, 0)

With Sh.Range(Sh.Cells(1, 1), Sh.Cells(Ligne, 7))


Set Cellule = .Find(Me.TextBox1.Text, After:=Sh.Cells(1, 1), LookIn:=xlValues,
LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False)

If Not Cellule Is Nothing Then


Me.Selection.Caption = Cellule.Row

For j = 1 To 7
Me.Controls("TextBox" & j).Text = Sh.Cells(Cellule.Row, j).Value
Next j

Me.Button1.Enabled = False
Me.Button2.Enabled = True
Me.Button3.Enabled = True
End If

Set Cellule = Nothing


End With

End If

Set Sh = Nothing
End Sub

Formation Pratiquons ensemble……..Leadeur des Formations VBA +237690401988 2

Vous aimerez peut-être aussi