instruction If

mavean

XLDnaute Junior
Bonjour

Je débute en VBA
J'ai un petit soucis avec l'instruction If
ci dessous ma macro (insertion d'un nouveau produit)
Avant de la lancer je remplis 2 TexBox la 4 et la 5 et si l'une d'entre elle est vide je souhaite ne rien modifier et mettre fin à la macro.

Private Sub CommandButton2_Click()
'INSERER UN NOUVEAU PRODUIT
Dim L As Integer

If MsgBox("Etes-vous certain de vouloir INSERER ce nouveau produit ?", vbYesNo, "Demande de confirmation") = vbYes Then 'condition : si oui au message
L = Sheets("BD").Range("a65536").End(xlUp).Row + 1 'Permet de se positionner sur la dernière ligne de tableau NON VIDE

'ce sont les 2 lignes ci desous qui bug
If TextBox4.Value = "" Then MsgBox "Vous avez oubliez de rentrer le Code" Else Range("C" & L).Value = TextBox4
If TextBox5.Value = "" Then MsgBox "Vous avez oubliez de renter la désignation de l'article" Else Range("D" & L).Value = TextBox5

MsgBox ("le produit a bien été ajouté à la liste")
End If
End Sub

Merci de vos contributions
 

Roland_M

XLDnaute Barbatruc
Re : instruction If

bonjour,

alors il faut sortir à la première ligne comme ceci:

Private Sub CommandButton2_Click()
If TextBox4.Value = "" Or TextBox5.Value = "" Then
If TextBox4.Value = "" Then MsgBox "Vous avez oublié de rentrer le Code"
If TextBox5.Value = "" Then MsgBox "Vous avez oublié de renter la désignation de l'article"
Exit Sub
End If

EDIT: soit
Code:
Private Sub CommandButton2_Click()
If TextBox4.Value = "" Or TextBox5.Value = "" Then
   If TextBox4.Value = "" Then MsgBox "Vous avez oubliez de rentrer le Code"
   If TextBox5.Value = "" Then MsgBox "Vous avez oubliez de renter la désignation de l'article"
   Exit Sub 'sortie
End If
'confirmation INSERER UN NOUVEAU PRODUIT ?
If MsgBox("Veuillez confirmer INSERER ce nouveau produit ?", vbYesNo, "Demande de confirmation") <> vbYes Then Exit Sub
'suite insert ...
Dim L As Long
L = Sheets("BD").Range("a" & Rows.Count).End(xlUp).Row + 1 'Permet de se positionner sur la dernière ligne de tableau NON VIDE
MsgBox "le produit a bien été ajouté à la liste", vbInformation
End Sub
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : instruction If

Bonjour.
Ça a l'air d'être dans un Userform.
Personnellement j'écrirais une procédure HabiliterBouton qui ferait:
CommandButton2.Enabled = TextBox4.Text <> "" And TextBox5.Text <> ""
et que j'exécuterais aux TextBoxN_Change
La CommandButton2, j'appellerais d'ailleurs BtnValider plutôt, et les TextBoxN plutôt TBxQuoiDonc.

Et d'ailleurs je mettrais probablement plutôt des ComboBox que j'appellerais CBxCodeArt et CBxDésignat et je profiterais de la Sub HabiliterBoutons pour y mettre BtnValider.Caption = IIf(LCou > 0, "Modifier", "Ajouter"), LCou étant le numéro de ligne de l'article trouvé lors du changement dans les ComboBox
 
Dernière édition:

Statistiques des forums

Discussions
312 389
Messages
2 087 927
Membres
103 676
dernier inscrit
Haiti