vbYesNo / que faire si "Non" ?

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jonleboss

XLDnaute Junior
Bonsoir à tous,

J'ai une fonction qui récupère une valeur via une Textbox et qui supprime la ligne d'un tableau pour laquelle la cellule B est égale à cette valeur. Pour éviter tout erreur de manipulation ou suppression attive, j'ai mis en place une MsgBox avec "oui" et "non". Quand on choisi "oui" pour confirmer la suppression, la ligne est ( logiquement, je sais ) supprimée et le USF SuppresionOK s'affiche. Mais, je n'arrive pas à trouver comme faire en sorte que si nous cliquions sur "non", le USF SuppresionNon s'affiche.... Faut-il utiliser Else ? ou autre codage ?

Voici mon code, je pense que tout ce joue vers la fin 😉

Code:
Private Sub BoutSupprimer_Click()
Dim r As Range
With Sheets("feuil1")
Set r = .Range("B3:B" & .Cells(Application.Rows.Count, 3).End(xlUp).Row).Find(TextBox1.Value, , xlValues, xlWhole)
If r Is Nothing Then MsgBox "Aucune correspondance trouvée", , "Pas de Corespondance": Exit Sub
If MsgBox("Êtes-vous sûr(e) de vouloir supprimer cette donnée ? ", vbYesNo, "Attention !") = vbYes Then .Rows(r.Row).Delete
End With
Unload Me
SuppresionOK.Show 
Else
SuppresionNon.Show
End Sub

Merci d'avance.

M.
 
Re : vbYesNo / que faire si "Non" ?

Bonsoir,


Une solution à tester :

Code:
Private Sub BoutSupprimer_Click()
Dim r As Range

With Sheets("feuil1")
Set r = .Range("B3:B" & .Cells(Application.Rows.Count, 3).End(xlUp).Row).Find(TextBox1.Value, , xlValues, xlWhole)
If r Is Nothing Then MsgBox "Aucune correspondance trouvée", , "Pas de Corespondance": Exit Sub
Select Case MsgBox("Êtes-vous sûr(e) de vouloir supprimer cette donnée ? ", vbYesNo, "Attention !")
Case vbYes: .Rows(r.Row).Delete
Case vbNo: 'ici Code vbNo
End Select
End With
Unload Me
SuppresionOK.Show
Else
SuppresionNon.Show
End Sub
 
Re : vbYesNo / que faire si "Non" ?

salut

Si... Alors ... Sinon... doit s'écrire sur 3 lignes
Code:
If P Then Action
Else ...
est incorrect !
Dans ton cas essaie :
Code:
Private Sub CommandButton1_Click()
 Dim r As Range
  With Sheets("feuil1")
    Set r = .Columns(2).Find(TextBox1, , xlValues, xlWhole)
    If r Is Nothing Then MsgBox "Aucune correspondance trouvée", , "Pas de Correspondance": TextBox1 = "": Exit Sub 
    Unload Me
    If MsgBox("Êtes-vous sûr(e) de vouloir supprimer cette donnée ? ", vbYesNo, "Attention !") = vbYes Then
      .Rows(r.Row).Delete
      SuppresionOK.Show
    Else
      SuppresionNon.Show
    End If
  End With
End Sub

A noter qu'un code bien indenté permet d'éviter de telles erreurs.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
6
Affichages
637
Réponses
7
Affichages
1 K
Réponses
3
Affichages
951
  • Question Question
Microsoft 365 Protect/Unprotect
Réponses
18
Affichages
3 K
Retour