msgbox disparait tout seul

Le
simulacre25 Hors ligne
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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gloops
Le #23862091
simulacre25 a écrit, le 13/10/2011 10:29 :
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 mo dal. La macro
s'exécute correctement, affiche le msgbox, le fait disparaître et c ontinue
jusqu'au bout. Cela n'arrive pas dans d'autres procédures de mon appl ication
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.



Bonjour,

Est-ce qu'il ne pourrait pas traîner quelque chose dans le tampon clavi er ?

Peut-être qu'un petit coup d'œil à la procédure appelante s'impos e.

Et aussi une recherche, dans toute l'application, de "SendKeys". Est-ce
qu'il y a des appels système ? Chargement d'un autre programme ?

Ah oui, le temps de comprendre ce qui se passe, mettre en commentaire le
ScreenUpdating = false, ça peut aider à avoir des indices. Demander de
tout masquer quand on manque d'infos, ce n'est pas forcément un bon pla n.

Essayer avec un point d'arrêt juste avant le MsgBox, aussi, peut aider à
confirmer ou non une hypothèse. Si il y a quelque chose dans le tampon
clavier, ça va se vider pendant l'arrêt, et logiquement quand on appu ie
sur F8 le message doit rester affiché.

Si ça se confirme, en mettant un autre MsgBox au début de la procéd ure,
et un au chargement de la boîte, on peut voir ce qui se passe avec eux,
et mieux situer quand se pose le problème.
MichD
Le #23862211
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.
MichD
Le #23862661
La procédure insère dans le fichier certaines formules dans des cellules de la feuille Worksheets("Détails des coûts").

As-tu dans le code module de cette feuille, des procédures événementielles de mise en place ? Si une de ces
dernières est déclenchée, elle entre peut-être en interaction avec le formulaire et le message affiché.

Dans la procédure de ton formulaire, tu dois alors ajouter ces 2 lignes de code pour inhiber les procédures événementielles :

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

Application.EnableEvents = False '<<<<===== 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
Application.EnableEvents = True '<<<<=====

MichD
------------------------------------------
simulacre25 Hors ligne
Le #23862681
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.
simulacre25 Hors ligne
Le #23862751
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.
simulacre25 Hors ligne
Le #23862761
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.


J'ai un userform queryclose sur le formulaire où se trouve le bouton toutefois.
Jacky
Le #23862981
Bonjour,

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

--
Salutations
JJ


"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.
simulacre25 Hors ligne
Le #23863091
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 ?
Jacky
Le #23863471
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"
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 ?
simulacre25 Hors ligne
Le #23863521
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.
Publicité
Poster une réponse
Anonyme