XL 2016 msgBox Oui Non

JLR67

XLDnaute Nouveau
Bonjour,

Depuis 2 jours je cherche l'erreur dans l'exécution d'un bouton de commande Userform. Ma MsgBox m'affiche une erreur quand on appuie sur le bouton Non alors qu"elle fonctionne très bien en appuyant sur le bouton Oui? L'idée c'est que quand on appuie sur Non la MsgBox disparaisse et que l'userForm se vide.
N'étant pas un pro du vba, j'aurai besoin d'une âme bienveillante pour me donner la solution.
Merci à vous
Private Sub ConfirmerSaisie_Click() 'Bouton MODIFIER
Dim ligne As Long
If MsgBox("Etes-vous certain de vouloir modifier cette information ?", vbYesNo, "Demande de confirmation") = vbYes Then
'If MsgBox("Voulez-vous réinitialiser le formulaire ?", vbYesNo) = vbYes Then

'Dim ligne As Long
If Me.ComboBox8.ListIndex = -1 Then Exit Sub 'On sort si pas de sélection
ligne = Me.ComboBox8.ListIndex + 1

If Me.TextBox1 <> "" Then
Wsb.Cells(ligne, 1) = Val(TextBox1)
End If
If Me.TextBox2 <> "" Then
Wsb.Cells(ligne, 3) = Me.TextBox2
End If
If Me.TextBox3 <> "" Then
Wsb.Cells(ligne, 5) = Me.TextBox3
End If
If Me.TextBox4 <> "" Then
Wsb.Cells(ligne, 6) = Me.TextBox4
End If
If Me.TextBox5 <> "" Then
Wsb.Cells(ligne, 7) = Me.TextBox5
End If
If Me.TextBox6 <> "" Then
Wsb.Cells(ligne, 8) = Me.TextBox6
End If
If Me.TextBox7 <> "" Then
Wsb.Cells(ligne, 10).Value = CDbl(Replace(TextBox7.Value, ".", ",")) 'permet l'utilisation du point(pavé numérique)
'Else
End If
If Me.TextBox8 <> "" Then
Wsb.Cells(ligne, 13) = Me.TextBox8
End If
If Me.TextBox9 <> "" Then
Wsb.Cells(ligne, 15) = Me.TextBox9
End If
If Me.TextBox10 <> "" Then
Wsb.Cells(ligne, 17) = Val(TextBox10)
End If
If Me.TextBox11 <> "" Then
Wsb.Cells(ligne, 18) = Me.TextBox11
End If
If Me.TextBox12 <> "" Then
Wsb.Cells(ligne, 19) = Val(TextBox12)
End If
If Me.TextBox13 <> "" Then
Wsb.Cells(ligne, 20) = Val(TextBox13)
End If
If Me.TextBox14 <> "" Then
Wsb.Cells(ligne, 25) = Val(TextBox14)
End If
If Me.TextBox15 <> "" Then
Wsb.Cells(ligne, 26) = Val(TextBox15)
End If
Wsb.Cells(ligne, 27) = Val(TextBox16)
End If
If Me.TextBox17 <> "" Then
Wsb.Cells(ligne, 28) = Val(TextBox17)
End If
If Me.TextBox18 <> "" Then
Wsb.Cells(ligne, 29) = Val(TextBox18)
End If
If Me.TextBox19 <> "" Then
Wsb.Cells(ligne, 30) = Val(TextBox19)
End If
If Me.TextBox20 <> "" Then
Wsb.Cells(ligne, 31) = Val(TextBox20)
End If
If Me.TextBox21 <> "" Then
Wsb.Cells(ligne, 32) = Val(TextBox21)
End If

If ComboBox1 <> "" Then
Wsb.Cells(ligne, 2) = ComboBox1
End If
If ComboBox2 <> "" Then
Wsb.Cells(ligne, 3) = ComboBox2
End If
If ComboBox3 <> "" Then
Wsb.Cells(ligne, 9) = ComboBox3
End If
If ComboBox4 <> "" Then
Wsb.Cells(ligne, 11) = ComboBox4
End If
If ComboBox5 <> "" Then
Wsb.Cells(ligne, 12) = ComboBox5
End If
If ComboBox6 <> "" Then
Wsb.Cells(ligne, 14) = ComboBox6
End If
If ComboBox7 <> "" Then
Wsb.Cells(ligne, 16) = ComboBox7
End If

End Sub
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

If MsgBox(.....)= vbYes then
' Actions si oui
Else
' Actions si non
End if

Autre suggetion :
VB:
If Me.TextBox1 <> "" Then
Wsb.Cells(ligne, 1) = Val(TextBox1)
End If
If Me.TextBox2 <> "" Then
Wsb.Cells(ligne, 3) = Me.TextBox2
End If
If Me.TextBox3 <> "" Then
Wsb.Cells(ligne, 5) = Me.TextBox3
End If
If Me.TextBox4 <> "" Then
Wsb.Cells(ligne, 6) = Me.TextBox4
End If

Peut s'écrire
Code:
With Wsb

If Me.TextBox1 <> "" Then  .Cells(ligne, 1) = Val(TextBox1) 'sur une seule ligne sans end if si une seule action
If Me.TextBox2 <> "" Then  .Cells(ligne, 3) = Me.TextBox2
If Me.TextBox3 <> "" Then  .Cells(ligne, 5) = Me.TextBox3
If Me.TextBox4 <> "" Then  .Cells(ligne, 6) = Me.TextBox4
 'Etc.....

End With

cordialement
 

patty58

XLDnaute Occasionnel
Bonjour

Plus simple :
VB:
If MsgBox("Etes-vous certain de vouloir modifier cette information ?", vbYesNo, "Demande de confirmation") = vbNo Then
'vide les données de ton Userform
    Exit Sub
End If
Ainsi, tout ce qui est sous ces lignes se fait si la réponse est oui
 

Hasco

XLDnaute Barbatruc
Repose en paix
Pour la lecture de son code déjà long :
Si c'est non, il sort, sinon, il fait tout ce qui se trouve derrière. Désolée de choquer
Oui, merci j'avais pas compris... C'est vrai que je ne connais vba que depuis sa naissance.
Tant qu'on a pas la définition précise de la situation, des circonstances, tenants et aboutissants de la demande, affirmer 'ma solution est plus simple' ne satisfait que celui qui l'affirme.
 
Dernière édition:

patty58

XLDnaute Occasionnel
@Hasco
Je voulais dire plus simple à la lecture que ce qu'il avait fait, lui, en fait plus lisible
Je ne pensais pas lancer une polémique et n'avais pas encore vu ta réponse
Je ne pensais pas que ce site était fait pour se lancer des vannes.
Bonne journée à tous
 

Discussions similaires

Réponses
17
Affichages
310
Réponses
6
Affichages
393

Statistiques des forums

Discussions
312 100
Messages
2 085 293
Membres
102 853
dernier inscrit
jetstream69