vbYesNo / que faire si "Non" ?

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.
 

Gareth

XLDnaute Impliqué
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
 

Si...

XLDnaute Barbatruc
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.
 

Discussions similaires

Réponses
6
Affichages
397
Réponses
7
Affichages
984
Réponses
2
Affichages
742

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 206
Messages
2 086 211
Membres
103 158
dernier inscrit
laufin