Test vbYesNo qui renvoie à la même action (alors qu'il ne devrait pas)
Bonjour à tous!
Après avoir passé quelques jours à écumer les forums à la recherche de réponse, qui m'ont d'ailleurs beaucoup aidé d'ailleurs et je vous en remercie, je sèche complètement sur un point qui me parait, comment dire, ridicule...
Mon projet est le développement d'un outil excel de gestion de stock pour mon entreprise. Jusqu'ici tout va bien, j'ai pu créer des champs pour rentrer les entrées et sorties de stocks, des userform pour entrer de nouvelles références...
J'ai voulu un peu étoffer mon système en renvoyant un message d'alerte lorsque l'utilisateur ne renseigne pas tous les champs dans le userform, mais c'est la que ça coince.
Le code suivant renvoie, que l'on dise oui ou non dans la MsgBox, la commande (qui consiste à insérer une ligne et à copier les valeurs du userform). Quand je le travaille un petit peu, il ne renvoit plus rien, que cela soit oui ou non.
Private Sub CommandButton1_Click() 'Bouton Valider
Dim L As Integer 'Déclaration du numéro de la ligne
Dim marep As Byte
If TextBoxDes.Text = "" Or TextBoxFourn.Text = "" Or TextBoxRef.Text = "" Or TextBoxU.Text = "" Or TextBoxQ.Text = "" Or TextBoxP.Text = "" Then
marep = MsgBox("Tous les champs n'ont pas été remplis. Voulez-vous continuer?", vbYesNo)
If marep = Yes Then
Unload UserFormRef
Else
L = Sheets("Inventaire").Columns(1).Find(ComboBox1, lookat:=xlWhole).Row 'On cherche le numéro de la ligne correspondant au type de consommable
With Sheets("Inventaire") 'Dans la feuille "Inventaire" faire les manipulations suivantes
.Rows(L + 2).Insert Shift:=xlUp 'Inserer une ligne sous la ligne L+1
.Rows(L + 2).Interior.Color = xlColorIndexNone 'Redéfini le fond en aucun remplissage
.Cells(L + 2, 1) = TextBoxDes 'Rempli Désignation
.Cells(L + 2, 2) = TextBoxFourn 'Rempli Fournisseur
.Cells(L + 2, 3) = TextBoxRef 'Rempli Référence
.Cells(L + 2, 4) = TextBoxU 'Rempli Unité
.Cells(L + 2, 5) = TextBoxQ 'Rempli Quantité
.Cells(L + 2, 6) = TextBoxP 'Rempli Prix
.Cells(L + 2, 9) = ComboBoxStock 'Rempli Zone Stockage
End With
If Len(Me.TextBoxP) <> 0 Then
Sheets("Inventaire").Cells(L + 2, 7) = Sheets("Inventaire").Cells(L + 2, 5) * Sheets("Inventaire").Cells(L + 2, 6) 'Calcul valorisation
End If
End If
End If
Unload UserFormRef
End SubJe vous joint le fichier sur lequel je travail (sans les véritables noms et références) à titre d'exemple. Le code précédent est celui associé au click du bouton "Valider" du UserFormRef.
J'aimerais simplement comprendre ce que je fais de travers, pour ensuite pouvoir l'appliquer à tous les UserForm.
Je vous remercie d'avance pour votre aide,
Ylindiel
Bonjour,
Remplace If marep = Yes Then par If marep = vbYes Then.
Cordialement,
C'était pourtant si simple, j'en ai honte!
Merci beaucoup Sébastien!