Double click sur Msgbox

Résolu
PPN83 Messages postés 24 Date d'inscription dimanche 8 octobre 2006 Statut Membre Dernière intervention 15 septembre 2010 - 25 avril 2007 à 23:01
PPN83 Messages postés 24 Date d'inscription dimanche 8 octobre 2006 Statut Membre Dernière intervention 15 septembre 2010 - 26 avril 2007 à 22:40
Bonjour,

Voici mon problème: je recherche un matricule et j'affiche un formulaire dont les valeurs des texbox correspondent à la ligne du matricule, les valeurs sont récupées à partir de la ligne Range("a2:ac2") par l'intermédiaire du controle source (si il y a mieux n'hésitez pas, je suis preneur) dans le but d'y apporter des modifications.
Lorsque je modifie les textbox pas de problème, les valeurs modifiés sont reportées automatiquement dans Range("a2:ac2") puis copiées et coller dans la base. Si je modifie l'âge le calcul se fait et la valeur se retrouve sur la ligne Range("a2:ac2")  mais quand je lui demande de copier la modif dans la base il ne modifie pas la valeur dans celle-ci bien qu'elle y soit dans ligne Range("a2:ac2").
En cherchant à comprendre j'ai remarqué qu'en intégrant un Msgbox mon problème était résolue. mais je suis obligé de cliquer 2 fois sur ok ou Annuler pour que le Msgbox se ferme ???

alors si vous avez une solution avec ou sans Msgbox je suis preneur
Merci de vos réponses

Public Sub CmdEnr_Click()

    If TextCiv.Value = "" Then
        MsgBox "Veuillez saisir la civilité", vbCritical, "Erreur de saisie"
        TextCiv.SetFocus
        Exit Sub
    End If
  
    If TextNom.Value = "" Then
        MsgBox "Veuillez saisir le nom", vbCritical, "Erreur de saisie"
        TextNom.SetFocus
        Exit Sub
    End If
        If TextCiv.Value "Madame" And TextFill.Value "" Then
        MsgBox "Veuillez saisir le nom de jeune fille", vbCritical, "Complément d'information"
        TextFill.SetFocus
        Exit Sub
    Else
    If TextCiv.Value <> "Madame" And TextFill.Value <> "" Then
        MsgBox "Nom de jeune fille non valide", vbCritical, "Erreur de saisie"
        TextFill.Value = ""
        TextPre.SetFocus
        Exit Sub
    End If
    End If
   
       
   
    If TextPre.Value = "" Then
       MsgBox "Veuillez saisir le prénom", vbCritical, "Erreur de saisie"
       TextPre.SetFocus
       Exit Sub
    End If
   
    If TextNée.Value = "" Then                    
       MsgBox "Veuillez saisir la date de naissance", vbCritical, "Erreur de saisie"
       TextNée.SetFocus
       Exit Sub
      
    Else
    If IsDate(TextNée.Value) = False Then
       MsgBox "Date non valide", vbCritical, "Erreur de saisie"
       TextNée.Value = ""
       TextNée.SetFocus
       Exit Sub
    End If
    End If

    If TextAge.Value < 18 Or TextAge.Value > 65 Then
       MsgBox "L'âge doit être compris  entre 18 et 65 ans, vérifier la date de naissance", vbCritical, "Erreur de saisie"
       TextAge.Value = ""
       TextNée.SetFocus
       Exit Sub
           
    End If
   
    age = DateDiff("yyyy", TextNée, Date)
    TextAge.Value = age

Worksheets("Recherche").Select   'dans cette feuille je reporte de la feuille "base" les valeurs de la ligne correspondant à ma recherche
    Range("a2:ac2").Select  'valeurs récupérer dans la base
    Selection.Copy
    Sheets("base").Select
    Recherche.Select '(matricule recherché)
    MsgBox "Confirmez vous l'enregistrement", vbDefaultButton2 + vbOKCancel + vbExclamation, "Attention"
    If MsgBox("Confirmez vous l'enregistrement", vbDefaultButton2 + vbOKCancel + vbExclamation, "Attention") = vbCancel Then
    Exit Sub
    End If
    ActiveSheet.Paste
   
   
End Sub

10 réponses

chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
26 avril 2007 à 00:18
 Bonsoir,
t' as deux msgBox qui se chevauchent


MsgBox "Confirmez vous l'enregistrement", vbDefaultButton2 + vbOKCancel + vbExclamation, "Attention"
If MsgBox("Confirmez vous l'enregistrement", vbDefaultButton2 + vbOKCancel + vbExclamation, "Attention") = vbCancel Then


je te conseille de conserver le dernier et de spécifier les deux buttons


If MsgBox("Confirmez vous l'enregistrement",  vbYesNo + vbExclamation, "Attention") = vbNo Then
   <code Annulation>
Else
   <code Acceptation>
End If


 
3
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
26 avril 2007 à 22:28
A mon avis ton Msgbox donne simplement le temps au système de "respirer"
Un bon Doevents devrait faire l'affaire, ici.
3
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
25 avril 2007 à 23:18
Bonsoir,

Je n'irais pas jusqu'à le jurer, mais ce "phénomène" sent assez le "croche-pieds.

Premuière question : aurais-tu écrit quelquepart ailleurs dans ton code (notamment lors d'une perte de focus) :
CmdEnr_Click
Ne me réponds pas sans avoir procéder à une recherche sur ce mot à l'aide de l'éditeur.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
25 avril 2007 à 23:43
Autre chose avant d'aller dormir et d'oublier :
Rien à voir avec VB...

Je lis :

 If TextCiv.Value <> "Madame" And TextFill.Value <> "" Then
        MsgBox "Nom de jeune fille non valide", vbCritical, "Erreur de saisie"
        TextFill.Value = ""
        TextPre.SetFocus
        Exit Sub
    End If

Si ton appli doit tourner ailleurs qu'en France, ne ne sais pas... (dépend du pays)
Mais si elle doit tourner en France, je te rappelle que la mention même de "Nom de jeune fille" est illégale en France depuis plusieurs années déjà ! L'ancien "nom de jeune fille" est devenu purement et simplement le seul nom patronymique

Existent également les nptions de "nom d'usage" et "nom de courrier"
Quant ) ce que tu appelles le "nom" en attribuant celui de l'époux, il ne peut figurer qu'ainsi :

Madame DUPONT épouse/veuve/divorcée DURAND
l'appelation Madame DURAND née DUPONT est interdite en France depuis plusieurs années.

Bonne nuit.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
26 avril 2007 à 00:22
s' agissant d' une question, c' est plutôt
vbYesNo + vbQuestion
0
cs_lermite222 Messages postés 492 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 2 juillet 2012 4
26 avril 2007 à 08:27
bonjour,
tu a écrit,

Worksheets("Recherche").Select   'dans cette feuille je reporte de la feuille "base" les valeurs de la ligne correspondant à ma recherche
    Range("a2:ac2").Select  'valeurs récupérer dans la base
    Selection.Copy
    Sheets("base").Select
    Recherche.Select '(matricule recherché)
    MsgBox "Confirmez vous l'enregistrement", vbDefaultButton2 + vbOKCancel + vbExclamation, "Attention"
    If MsgBox("Confirmez vous l'enregistrement", vbDefaultButton2 + vbOKCancel + vbExclamation, "Attention") = vbCancel Then
    Exit Sub
    End If
    ActiveSheet.Paste
End Sub
Indépendament des 2 MsgBox décrit ci-dessus par chaibat05,
Tu sélectionne la feuille Recherche et tu dit que c'est dans cette feuille que tu met le résultat d'une recherche, où est la recherche ? je ne vois que la ligne 2 sélectionnée
En finale, tu veux écrire ou tu veux lire des données ?
En faite tu sélectionne Recherche / champ A2:C2 et tu copie sur
Base mais tu ne donne pas d'adresse de copie ?
ou bien je dort encore ou bien il y a un noeud.
cordialement
louis
0
PPN83 Messages postés 24 Date d'inscription dimanche 8 octobre 2006 Statut Membre Dernière intervention 15 septembre 2010
26 avril 2007 à 09:49
Bonjour
Non pas d'autre CmdEnr_Click
Ok pour le nom patronymique
merci
0
PPN83 Messages postés 24 Date d'inscription dimanche 8 octobre 2006 Statut Membre Dernière intervention 15 septembre 2010
26 avril 2007 à 10:42
Bonjour,
voici une autre partie de mon projet pour éclairer lermite222
VisioCAE est le 2 ème formulaire qui me permet d'afficher et de modifier les valeurs à partir des Textebox,  chaque Textbox est lié à la ligne Range("a2:ac2") de la feuille (Recherche) par un controlSource, il me sert à voir et à modifier les donnée de la feuille ("base") rentrée précédemment par l'intermédiaire d'un autre formulaire. Si je modifie la valeur dans le textbox la modif est faite en automatique sur la fameuse ligne y compris le résultat du calcul de l'age sauf qu'il ne me copie pas et uniquement cette valeur dans la base mais si je met un Msgbox ça marche ???
j'espère avoir été clair faut reconnaître que c'est pas évident.

Merci

Public Sub CmdRech_Click()


If TxtCiv <> "" Or TxtEmp <> "" Then
MsgBox "Veuillez terminer la saisie ou cliquer sur ANNULER", vbExclamation, "Erreur de saisie"
Exit Sub
End If


Worksheets("Base").Select




RecMat = InputBox("Entrer le N° Matricule")
    Set Recherche = Worksheets("Base").Columns(1).Find(RecMat)
    If Not Recherche Is Nothing Then
            Recherche.Select
            ActiveCell.EntireRow.Select
           
           
          Worksheets("Recherche").Range("a2").Value = Range(Recherche.Address).Offset(0, 0)
          Worksheets("Recherche").Range("b2").Value = Range(Recherche.Address).Offset(0, 1)
          Worksheets("Recherche").Range("c2").Value = Range(Recherche.Address).Offset(0, 2)
          Worksheets("Recherche").Range("d2").Value = Range(Recherche.Address).Offset(0, 3)
          Worksheets("Recherche").Range("e2").Value = Range(Recherche.Address).Offset(0, 4)
          Worksheets("Recherche").Range("f2").Value = Range(Recherche.Address).Offset(0, 5)
          Worksheets("Recherche").Range("g2").Value = Range(Recherche.Address).Offset(0, 6)
          Worksheets("Recherche").Range("h2").Value = Range(Recherche.Address).Offset(0, 7)
          Worksheets("Recherche").Range("i2").Value = Range(Recherche.Address).Offset(0, 8)
          Worksheets("Recherche").Range("j2").Value = Range(Recherche.Address).Offset(0, 9)
          Worksheets("Recherche").Range("k2").Value = Range(Recherche.Address).Offset(0, 10)
          Worksheets("Recherche").Range("l2").Value = Range(Recherche.Address).Offset(0, 11)
          Worksheets("Recherche").Range("m2").Value = Range(Recherche.Address).Offset(0, 12)
          Worksheets("Recherche").Range("n2").Value = Range(Recherche.Address).Offset(0, 13)
          Worksheets("Recherche").Range("o2").Value = Range(Recherche.Address).Offset(0, 14)
          Worksheets("Recherche").Range("p2").Value = Range(Recherche.Address).Offset(0, 15)
          Worksheets("Recherche").Range("q2").Value = Range(Recherche.Address).Offset(0, 16)
          Worksheets("Recherche").Range("r2").Value = Range(Recherche.Address).Offset(0, 17)
          Worksheets("Recherche").Range("s2").Value = Range(Recherche.Address).Offset(0, 18)
          Worksheets("Recherche").Range("t2").Value = Range(Recherche.Address).Offset(0, 19)
          Worksheets("Recherche").Range("u2").Value = Range(Recherche.Address).Offset(0, 20)
          Worksheets("Recherche").Range("v2").Value = Range(Recherche.Address).Offset(0, 21)
          Worksheets("Recherche").Range("w2").Value = Range(Recherche.Address).Offset(0, 22)
          Worksheets("Recherche").Range("x2").Value = Range(Recherche.Address).Offset(0, 23)
          Worksheets("Recherche").Range("y2").Value = Range(Recherche.Address).Offset(0, 24)
          Worksheets("Recherche").Range("z2").Value = Range(Recherche.Address).Offset(0, 25)
          Worksheets("Recherche").Range("aa2").Value = Range(Recherche.Address).Offset(0, 26)
          Worksheets("Recherche").Range("ab2").Value = Range(Recherche.Address).Offset(0, 27)
          Worksheets("Recherche").Range("ac2").Value = Range(Recherche.Address).Offset(0, 28)
    Else
          MsgBox "Le matricule n'existe pas", vbCritical, "Erreur de saisie"
          Exit Sub
      
    End If
    VisioCAE.Show
   
    End Sub
0
PPN83 Messages postés 24 Date d'inscription dimanche 8 octobre 2006 Statut Membre Dernière intervention 15 septembre 2010
26 avril 2007 à 22:21
ok merci je n'ai plus le problème du double click
mais ma question est toujours d'actualité concernant le reste
Merci d'avance
0
PPN83 Messages postés 24 Date d'inscription dimanche 8 octobre 2006 Statut Membre Dernière intervention 15 septembre 2010
26 avril 2007 à 22:40
Bravo à tous vous avez solutionné mes problèmes
Merci
0
Rejoignez-nous