Select avan MsgBox

Résolu
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 - 18 déc. 2007 à 19:50
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 19 déc. 2007 à 23:28
Bonjour à Tous,


J'ai un petit souci car la sélection d'une cellule ne veut pas se faire avant l'appel d'un MsgBox. Elle ne se fait qu'après la disparition du MsgBox.
D'où ma question : comment forcer la sélection avant l'appel du MsgBox ?


Au départ la sélection est sur Cells(ligne, 2) et je voudrais qu'elle puisse se mettre en  Cells(ligne, 4) si la fonction retourne 0 avant l'apparition du MsgBox. Même avec un DoEvents après le Select ça ne marche pas !



If fnSOMMES_P(ligne) = 0 Then
   Cells(ligne, 4).Select
   texte = "  LE  MODE  DE  PAIEMENT  N'EST  PAS  INDIQUÉ  "
   MsgBox texte, vbCritical + vbOKOnly, "  ATTENTION..."
   fnOUBLI = True:  Exit Function
End If


Merci de votre aide et bonne soirée,
Amicalement de Cheyenne

6 réponses

cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
18 déc. 2007 à 23:25
Re,

D'abord merci pour vos réponses.

bigfish_le_vrai : effectivement j'utilise bien Application.ScreenUpdating = False, mais pas dans la procédure où se situe le problème. Par contre il est utilisé dans d'autres procédures. Normalement sous Excel 2000, le False s'annule en quittant la procédure où il se trouve.
Ce qui est icibizarre c'est que je pars d'une procédure où il y a bien le False, mais il est situé après l'appel de la fonction :

Sub Toto(y as integer)
   if fnOUBLI(y)=0 then Exit Sub
   Application.ScreenUpdating = False
   ---
   ---
End Sub

If fnSOMMES_P(ligne) = 0 Then
    Application.ScreenUpdating = True  
   Cells(ligne, 4).Select
   texte = "  LE  MODE  DE  PAIEMENT  N'EST  PAS  INDIQUÉ  "
   MsgBox texte, vbCritical + vbOKOnly, "  ATTENTION..."
   fnOUBLI = True:  Exit Function
End If

J'ai mis Application.ScreenUpdating = True juste avant l'appel de la sélection et c'est OK, puis il se remet à False après le retour de la fonction dans la procédure appellante.

jack : non, je l'ai indiqué dans mon post, le Doevents n'agit pas

Exploreur : je connais cette API, merci quand même, mais je suis en VBA et les feuilles n'ont pas de hwnd et code n'est pas destiné à une UserForm mais bien à une feuille.

Merci encore et bonne continuation à vous.
Cheyenne
3
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
18 déc. 2007 à 20:05
Salut,

je viens d'essayer et j'ai pas ce probleme !?!
la celule est bien selectionée avant l'apparition du MsgBox.

n'utiliserais-tu pas : Application.ScreenUpdating = False     quelque pardans ton code ?

A+
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
18 déc. 2007 à 20:06
Salut
Ton code semble correct.
Les MsgBox sont de type "system" c'est à dire qu'elle bloque tous les programmes de l'application appelante.
Je pense qu'il devrait suffire d'ajouter un DoEvents avant la MsgBox, ou du moins, après le Select afin que le PC ait le temps de rafraichir l'affichage avant ce blocage.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
18 déc. 2007 à 21:26
Bonsoir à tous,

Ou voir cette astuce de Econs....

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0

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

Posez votre question
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
19 déc. 2007 à 00:24
... en fait cela ne fait pas tres longtemps que je repond au questions posées sur ce site. J'en ais quand meme poster quelques une et tu es le/la premier(e) a accepter ma reponse... snif...


Merci a toi aussi.


Philippe
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
19 déc. 2007 à 23:28
Ne t'en fais pas Bigfish,
une grande partie des gens ne sélectionne pas le bouton "Accepté", même s'ils utilisent tes réponses... Lâche pas...

MPi²
0
Rejoignez-nous