Autres vbYes

FOUQUET Yves

XLDnaute Occasionnel
Bonsoir,

Quelqu'un peut m'expliquer pourquoi dans cette procédure:
- si je réponds "NON" au message de confirmation la procédure continue tout de même

Merci d'avance.
Grrrrrrrr

VB:
Private Sub Commandbutton2_Click() '---- bouton ajouter ----

If MsgBox("Etes-vous certain de vouloir AJOUTER ce mouvement ?", vbYesNo, "Demande de confirmation") = vbYes Then
If vbYes <> 6 Then Exit Sub
End If

Sheets("journal matos").Activate
With Sheets("journal matos")         '--- La feuille usuelle en activité ----------
l = 0
l = Range("A500").End(3).Row + 1      'Permet de se positionner sur la dernière ligne de tableau NON VIDE

    If TextBox8 = "" Then                  '--- gestion des entrées
    .Range("A" & l).Value = ""
    .Range("B" & l).Value = ""
    .Range("C" & l).Value = ""
    .Range("D" & l).Value = ""
    .Range("E" & l).Value = ""
    Else
    .Range("A" & l).Value = TextBox1   'libelle
    .Range("B" & l).Value = TextBox7
    .Range("C" & l).Value = TextBox8
    .Range("D" & l).Value = TextBox2
    .Range("E" & l).Value = TextBox12
    End If
   
    .Range("F" & l).Value = "II"  '-- séparation ---
   
    If TextBox11 = "" Then              '---- gestion des sorties
    .Range("G" & l).Value = ""
    .Range("H" & l).Value = ""
    .Range("I" & l).Value = ""
    .Range("J" & l).Value = ""
    .Range("K" & l).Value = ""
    .Range("L" & l).Value = ""
    Else
    .Range("G" & l).Value = TextBox1
    .Range("H" & l).Value = TextBox9
    .Range("I" & l).Value = TextBox10
    .Range("J" & l).Value = TextBox11
    .Range("K" & l).Value = TextBox2
    .Range("L" & l).Value = TextBox12
    End If
End With
End sub
 

Roblochon

XLDnaute Impliqué
Bonsoir,

vbYes, tant que microsoft n'aura pas décidé de changer sa valeur, vaut toujours 6 ou n'est jamais différent de 6 !
Une constante sera toujours égale à sa valeur.

les lignes ci-dessous devraient suffire et si j'ai bien compris le sens du test, changez vbYes par vbNo (si l'utilisateur n'est pas certain, alors on sort)
VB:
If MsgBox("Etes-vous certain de vouloir AJOUTER ce mouvement ?", vbYesNo, "Demande de confirmation") = vbNo Then
    Exit Sub
End If
Bonne soirée
 

Laurent78

XLDnaute Junior
Bonsoir,
une autre possibilité :
VB:
Private Sub Commandbutton2_Click() '---- bouton ajouter ----

If MsgBox("Etes-vous certain de vouloir AJOUTER ce mouvement ?", vbYesNo, "Demande de confirmation") = vbYes Then
' If vbYes <> 6 Then Exit Sub <------- à supprimer
' End If <---- déplacé avant le End sub, cf plus bas

    Sheets("journal matos").Activate
    With Sheets("journal matos")         '--- La feuille usuelle en activité ----------
    l = 0
    l = Range("A500").End(3).Row + 1      'Permet de se positionner sur la dernière ligne de tableau NON VIDE
    
        If TextBox8 = "" Then                  '--- gestion des entrées
        .Range("A" & l).Value = ""
        .Range("B" & l).Value = ""
        .Range("C" & l).Value = ""
        .Range("D" & l).Value = ""
        .Range("E" & l).Value = ""
        Else
        .Range("A" & l).Value = TextBox1   'libelle
        .Range("B" & l).Value = TextBox7
        .Range("C" & l).Value = TextBox8
        .Range("D" & l).Value = TextBox2
        .Range("E" & l).Value = TextBox12
        End If
      
        .Range("F" & l).Value = "II"  '-- séparation ---
      
        If TextBox11 = "" Then              '---- gestion des sorties
        .Range("G" & l).Value = ""
        .Range("H" & l).Value = ""
        .Range("I" & l).Value = ""
        .Range("J" & l).Value = ""
        .Range("K" & l).Value = ""
        .Range("L" & l).Value = ""
        Else
        .Range("G" & l).Value = TextBox1
        .Range("H" & l).Value = TextBox9
        .Range("I" & l).Value = TextBox10
        .Range("J" & l).Value = TextBox11
        .Range("K" & l).Value = TextBox2
        .Range("L" & l).Value = TextBox12
        End If
    End With
  End If ' <----- il est là maintenant
End Sub
Bonne soiré
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil

Yves
1) Juste pour info
On peut "alléger" le code en remplaçant
.Range("A" & l).Value = ""
.Range("B" & l).Value = ""
.Range("C" & l).Value = ""
.Range("D" & l).Value = ""
.Range("E" & l).Value = ""
par
Range("A" & l).Resize(, 5) = ""
Et faire pareil pour le reste du code en remplaçant le 5 par la valeur idoine.

2) Autre suggestion d'écriture pour le vbYesNo
VB:
Sub duction()
Dim vRep
vRep = MsgBox("Texte message", vbYesNo, "Titre")
Select Case vRep
Case 6
'reste du code si clic sur Oui
MsgBox "Vous avez cliqué sur OUI"
Case 7
'reste du code si clic sur Non
MsgBox "Vous avez cliqué sur NON"
End Select
End Sub
 

FOUQUET Yves

XLDnaute Occasionnel
OK, merci mon camarade. Je note... et j'apprends.

Ce code adapté aux textbox d'un userform afin de les vider ? Merci

Pour info j'ai bien avancé sur mon projet et tant bien que mal je suis arrivé au bout de mon histoire.
Juste un problème à régler dans un envoi de message automatisé. J'ai posé cela dans un autre fil resté pour l'instant sans réponse...

Bon week end.
 
Dernière édition:

Discussions similaires


Haut Bas