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

affichage d'un message d'attente

7 réponses
Avatar
JP
Bonjour
j'ai une macro qui dure un certaint temp et je voudrai afficher un message
d'attente avec un texte sur plusieur lignes
merci d'avance

7 réponses

Avatar
Emcy
bonjour,

il faut créer un Userform que tu ferme avec la procedure unload


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

Bonjour
j'ai une macro qui dure un certaint temp et je voudrai afficher un message
d'attente avec un texte sur plusieur lignes
merci d'avance


Avatar
Michel Gaboly
Bonjour,

Tu insères une feuille dans le classeur de la macro.

Ensuite, tu fusionnes un groupe de cellules au milieu de l'écran, et tu formates la cellule obtenue en gras avec une
police d'assez grande taille. Dans Alignement, tu peux aussi (mais c'est presque du luxe) choisir Centré pour "vertical"


Puis dans Préférences (Mac) ou Options (Win), tu supprimes l'af fichage des numéros de lignes et de colonnes, ainsi que
le quadrillage.

Au début du traitement, tu renseignes cette cellule, tu l'amène s au premier plan, et tu supprimes la mise à jour de
l'affichage. Quand le traitement se termine, tu fais passer au premier pl an, le classeur et la feuille qui t'intéressent .

En ayant nommé la nouvelle feuille "Fond", et la cellule fusionné e "Info", cela donne


Sub Toto
With ThisWorkbook.Sheets("Fond")
.Range("Info") = "Message à adapter"
.Activate
End With
Application.ScreenUpdating = False
' Ton traitement ici
Workbooks("AAdapter").Activate
Sheets("AAdapter").Activate
Ed Sub



Dans VBA, les feuilles de classeur dans la liste des "Microsoft Excel obj ets" d'un projet, apparaissent avec 2 noms à la
suite, le second entre parenthèses.

Le second, est le nom visible au niveau de l'onglet. Le premier (ou CodeN ame) est le nom de la feuille dans
l'environnement VBA. Au départ il est identique au nom de l'onglet, mais tu peux le modifier dans la fenêtre propriétés.

En renommant "FFond" ce premier nom pour la feuille servant à affich er le message, tu peux l'utiliser directement dans
ton code, et celui-ci ne cessera pas de fonctionner si tu modifies le nom au niveau de l'onglet. Cela parmet d'avooir un
code robuste et + concis :

Sub Toto
With FFond
.Range("Info") = "Message à adapter"
.Activate
End With
Application.ScreenUpdating = False
' Ton traitement ici
Workbooks("AAdapter").Activate
Sheets("AAdapter").Activate
Ed Sub



Bonjour
j'ai une macro qui dure un certaint temp et je voudrai afficher un mess age
d'attente avec un texte sur plusieur lignes
merci d'avance



--
Cordialement,

Michel Gaboly
www.gaboly.com

Avatar
JP
Merci
Super
une autre question pendant le deroulement serait il possible de faire
apparaitre sur la feuille une image animée du tip .jif
Avatar
Oliv'
bonjour,

il faut créer un Userform que tu ferme avec la procedure unload

Petite précision il faut définir cet userform en vbModeless sinon ton code

après ne s'execute pas
sub toto ()
Load UserForm1
UserForm1.caption="veuillez attendre !"
UserForm1.Show vbModeless
'ton code
unload UserForm1
end sub


--
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
les sites références:
Excel :http://www.excelabo.net http://xcell05.free.fr/
http://dj.joss.free.fr/
http://frederic.sigonneau.free.fr/ http://www.excel-vba-francais.com/
Word : http://faqword.free.fr/
Outlook :http://faq.outlook.free.fr/
Sql :http://sqlpro.developpez.com/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


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

Bonjour
j'ai une macro qui dure un certaint temp et je voudrai afficher un
message d'attente avec un texte sur plusieur lignes
merci d'avance




Avatar
Michel Gaboly
Re,

Une image oui ; il suffit de la copier sur la feuille affichant le messag e.

Animée, non, puisque que par hypothèse on est en ScreenUpdating = False.


Il faudrait, mais je n'ai pas le temps de tester rester en ScreenUpdating = True et se débrouiller pour qu'aucun élément
ne vienne masquer la feuille avec le message.

2 Options pour cela : masquer au début du traitment les classeurs ma nipulés (menu fenêtre) ou les déplacer afin qu'ils
ne soient + visibles à l'écran en les faisant disparaître au delà du coin inférieur droit. J'ai fait cela autrefois avec
l'ancien langage macro (ce qu'on appelle maintenant les macros Excel 4).

C'était alors très simple :

þNETRE.DEPLACEMENT(LIRE.ENV(13);LIRE.ENV(14))

ou en anglais :

=WINDOW.MOVE(GET.WORKSPACE(13),GET.WORKSPACE(14))

LIRE.ENV(13) renvoie une valeur liée à la résolution horiz ontale de l'écran (sur Mac, peut-être de la fenêtre Excel sous
Win) et LIRE.ENV(14) une valeur liée à la résolution verti cale.

Les 2 valeurs prennent en compte l'espace occupé par les menus et le s barres d'outils. Sur mon écran par exemple, qui a
une résolution de 1680 par 1050, j'obtiens 1631 pour LIRE.ENV(13) et 950 pour LIRE.ENV(14).

L'intérêt est que la macro s'adapte à la résolution d e l'écran.

Tu peux essayer d'appeler cette instruction (l version en anglais) à partir de VBA ; pas le temps de tester tout de
suite en ce qui me concerne.


Merci
Super
une autre question pendant le deroulement serait il possible de faire
apparaitre sur la feuille une image animée du tip .jif





--
Cordialement,

Michel Gaboly
www.gaboly.com

Avatar
Michel Gaboly
Complément, j'ai pris le temps ;-))

Sub CacheFenêtre()
ExecuteExcel4Macro ("WINDOW.MOVE(GET.WORKSPACE(13), GET.WORKSPACE(14))")
End Sub

fait disparaître (en fait presque) une fenêtre dans le coin inf érieur gauche de l'écran


Sub RameneFenêtre()
ExecuteExcel4Macro ("WINDOW.MOVE(0, 0)")
End Sub

la ramène en haut à droite.


NB - Testé uniquement sur Mac (Excel 2004), mais devrait aussi march er avec une verion Win.


Re,

Une image oui ; il suffit de la copier sur la feuille affichant le mess age.

Animée, non, puisque que par hypothèse on est en ScreenUpdati ng = False.


Il faudrait, mais je n'ai pas le temps de tester rester en
ScreenUpdating = True et se débrouiller pour qu'aucun élà ©ment ne vienne
masquer la feuille avec le message.

2 Options pour cela : masquer au début du traitment les classeurs
manipulés (menu fenêtre) ou les déplacer afin qu'ils ne soient +
visibles à l'écran en les faisant disparaître au delà du coin inférieur
droit. J'ai fait cela autrefois avec l'ancien langage macro (ce qu'on
appelle maintenant les macros Excel 4).

C'était alors très simple :

þNETRE.DEPLACEMENT(LIRE.ENV(13);LIRE.ENV(14))

ou en anglais :

=WINDOW.MOVE(GET.WORKSPACE(13),GET.WORKSPACE(14))

LIRE.ENV(13) renvoie une valeur liée à la résolution hor izontale de
l'écran (sur Mac, peut-être de la fenêtre Excel sous Win ) et
LIRE.ENV(14) une valeur liée à la résolution verticale.

Les 2 valeurs prennent en compte l'espace occupé par les menus et les
barres d'outils. Sur mon écran par exemple, qui a une résolut ion de 1680
par 1050, j'obtiens 1631 pour LIRE.ENV(13) et 950 pour LIRE.ENV(14).

L'intérêt est que la macro s'adapte à la résolution de l'écran.

Tu peux essayer d'appeler cette instruction (l version en anglais) à
partir de VBA ; pas le temps de tester tout de suite en ce qui me conce rne.



Merci
Super
une autre question pendant le deroulement serait il possible de faire
apparaitre sur la feuille une image animée du tip .jif








--
Cordialement,

Michel Gaboly
www.gaboly.com


Avatar
JP
Merci
Je vais tester et vous tiendrez au courant