VbYesNo / que faire si "Non" ?

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

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.

Bonsoir

A tester

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
      Unload Me
      SuppresionOK.Show
    Else
      Unload Me
      SuppresionNon.Show
  End With
End Sub

Bonjour Banzai64,

Merci pour le retour.

J'ai testé votre solution et j'ai un message d'erreur quand je clic sur "Oui" :

Erreur de compilation :

Else sans If

Que puis-je faire ?

Merci.

J.

Bonjour

Damned j'ai oublié le End If

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
      Unload Me
      SuppresionOK.Show
    Else
      Unload Me
      SuppresionNon.Show
   End If
  End With
End Sub

Cher Banzai64,

Ça fonctionne parfaitement !

Merci

JM

Rechercher des sujets similaires à "vbyesno que"