Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

msgbox disparait tout seul

26 réponses
Avatar
simulacre25
Bonjour,

Je fais face à un problème qui concerne la disparition d'un msgbox avant même que l'utilisateur ait cliqué sur OK.

La procédure est liée à un bouton positionné sur un userform modal. La macro s'exécute correctement, affiche le msgbox, le fait disparaître et continue jusqu'au bout. Cela n'arrive pas dans d'autres procédures de mon application avec les mêmes caratéristiques (userform modal).

Je place ci-dessous le code concerné :
--------------------------------------------------------------
Dim COPIE As Integer

Application.ScreenUpdating = False
Application.DisplayAlerts = False

Sheets("Détails des coûts").Select
Range("O2").Select
ActiveCell.FormulaR1C1 = "=COUNTA(C[-11])"
Selection.Font.ColorIndex = 2

COPIE = Range("O2").Value

Range("M1").Select
ActiveCell.FormulaR1C1 = "Processus"
Range("M2").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-8],Processus,3,FALSE)"
Range("M2").Select
Selection.AutoFill Destination:=Range("M2:M" & COPIE & ""), Type:=xlFillDefault

Message = MsgBox("Les processus ont été ajoutés à la feuille Détails des coûts", vbOKOnly, "Information")

Sheets("Accueil").Select
Range("H20").Select

Application.ScreenUpdating = True
Application.DisplayAlerts = True
------------------------------------------------------------
J'ai tenté de déplacer les application.screen... et dislay avant l'affichage du message, de déclarer la msgbox en variable... mais rien n'y fait.

Merci de votre aide.

Bonne journée.

10 réponses

1 2 3
Avatar
simulacre25
simulacre25 a écrit le 13/10/2011 à 17h30 :
Jacky a écrit le 13/10/2011 à 17h00 :
Re..
Je n'arrive pas à reproduire ton erreur
Teste ceci..
http://www.cijoint.fr/cjlink.php?file=cj201110/cijQMPrvmy.xls


Ps:La roulette de ma souris et moi remercions les questionneurs de
répondre au-dessus des messages (c'est la
coutume sur ce forum)

--
Salutations
JJ


"simulacre25" a
écrit dans le message de news:

Jacky a écrit le 13/10/2011 à 14h41 :
Bonjour,

Le PC a t'il était rebooter depuis apparition de ce problème ?

--
Salutations
JJ


"simulacre25" a
écrit dans le message de news:

Bonjour,

Je fais face à un problème qui concerne la disparition d'un
msgbox avant même
que l'utilisateur ait cliqué sur OK.

La procédure est liée à un bouton positionné
sur
un userform modal. La macro
s'exécute correctement, affiche le msgbox, le fait disparaître
et
continue
jusqu'au bout. Cela n'arrive pas dans d'autres procédures de mon
application
avec les mêmes caratéristiques (userform modal).

Je place ci-dessous le code concerné :
--------------------------------------------------------------
Dim COPIE As Integer

Application.ScreenUpdating = False
Application.DisplayAlerts = False

Sheets("Détails des coûts").Select
Range("O2").Select
ActiveCell.FormulaR1C1 = "=COUNTA(C[-11])"
Selection.Font.ColorIndex = 2

COPIE = Range("O2").Value

Range("M1").Select
ActiveCell.FormulaR1C1 = "Processus"
Range("M2").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-8],Processus,3,FALSE)"
Range("M2").Select
Selection.AutoFill Destination:=Range("M2:M" & COPIE &
""),
Type:=xlFillDefault

Message = MsgBox("Les processus ont été ajoutés
à la feuille Détails des
coûts", vbOKOnly, "Information")

Sheets("Accueil").Select
Range("H20").Select

Application.ScreenUpdating = True
Application.DisplayAlerts = True
------------------------------------------------------------
J'ai tenté de déplacer les application.screen... et dislay
avant
l'affichage du
message, de déclarer la msgbox en variable... mais rien n'y fait.

Merci de votre aide.

Bonne journée.








PC rebooté.

Le formulaire sur lequel se trouve le bouton lançant la
procédure est un
formulaire modal qui est lancé à partir d'un autre formulaire
modal via une
procédure liée à une image :

Private Sub Image_Ajout_Suppr_Click()

Accueil.Hide
Ajout_Suppression.Show
'DoEvents

End Sub

J'ai mis en commentaire le Doevents mais cela ne change rien.

Faut-il décharger complètement le premier formulaire par unload
plutôt qu'un
hide ?






Je teste cela demain au boulot et vous tiens au courant.

Merci.

PS : Par contre, pas le choix pour écrire avant ou après la
citation. Je n'ai qu'un cadre de réponse disponible.


Bonjour,

la procédure décrite est celle que j'applique. J'ai essayé un Unload.Userform1 pour le recharger à partir du bouton de fermeture du userform2 une fois la procédure effectuée, mais cela ne marche pas.

J'ai plusieurs boutons sur le formulaire concerné et l'affichage des msgbox dysfonctionne uniquement dans les procédures à partir de ce formulaire. Sur mes autres formulaires, aucun souci d'affichage. Les msgbox apparaissent et restent à l'écran jusqu'au clic de l'utilisateur.

J'ai regardé les propriétés de tous mes formulaires afin de détecter une différence, mais il sont tous créés avec les paramètres similaires.

Le problème semble être lié au formulaire et non aux procédures. Je l'ai aussi exporté/supprimé et réimporté ensuite.
Avatar
Jacky
Re...
Il faudrait un brouillon du classeur avec le formulaire en question et les procédures qui le concernent sur
http://www.cijoint.fr

--
Salutations
JJ


"simulacre25" a écrit dans le message de news:

simulacre25 a écrit le 13/10/2011 à 17h30 :
Jacky a écrit le 13/10/2011 à 17h00 :
Re..
Je n'arrive pas à reproduire ton erreur
Teste ceci..
http://www.cijoint.fr/cjlink.php?file=cj201110/cijQMPrvmy.xls


Ps:La roulette de ma souris et moi remercions les questionneurs de
répondre au-dessus des messages (c'est la
coutume sur ce forum)

--
Salutations
JJ


"simulacre25" a
écrit dans le message de news:

Jacky a écrit le 13/10/2011 à 14h41 :
Bonjour,

Le PC a t'il était rebooter depuis apparition de ce problème ?

--
Salutations
JJ


"simulacre25" a
écrit dans le message de news:

Bonjour,

Je fais face à un problème qui concerne la disparition d'un
msgbox avant même
que l'utilisateur ait cliqué sur OK.

La procédure est liée à un bouton positionné
sur
un userform modal. La macro
s'exécute correctement, affiche le msgbox, le fait disparaître
et
continue
jusqu'au bout. Cela n'arrive pas dans d'autres procédures de mon
application
avec les mêmes caratéristiques (userform modal).

Je place ci-dessous le code concerné :
--------------------------------------------------------------
Dim COPIE As Integer

Application.ScreenUpdating = False
Application.DisplayAlerts = False

Sheets("Détails des coûts").Select
Range("O2").Select
ActiveCell.FormulaR1C1 = "=COUNTA(C[-11])"
Selection.Font.ColorIndex = 2

COPIE = Range("O2").Value

Range("M1").Select
ActiveCell.FormulaR1C1 = "Processus"
Range("M2").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-8],Processus,3,FALSE)"
Range("M2").Select
Selection.AutoFill Destination:=Range("M2:M" & COPIE &
""),
Type:=xlFillDefault

Message = MsgBox("Les processus ont été ajoutés
à la feuille Détails des
coûts", vbOKOnly, "Information")

Sheets("Accueil").Select
Range("H20").Select

Application.ScreenUpdating = True
Application.DisplayAlerts = True
------------------------------------------------------------
J'ai tenté de déplacer les application.screen... et dislay
avant
l'affichage du
message, de déclarer la msgbox en variable... mais rien n'y fait.

Merci de votre aide.

Bonne journée.








PC rebooté.

Le formulaire sur lequel se trouve le bouton lançant la
procédure est un
formulaire modal qui est lancé à partir d'un autre formulaire
modal via une
procédure liée à une image :

Private Sub Image_Ajout_Suppr_Click()

Accueil.Hide
Ajout_Suppression.Show
'DoEvents

End Sub

J'ai mis en commentaire le Doevents mais cela ne change rien.

Faut-il décharger complètement le premier formulaire par unload
plutôt qu'un
hide ?






Je teste cela demain au boulot et vous tiens au courant.

Merci.

PS : Par contre, pas le choix pour écrire avant ou après la
citation. Je n'ai qu'un cadre de réponse disponible.


Bonjour,

la procédure décrite est celle que j'applique. J'ai essayé un Unload.Userform1
pour le recharger à partir du bouton de fermeture du userform2 une fois la
procédure effectuée, mais cela ne marche pas.

J'ai plusieurs boutons sur le formulaire concerné et l'affichage des msgbox
dysfonctionne uniquement dans les procédures à partir de ce formulaire. Sur mes
autres formulaires, aucun souci d'affichage. Les msgbox apparaissent et restent
à l'écran jusqu'au clic de l'utilisateur.

J'ai regardé les propriétés de tous mes formulaires afin de détecter une
différence, mais il sont tous créés avec les paramètres similaires.

Le problème semble être lié au formulaire et non aux procédures. Je l'ai aussi
exporté/supprimé et réimporté ensuite.
Avatar
simulacre25
Jacky a écrit le 14/10/2011 à 10h41 :
Re...
Il faudrait un brouillon du classeur avec le formulaire en question et les
procédures qui le concernent sur
http://www.cijoint.fr

--
Salutations
JJ


"simulacre25" a
écrit dans le message de news:

simulacre25 a écrit le 13/10/2011 à 17h30 :
Jacky a écrit le 13/10/2011 à 17h00 :
Re..
Je n'arrive pas à reproduire ton erreur
Teste ceci..
http://www.cijoint.fr/cjlink.php?file=cj201110/cijQMPrvmy.xls


Ps:La roulette de ma souris et moi remercions les questionneurs de
répondre au-dessus des messages (c'est la
coutume sur ce forum)

--
Salutations
JJ


"simulacre25" a
écrit dans le message de news:

Jacky a écrit le 13/10/2011 à 14h41 :
Bonjour,

Le PC a t'il était rebooter depuis apparition de ce problème
?

--
Salutations
JJ


"simulacre25" a
écrit dans le message de news:

Bonjour,

Je fais face à un problème qui concerne la disparition d'un
msgbox avant même
que l'utilisateur ait cliqué sur OK.

La procédure est liée à un bouton positionné
sur
un userform modal. La macro
s'exécute correctement, affiche le msgbox, le fait
disparaître
et
continue
jusqu'au bout. Cela n'arrive pas dans d'autres procédures de mon
application
avec les mêmes caratéristiques (userform modal).

Je place ci-dessous le code concerné :
--------------------------------------------------------------
Dim COPIE As Integer

Application.ScreenUpdating = False
Application.DisplayAlerts = False

Sheets("Détails des coûts").Select
Range("O2").Select
ActiveCell.FormulaR1C1 = "=COUNTA(C[-11])"
Selection.Font.ColorIndex = 2

COPIE = Range("O2").Value

Range("M1").Select
ActiveCell.FormulaR1C1 = "Processus"
Range("M2").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-8],Processus,3,FALSE)"
Range("M2").Select
Selection.AutoFill Destination:=Range("M2:M" & COPIE &
""),
Type:=xlFillDefault

Message = MsgBox("Les processus ont été ajoutés
à la feuille Détails des
coûts", vbOKOnly, "Information")

Sheets("Accueil").Select
Range("H20").Select

Application.ScreenUpdating = True
Application.DisplayAlerts = True
------------------------------------------------------------
J'ai tenté de déplacer les application.screen... et dislay
avant
l'affichage du
message, de déclarer la msgbox en variable... mais rien n'y fait.

Merci de votre aide.

Bonne journée.










PC rebooté.

Le formulaire sur lequel se trouve le bouton lançant la
procédure est un
formulaire modal qui est lancé à partir d'un autre formulaire
modal via une
procédure liée à une image :

Private Sub Image_Ajout_Suppr_Click()

Accueil.Hide
Ajout_Suppression.Show
'DoEvents

End Sub

J'ai mis en commentaire le Doevents mais cela ne change rien.

Faut-il décharger complètement le premier formulaire par
unload
plutôt qu'un
hide ?








Je teste cela demain au boulot et vous tiens au courant.

Merci.

PS : Par contre, pas le choix pour écrire avant ou après la
citation. Je n'ai qu'un cadre de réponse disponible.



Bonjour,

la procédure décrite est celle que j'applique. J'ai
essayé un Unload.Userform1
pour le recharger à partir du bouton de fermeture du userform2 une fois
la
procédure effectuée, mais cela ne marche pas.

J'ai plusieurs boutons sur le formulaire concerné et l'affichage des
msgbox
dysfonctionne uniquement dans les procédures à partir de ce
formulaire. Sur mes
autres formulaires, aucun souci d'affichage. Les msgbox apparaissent et
restent
à l'écran jusqu'au clic de l'utilisateur.

J'ai regardé les propriétés de tous mes formulaires afin
de détecter une
différence, mais il sont tous créés avec les
paramètres similaires.

Le problème semble être lié au formulaire et non aux
procédures. Je l'ai aussi
exporté/supprimé et réimporté ensuite.




L'application épurée avec le formulaire qui pose problème (le deuxième).

http://www.cijoint.fr/cjlink.php?file=cj201110/cijIccDC6d.xls

Même là je ne vois pas...
Avatar
Jacky
Je n'ai aucune difficulté en ce qui concerne l'affichage du message soit en ajoutant ou en supprimant ce que
tu appelles processus et a devoir le confirmer par ok.

En fait, perso. je n'ai jamais eu une "NON OBLIGATION" de confirmation par ok de MsgBox même avec
"Application.EnableEvents" à false
Le mystère demeure...

--
Salutations
JJ


"simulacre25" a écrit dans le message de news:

Jacky a écrit le 14/10/2011 à 10h41 :
Re...
Il faudrait un brouillon du classeur avec le formulaire en question et les
procédures qui le concernent sur
http://www.cijoint.fr

--
Salutations
JJ


"simulacre25" a
écrit dans le message de news:

simulacre25 a écrit le 13/10/2011 à 17h30 :
Jacky a écrit le 13/10/2011 à 17h00 :
Re..
Je n'arrive pas à reproduire ton erreur
Teste ceci..
http://www.cijoint.fr/cjlink.php?file=cj201110/cijQMPrvmy.xls


Ps:La roulette de ma souris et moi remercions les questionneurs de
répondre au-dessus des messages (c'est la
coutume sur ce forum)

--
Salutations
JJ


"simulacre25" a
écrit dans le message de news:

Jacky a écrit le 13/10/2011 à 14h41 :
Bonjour,

Le PC a t'il était rebooter depuis apparition de ce problème
?

--
Salutations
JJ


"simulacre25" a
écrit dans le message de news:

Bonjour,

Je fais face à un problème qui concerne la disparition d'un
msgbox avant même
que l'utilisateur ait cliqué sur OK.

La procédure est liée à un bouton positionné
sur
un userform modal. La macro
s'exécute correctement, affiche le msgbox, le fait
disparaître
et
continue
jusqu'au bout. Cela n'arrive pas dans d'autres procédures de mon
application
avec les mêmes caratéristiques (userform modal).

Je place ci-dessous le code concerné :
--------------------------------------------------------------
Dim COPIE As Integer

Application.ScreenUpdating = False
Application.DisplayAlerts = False

Sheets("Détails des coûts").Select
Range("O2").Select
ActiveCell.FormulaR1C1 = "=COUNTA(C[-11])"
Selection.Font.ColorIndex = 2

COPIE = Range("O2").Value

Range("M1").Select
ActiveCell.FormulaR1C1 = "Processus"
Range("M2").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-8],Processus,3,FALSE)"
Range("M2").Select
Selection.AutoFill Destination:=Range("M2:M" & COPIE &
""),
Type:=xlFillDefault

Message = MsgBox("Les processus ont été ajoutés
à la feuille Détails des
coûts", vbOKOnly, "Information")

Sheets("Accueil").Select
Range("H20").Select

Application.ScreenUpdating = True
Application.DisplayAlerts = True
------------------------------------------------------------
J'ai tenté de déplacer les application.screen... et dislay
avant
l'affichage du
message, de déclarer la msgbox en variable... mais rien n'y fait.

Merci de votre aide.

Bonne journée.










PC rebooté.

Le formulaire sur lequel se trouve le bouton lançant la
procédure est un
formulaire modal qui est lancé à partir d'un autre formulaire
modal via une
procédure liée à une image :

Private Sub Image_Ajout_Suppr_Click()

Accueil.Hide
Ajout_Suppression.Show
'DoEvents

End Sub

J'ai mis en commentaire le Doevents mais cela ne change rien.

Faut-il décharger complètement le premier formulaire par
unload
plutôt qu'un
hide ?








Je teste cela demain au boulot et vous tiens au courant.

Merci.

PS : Par contre, pas le choix pour écrire avant ou après la
citation. Je n'ai qu'un cadre de réponse disponible.



Bonjour,

la procédure décrite est celle que j'applique. J'ai
essayé un Unload.Userform1
pour le recharger à partir du bouton de fermeture du userform2 une fois
la
procédure effectuée, mais cela ne marche pas.

J'ai plusieurs boutons sur le formulaire concerné et l'affichage des
msgbox
dysfonctionne uniquement dans les procédures à partir de ce
formulaire. Sur mes
autres formulaires, aucun souci d'affichage. Les msgbox apparaissent et
restent
à l'écran jusqu'au clic de l'utilisateur.

J'ai regardé les propriétés de tous mes formulaires afin
de détecter une
différence, mais il sont tous créés avec les
paramètres similaires.

Le problème semble être lié au formulaire et non aux
procédures. Je l'ai aussi
exporté/supprimé et réimporté ensuite.




L'application épurée avec le formulaire qui pose problème (le deuxième).

http://www.cijoint.fr/cjlink.php?file=cj201110/cijIccDC6d.xls

Même là je ne vois pas...
Avatar
simulacre25
Jacky a écrit le 14/10/2011 à 14h03 :
Je n'ai aucune difficulté en ce qui concerne l'affichage du message soit
en ajoutant ou en supprimant ce que
tu appelles processus et a devoir le confirmer par ok.

En fait, perso. je n'ai jamais eu une "NON OBLIGATION" de
confirmation par ok de MsgBox même avec
"Application.EnableEvents" à false
Le mystère demeure...

--
Salutations
JJ


"simulacre25" a
écrit dans le message de news:

Jacky a écrit le 14/10/2011 à 10h41 :
Re...
Il faudrait un brouillon du classeur avec le formulaire en question et les
procédures qui le concernent sur
http://www.cijoint.fr

--
Salutations
JJ


"simulacre25" a
écrit dans le message de news:

simulacre25 a écrit le 13/10/2011 à 17h30 :
Jacky a écrit le 13/10/2011 à 17h00 :
Re..
Je n'arrive pas à reproduire ton erreur
Teste ceci..
http://www.cijoint.fr/cjlink.php?file=cj201110/cijQMPrvmy.xls


Ps:La roulette de ma souris et moi remercions les questionneurs de
répondre au-dessus des messages (c'est la
coutume sur ce forum)

--
Salutations
JJ


"simulacre25" a
écrit dans le message de news:

Jacky a écrit le 13/10/2011 à 14h41 :
Bonjour,

Le PC a t'il était rebooter depuis apparition de ce
problème
?

--
Salutations
JJ


"simulacre25" a
écrit dans le message de news:

Bonjour,

Je fais face à un problème qui concerne la disparition
d'un
msgbox avant même
que l'utilisateur ait cliqué sur OK.

La procédure est liée à un bouton
positionné
sur
un userform modal. La macro
s'exécute correctement, affiche le msgbox, le fait
disparaître
et
continue
jusqu'au bout. Cela n'arrive pas dans d'autres procédures de mon
application
avec les mêmes caratéristiques (userform modal).

Je place ci-dessous le code concerné :
--------------------------------------------------------------
Dim COPIE As Integer

Application.ScreenUpdating = False
Application.DisplayAlerts = False

Sheets("Détails des coûts").Select
Range("O2").Select
ActiveCell.FormulaR1C1 = "=COUNTA(C[-11])"
Selection.Font.ColorIndex = 2

COPIE = Range("O2").Value

Range("M1").Select
ActiveCell.FormulaR1C1 = "Processus"
Range("M2").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-8],Processus,3,FALSE)"
Range("M2").Select
Selection.AutoFill Destination:=Range("M2:M" & COPIE
&
""),
Type:=xlFillDefault

Message = MsgBox("Les processus ont été
ajoutés
à la feuille Détails des
coûts", vbOKOnly, "Information")

Sheets("Accueil").Select
Range("H20").Select

Application.ScreenUpdating = True
Application.DisplayAlerts = True
------------------------------------------------------------
J'ai tenté de déplacer les application.screen... et
dislay
avant
l'affichage du
message, de déclarer la msgbox en variable... mais rien n'y
fait.

Merci de votre aide.

Bonne journée.












PC rebooté.

Le formulaire sur lequel se trouve le bouton lançant la
procédure est un
formulaire modal qui est lancé à partir d'un autre
formulaire
modal via une
procédure liée à une image :

Private Sub Image_Ajout_Suppr_Click()

Accueil.Hide
Ajout_Suppression.Show
'DoEvents

End Sub

J'ai mis en commentaire le Doevents mais cela ne change rien.

Faut-il décharger complètement le premier formulaire par
unload
plutôt qu'un
hide ?










Je teste cela demain au boulot et vous tiens au courant.

Merci.

PS : Par contre, pas le choix pour écrire avant ou après la
citation. Je n'ai qu'un cadre de réponse disponible.




Bonjour,

la procédure décrite est celle que j'applique. J'ai
essayé un Unload.Userform1
pour le recharger à partir du bouton de fermeture du userform2 une
fois
la
procédure effectuée, mais cela ne marche pas.

J'ai plusieurs boutons sur le formulaire concerné et l'affichage des
msgbox
dysfonctionne uniquement dans les procédures à partir de ce
formulaire. Sur mes
autres formulaires, aucun souci d'affichage. Les msgbox apparaissent et
restent
à l'écran jusqu'au clic de l'utilisateur.

J'ai regardé les propriétés de tous mes formulaires
afin
de détecter une
différence, mais il sont tous créés avec les
paramètres similaires.

Le problème semble être lié au formulaire et non aux
procédures. Je l'ai aussi
exporté/supprimé et réimporté ensuite.






L'application épurée avec le formulaire qui pose problème
(le deuxième).

http://www.cijoint.fr/cjlink.php?file=cj201110/cijIccDC6d.xls

Même là je ne vois pas...




Merci pour tout quand même. Je vais regarder la configuration de mon poste ou l'installation d'Excel.

Bon week-end.
Avatar
Jacky
Pour info, sans croire que cela soit responsable et en dehors de la simplification de Denis
Il est inutile de charger une variable pour l'affichage du Msgbox

Message = MsgBox("Les processus ont été ajoutés à la phase 3 - Détails des coûts", vbOKOnly, "Information")
Ceci est suffisant
MsgBox "Les processus ont été ajoutés à la phase 3 - Détails des coûts", vbOKOnly, "Information"

--
Salutations
JJ


"simulacre25" a écrit dans le message de news:

Jacky a écrit le 14/10/2011 à 14h03 :
Je n'ai aucune difficulté en ce qui concerne l'affichage du message soit
en ajoutant ou en supprimant ce que
tu appelles processus et a devoir le confirmer par ok.

En fait, perso. je n'ai jamais eu une "NON OBLIGATION" de
confirmation par ok de MsgBox même avec
"Application.EnableEvents" à false
Le mystère demeure...

--
Salutations
JJ


"simulacre25" a
écrit dans le message de news:

Jacky a écrit le 14/10/2011 à 10h41 :
Re...
Il faudrait un brouillon du classeur avec le formulaire en question et les
procédures qui le concernent sur
http://www.cijoint.fr

--
Salutations
JJ


"simulacre25" a
écrit dans le message de news:

simulacre25 a écrit le 13/10/2011 à 17h30 :
Jacky a écrit le 13/10/2011 à 17h00 :
Re..
Je n'arrive pas à reproduire ton erreur
Teste ceci..
http://www.cijoint.fr/cjlink.php?file=cj201110/cijQMPrvmy.xls


Ps:La roulette de ma souris et moi remercions les questionneurs de
répondre au-dessus des messages (c'est la
coutume sur ce forum)

--
Salutations
JJ


"simulacre25" a
écrit dans le message de news:

Jacky a écrit le 13/10/2011 à 14h41 :
Bonjour,

Le PC a t'il était rebooter depuis apparition de ce
problème
?

--
Salutations
JJ


"simulacre25" a
écrit dans le message de news:

Bonjour,

Je fais face à un problème qui concerne la disparition
d'un
msgbox avant même
que l'utilisateur ait cliqué sur OK.

La procédure est liée à un bouton
positionné
sur
un userform modal. La macro
s'exécute correctement, affiche le msgbox, le fait
disparaître
et
continue
jusqu'au bout. Cela n'arrive pas dans d'autres procédures de mon
application
avec les mêmes caratéristiques (userform modal).

Je place ci-dessous le code concerné :
--------------------------------------------------------------
Dim COPIE As Integer

Application.ScreenUpdating = False
Application.DisplayAlerts = False

Sheets("Détails des coûts").Select
Range("O2").Select
ActiveCell.FormulaR1C1 = "=COUNTA(C[-11])"
Selection.Font.ColorIndex = 2

COPIE = Range("O2").Value

Range("M1").Select
ActiveCell.FormulaR1C1 = "Processus"
Range("M2").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-8],Processus,3,FALSE)"
Range("M2").Select
Selection.AutoFill Destination:=Range("M2:M" & COPIE
&
""),
Type:=xlFillDefault

Message = MsgBox("Les processus ont été
ajoutés
à la feuille Détails des
coûts", vbOKOnly, "Information")

Sheets("Accueil").Select
Range("H20").Select

Application.ScreenUpdating = True
Application.DisplayAlerts = True
------------------------------------------------------------
J'ai tenté de déplacer les application.screen... et
dislay
avant
l'affichage du
message, de déclarer la msgbox en variable... mais rien n'y
fait.

Merci de votre aide.

Bonne journée.












PC rebooté.

Le formulaire sur lequel se trouve le bouton lançant la
procédure est un
formulaire modal qui est lancé à partir d'un autre
formulaire
modal via une
procédure liée à une image :

Private Sub Image_Ajout_Suppr_Click()

Accueil.Hide
Ajout_Suppression.Show
'DoEvents

End Sub

J'ai mis en commentaire le Doevents mais cela ne change rien.

Faut-il décharger complètement le premier formulaire par
unload
plutôt qu'un
hide ?










Je teste cela demain au boulot et vous tiens au courant.

Merci.

PS : Par contre, pas le choix pour écrire avant ou après la
citation. Je n'ai qu'un cadre de réponse disponible.




Bonjour,

la procédure décrite est celle que j'applique. J'ai
essayé un Unload.Userform1
pour le recharger à partir du bouton de fermeture du userform2 une
fois
la
procédure effectuée, mais cela ne marche pas.

J'ai plusieurs boutons sur le formulaire concerné et l'affichage des
msgbox
dysfonctionne uniquement dans les procédures à partir de ce
formulaire. Sur mes
autres formulaires, aucun souci d'affichage. Les msgbox apparaissent et
restent
à l'écran jusqu'au clic de l'utilisateur.

J'ai regardé les propriétés de tous mes formulaires
afin
de détecter une
différence, mais il sont tous créés avec les
paramètres similaires.

Le problème semble être lié au formulaire et non aux
procédures. Je l'ai aussi
exporté/supprimé et réimporté ensuite.






L'application épurée avec le formulaire qui pose problème
(le deuxième).

http://www.cijoint.fr/cjlink.php?file=cj201110/cijIccDC6d.xls

Même là je ne vois pas...




Merci pour tout quand même. Je vais regarder la configuration de mon poste ou
l'installation d'Excel.

Bon week-end.
Avatar
MichD
Ceci devrait être mieux !

Désolé pour le délai, mais il m'était impossible d'envoyer des messages sur ce forum!

'------------------------------------------
Dim COPIE As Integer

Application.EnableEvents = False '<<<<===== With Worksheets("Détails des coûts")
With .Range("O2")
.FormulaR1C1 = "=COUNTA(D:D)"
.Font.ColorIndex = 2
COPIE = .Value
End With

.Range("M1").Value = "Processus"

With .Range("M2:M" & COPIE)
.FormulaR1C1 = "=VLOOKUP(RC[-8],Processus,3,FALSE)"
End With
End With

Message = MsgBox("Les processus ont été ajoutés " & _
"à la feuille Détails des coûts", vbOKOnly, "Information")

Sheets("Accueil").Select
Range("H20").Select
Application.EnableEvents = True '<<<<===== '------------------------------------------



MichD
------------------------------------------
"simulacre25" a écrit dans le message de groupe de discussion :

simulacre25 a écrit le 13/10/2011 à 14h02 :
MichD a écrit le 13/10/2011 à 12h06 :
Bonjour,


Essaie avec ce code :

'---------------------------------------------------
Dim COPIE As Integer

With Worksheets("Détails des coûts")
With .Range("O2")
.FormulaR1C1 = "=COUNTA(C[-11])"
.Font.ColorIndex = 2
COPIE = Range("O2").Value
End With

.Range("M1").Value = "Processus"

With .Range("M2:M" & COPIE)
.FormulaR1C1 = "=VLOOKUP(RC[-8],Processus,3,FALSE)"
End With
End With

Message = MsgBox("Les processus ont été ajoutés
" & _
"à la feuille Détails des coûts", vbOKOnly,
"Information")

Sheets("Accueil").Select
Range("H20").Select
'---------------------------------------------------


MichD
------------------------------------------
"simulacre25" a écrit dans le message de groupe de
discussion
:

Bonjour,

Je fais face à un problème qui concerne la disparition d'un
msgbox avant même
que l'utilisateur ait cliqué sur OK.

La procédure est liée à un bouton positionné sur
un
userform modal. La macro
s'exécute correctement, affiche le msgbox, le fait disparaître et
continue
jusqu'au bout. Cela n'arrive pas dans d'autres procédures de mon
application
avec les mêmes caratéristiques (userform modal).

Je place ci-dessous le code concerné :
--------------------------------------------------------------
Dim COPIE As Integer

Application.ScreenUpdating = False
Application.DisplayAlerts = False

Sheets("Détails des coûts").Select
Range("O2").Select
ActiveCell.FormulaR1C1 = "=COUNTA(C[-11])"
Selection.Font.ColorIndex = 2

COPIE = Range("O2").Value

Range("M1").Select
ActiveCell.FormulaR1C1 = "Processus"
Range("M2").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-8],Processus,3,FALSE)"
Range("M2").Select
Selection.AutoFill Destination:=Range("M2:M" & COPIE &
""),
Type:=xlFillDefault

Message = MsgBox("Les processus ont été ajoutés
à la feuille Détails des
coûts", vbOKOnly, "Information")

Sheets("Accueil").Select
Range("H20").Select

Application.ScreenUpdating = True
Application.DisplayAlerts = True
------------------------------------------------------------
J'ai tenté de déplacer les application.screen... et dislay avant
l'affichage du
message, de déclarer la msgbox en variable... mais rien n'y fait.

Merci de votre aide.

Bonne journée.



Merci.

Je réponds à tous les deux.

Effectivement, un msgbox placé en début de procédure et/ou
au milieu donne la même chose : Affichage rapide puis disparition.

Merci à MichD pour la simplification du code qui bloque bizarrement sur
le .range("M2:M" & COPIE) - Erreur 1004 lorsque je la lance par
F5 et une fois sur deux par F8. La variable ne prenant pas
systématiquement la valeur de la cellule O2 alors que la formule nbval
se met bien en place.

Que vérifier dès lors ?

Merci.


Pas d'événements déclenchés dans la feuille (j'ai quand même ajouté le code)
mais la procédure reste en cours d'exécution qu'elle soit lancée directement du
formulaire ou de VB.
Avatar
Maude Este
Bonsour®

"Jacky" a écrit
Il est inutile de charger une variable pour l'affichage du Msgbox

Message = MsgBox("Les processus ont été ajoutés à la phase 3 - Détails des
coûts", vbOKOnly, "Information")
Ceci est suffisant
MsgBox "Les processus ont été ajoutés à la phase 3 - Détails des coûts",
vbOKOnly, "Information"

;o))))
c'est vrai que dans le cas présent cela n'a aucune importance...
cependant la réponse peut être VbOK (Entrée ou click sur OK) ou bien VbAnnuler
(click sur la croix)

Il est alors sage de prendre habitude de tester la réponse
selon le cas des boutons présents les réponses peuvent etre :
vbOK 1 OK
vbCancel 2 Annuler
vbAbort 3 Abandonner
vbRetry 4 Réessayer
vbIgnore 5 Ignorer
vbYes 6 Oui
vbNo 7 Non
et permettra d'orienter spécifiquement les traitements suivants ...

Cet exemple utilise la fonction MsgBox pour afficher un message d'erreur grave
dans une boîte de dialogue pourvue des boutons Yes et No. Le bouton No est
spécifié comme réponse par défaut. La valeur renvoyée par la fonction MsgBox
dépend du bouton sélectionné par l'utilisateur. Dans cet exemple, DEMO.HLP est
un fichier d'aide contenant une section dont le numéro de contexte d'aide est
1000.

Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "Souhaitez-vous continuer?" ' --------------------Définit le message.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' --Définit les boutons.
Title = "Démonstration de MsgBox " ' ------------------Définit le titre.
Help = "DEMO.HLP" ' ---------------------------------------Définit le fichier
d'aide.
Ctxt = 1000 ' --------------------------------------------------Définit le
contexte de ' la rubrique.
' ----------------------------Affiche le message.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' -------------------------------L'utilisateur a choisi
Oui.
MyString = "Oui" ' ------------------------------------Effectue une
action.
Call ActionA
Else ' -----------------------------------------------------------L'utilisateur
a choisi Non.
MyString = "Non" ' ------------------------------------Effectue une
autre action.
Call ActionB
End If
Avatar
Jacky
Bonsoir Gilbert

c'est vrai que dans le cas présent cela n'a aucune
importance...cependant




C'est bien dans cet optique et dans le cas qui à été présenté que j'ai dit/écrit cela.

On peut aussi confirmer un MsgBox sans utiliser de variable
par exemple
'------------
If MsgBox("Confirmer xxxxxxxx ", 292, "Le Titre ") = 7 Then........
'-------------
As tu déjà eu le cas ou un MsgBox se ferme sans avoir à confirmer par OK ??

--
Salutations
JJ


"Maude Este" a écrit dans le message de news: j79r6a$s17$
Bonsour®

"Jacky" a écrit
Il est inutile de charger une variable pour l'affichage du Msgbox

Message = MsgBox("Les processus ont été ajoutés à la phase 3 - Détails des coûts", vbOKOnly, "Information")
Ceci est suffisant
MsgBox "Les processus ont été ajoutés à la phase 3 - Détails des coûts", vbOKOnly, "Information"

;o))))
c'est vrai que dans le cas présent cela n'a aucune importance...
cependant la réponse peut être VbOK (Entrée ou click sur OK) ou bien VbAnnuler (click sur la croix)

Il est alors sage de prendre habitude de tester la réponse
selon le cas des boutons présents les réponses peuvent etre :
vbOK 1 OK
vbCancel 2 Annuler
vbAbort 3 Abandonner
vbRetry 4 Réessayer
vbIgnore 5 Ignorer
vbYes 6 Oui
vbNo 7 Non
et permettra d'orienter spécifiquement les traitements suivants ...

Cet exemple utilise la fonction MsgBox pour afficher un message d'erreur grave dans une boîte de dialogue
pourvue des boutons Yes et No. Le bouton No est spécifié comme réponse par défaut. La valeur renvoyée par la
fonction MsgBox dépend du bouton sélectionné par l'utilisateur. Dans cet exemple, DEMO.HLP est un fichier
d'aide contenant une section dont le numéro de contexte d'aide est 1000.

Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "Souhaitez-vous continuer?" ' --------------------Définit le message.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' --Définit les boutons.
Title = "Démonstration de MsgBox " ' ------------------Définit le titre.
Help = "DEMO.HLP" ' ---------------------------------------Définit le fichier d'aide.
Ctxt = 1000 ' --------------------------------------------------Définit le contexte de ' la rubrique.
' ----------------------------Affiche le message.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' -------------------------------L'utilisateur a choisi Oui.
MyString = "Oui" ' ------------------------------------Effectue une action.
Call ActionA
Else ' -----------------------------------------------------------L'utilisateur a choisi Non.
MyString = "Non" ' ------------------------------------Effectue une autre action.
Call ActionB
End If
Avatar
Jacquouille
Bonsoir
Merci de répondre en HAUT du message, svp.
La roulette de ma souris vous remercie et vous souhaite une bonne soirée.


Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"simulacre25" a écrit dans le message de groupe de discussion :


Jacky a écrit le 14/10/2011 à 14h03 :
Je n'ai aucune difficulté en ce qui concerne l'affichage du message soit
en ajoutant ou en supprimant ce que
tu appelles processus et a devoir le confirmer par ok.

En fait, perso. je n'ai jamais eu une "NON OBLIGATION" de
confirmation par ok de MsgBox même avec
"Application.EnableEvents" à false
Le mystère demeure...

--
Salutations
JJ


"simulacre25" a
écrit dans le message de news:

Jacky a écrit le 14/10/2011 à 10h41 :
Re...
Il faudrait un brouillon du classeur avec le formulaire en question et
les
procédures qui le concernent sur
http://www.cijoint.fr

--
Salutations
JJ


"simulacre25" a
écrit dans le message de news:

simulacre25 a écrit le 13/10/2011 à 17h30 :
Jacky a écrit le 13/10/2011 à 17h00 :
Re..
Je n'arrive pas à reproduire ton erreur
Teste ceci..
http://www.cijoint.fr/cjlink.php?file=cj201110/cijQMPrvmy.xls


Ps:La roulette de ma souris et moi remercions les questionneurs de
répondre au-dessus des messages (c'est la
coutume sur ce forum)

--
Salutations
JJ


"simulacre25" a
écrit dans le message de news:

Jacky a écrit le 13/10/2011 à 14h41 :
Bonjour,

Le PC a t'il était rebooter depuis apparition de ce
problème
?

--
Salutations
JJ


"simulacre25" a
écrit dans le message de news:

Bonjour,

Je fais face à un problème qui concerne la disparition
d'un
msgbox avant même
que l'utilisateur ait cliqué sur OK.

La procédure est liée à un bouton
positionné
sur
un userform modal. La macro
s'exécute correctement, affiche le msgbox, le fait
disparaître
et
continue
jusqu'au bout. Cela n'arrive pas dans d'autres procédures de mon
application
avec les mêmes caratéristiques (userform modal).

Je place ci-dessous le code concerné :
--------------------------------------------------------------
Dim COPIE As Integer

Application.ScreenUpdating = False
Application.DisplayAlerts = False

Sheets("Détails des coûts").Select
Range("O2").Select
ActiveCell.FormulaR1C1 = "=COUNTA(C[-11])"
Selection.Font.ColorIndex = 2

COPIE = Range("O2").Value

Range("M1").Select
ActiveCell.FormulaR1C1 = "Processus"
Range("M2").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-8],Processus,3,FALSE)"
Range("M2").Select
Selection.AutoFill Destination:=Range("M2:M" & COPIE
&
""),
Type:=xlFillDefault

Message = MsgBox("Les processus ont été
ajoutés
à la feuille Détails des
coûts", vbOKOnly, "Information")

Sheets("Accueil").Select
Range("H20").Select

Application.ScreenUpdating = True
Application.DisplayAlerts = True
------------------------------------------------------------
J'ai tenté de déplacer les application.screen... et
dislay
avant
l'affichage du
message, de déclarer la msgbox en variable... mais rien n'y
fait.

Merci de votre aide.

Bonne journée.












PC rebooté.

Le formulaire sur lequel se trouve le bouton lançant la
procédure est un
formulaire modal qui est lancé à partir d'un autre
formulaire
modal via une
procédure liée à une image :

Private Sub Image_Ajout_Suppr_Click()

Accueil.Hide
Ajout_Suppression.Show
'DoEvents

End Sub

J'ai mis en commentaire le Doevents mais cela ne change rien.

Faut-il décharger complètement le premier formulaire par
unload
plutôt qu'un
hide ?










Je teste cela demain au boulot et vous tiens au courant.

Merci.

PS : Par contre, pas le choix pour écrire avant ou après la
citation. Je n'ai qu'un cadre de réponse disponible.




Bonjour,

la procédure décrite est celle que j'applique. J'ai
essayé un Unload.Userform1
pour le recharger à partir du bouton de fermeture du userform2 une
fois
la
procédure effectuée, mais cela ne marche pas.

J'ai plusieurs boutons sur le formulaire concerné et l'affichage des
msgbox
dysfonctionne uniquement dans les procédures à partir de ce
formulaire. Sur mes
autres formulaires, aucun souci d'affichage. Les msgbox apparaissent et
restent
à l'écran jusqu'au clic de l'utilisateur.

J'ai regardé les propriétés de tous mes formulaires
afin
de détecter une
différence, mais il sont tous créés avec les
paramètres similaires.

Le problème semble être lié au formulaire et non aux
procédures. Je l'ai aussi
exporté/supprimé et réimporté ensuite.






L'application épurée avec le formulaire qui pose problème
(le deuxième).

http://www.cijoint.fr/cjlink.php?file=cj201110/cijIccDC6d.xls

Même là je ne vois pas...




Merci pour tout quand même. Je vais regarder la configuration de mon poste
ou
l'installation d'Excel.

Bon week-end.
1 2 3