Message d'attente lors de l'exécution d'un code VBA

Bonjour

J'ai un userform que j'utilise pour enregistrer des noms avec des données dans deux feuilles d'un classeur et quelquefois je dois modifier ces données.

La macro étant un peu longue, je souhaite mettre un message " Ajout en cours ou modification en cours"

J'aimerais donc savoir quel code, et où je dois l'intégrer dans ma macro

Private Sub Btw Ajouter_Click()

puis mon code

End Sub

Merci

cdt

No

Bjr,

le mieux est de mettre une barre de progression

Bjr

Oui ça serait une solution mais ça à l'air très compliqué.

J'arrive à faire l'user forme avec la barre de progression mais ensuite pour l'intégrer et qu'elle fonctionne avec l'ajout ou la modification des données c'est plus délicat

Raison pour laquelle je voulais savoir s'il était possible d'intégrer un message (Veuillez patienter !) des que j'appuie sur le bouton ajout et qui s' efface en fin de macro ( idem pour modification)....

Cdt

No

Autre solution, mais il faut avoir de bons yeux pour voir la barre d'état en bas gauche ....

Dim EtatStatusBar As Boolean
EtatStatusBar = Application.DisplayStatusBar
Application.DisplayStatusBar = True
Application.StatusBar = "Veuillez patienter ..."
'----------------------
' ton code
    Application.Wait (Now + TimeValue("0:00:10"))
' fin code
'----------------------
Application.StatusBar = False
Application.DisplayStatusBar = EtatStatusBar
371message-attente.xlsm (14.47 Ko)

Regarde aussi ici

https://support.microsoft.com/fr-fr/help/462855


ou ici (sujet déjà traité

https://forum.excel-pratique.com/excel/message-fixe-durant-le-deroulement-d-une-macro-t34815.html


Enfin, si tu as déjà un UserForm, ajoute un texte en fin de UserForm que tu affiches pendant la macro et rend invisible en fin de traitement !

Bonjour

Merci pour ce nouveau message.

Je viens de l'essayer, en effet il faut avoir de bons yeux. Dommage que l'on ne puisse pas mettre ce même message au milieu de l'écran car c'est exactement ça que je voudrais.....

Je vais essayer de ma lancer sur la barre de progression !!!

Dans mon User form , après Private Sub BtnAjouter_Click()

je mets donc

timedebut =Now()

Application.ScreenUpdating=False

BarreProgression.Schow vbModeless

MON CODE

BarreProgression.Caption ="test"

For compteur =0 To 100 Step 5

BarreDeProgression compteur/100

Application. wait (Now + TimeValue ("0:00:01")

Next

????? ( il ya une ligne verte )

Unload BarreProgression

MsgBox ("terminé")

End Sub

Et je fais également un module pour la barre de progression ??

Merci

Cdt

No

Il faut quand même que ton compteur reflète l'avancement du code, en te basant sur un nombre de ligne à traiter par ex ....

Sinon, tu remplace la barre de progression par ton message et picetou

Le premier essai n'est pas très concluant

La barre ne s'affiche pas sans que je sache pourquoi

Je vois mon premier userform et le déroulement de la macro dans mes deux feuilles

Ce que j'ai fait

1) J'ai créé un module (nommé ModBarreProgression) où j'ai inscrit le code : Sub barreDe Progression....etc etc

2) J'ai créé un second userForm (nommé BarreProgression)

3) Dans mon Premier Userform ( celui qui me sert pour ajouter les noms) après : Private Sur btn Ajouter j'ai mis le code qui commence par Time début etc etc

Par contre ' à costumer ....que cela signifie t il exactement ?

et après Next , il y a aussi une ligne verte sans rien ??

Si par hasard tu remarques un couac ......

Je continue d'essayer de trouver

Bjr

Je n'avais pas vu cette phrase

"Enfin, si tu as déjà un UserForm, ajoute un texte en fin de UserForm que tu affiches pendant la macro et rend invisible en fin de traitement !"

Je crois qu'en effet ça sera plus imple

Mais comment dois je faire pour ajouter un texte en fin d'userform, qu'il démarre avec l'ajout ou la modification de données et surtout qu'il devienne invisible en fin de macro ?

Pas facile tout ça

No

Voici un petit exemple ...

Bonjour

Merci pour le petit exemple...c'est vraiment cela que j'aimerais mettre en place

Quelques questions car je galère un peu depuis ce matin.

Je n'arrive pas à comprendre pourquoi l'userform1 se nomme "liste des références" dans l'exemple.

Le label (Merci de bien vouloir patienter) c'est bien sur mon userForm que j'ai déjà créé que je dois l'intégrer ? ( au milieu de mes combobox, commande bouton et label )

et encore merci ...

No

norberlingo a écrit :

Je n'arrive pas à comprendre pourquoi l'userform1 se nomme "liste des références" dans l'exemple

C'est parce que je suis parti d'un autre projet et que je n'ai pas tout effacé !
norberlingo a écrit :

Le label (Merci de bien vouloir patienter) c'est bien sur mon userForm que j'ai déjà créé que je dois l'intégrer ? ( au milieu de mes combobox, commande bouton et label )

OUI

Un grand merci à nouveau

J'y suis arrivé et ça à l'air de fonctionner...super

J'ai cependant supprimer la ligne : Userform1.Hide .( pas important j'espère...)

En effet , lorsque tous les champs du formulaire n''étaient pas rempli j'avais un message d'erreur et lorsque je cliquais sur OK , le formulaire se fermait.....au lieu de rester ouvert pour que je puisse remplir les cases vides.....

Une dernière question si je peux me permettre

Lorsque j'ajoute un nom (avec mon formulaire) la macro saisit une feuille, rentre nom, prenom, etc etc , le classe dans une colonne, idem sur une deuxième feuille.......et tout le déroulement de cette macro se voit à l'écran.

Comment faire pour cacher ce déroulement et que seul reste visible mon formulaire avec / merci de patienter ??

Merci encore et bonne aprem

No

Bjr

Je crois avoir trouvé...

J'ai ajouté : Application.screenUpdating = false et ça me bloque la feuille

En tous les cas merci pour le temps consacré, les conseils et les réponses.

Cdt

No

Bravo

norberlingo a écrit :

En tous les cas merci pour le temps consacré, les conseils et les réponses.

No

Sauf la dernière que tu as trouvée par toi-même !

J'étais en train de remonter mon véhicule à NO (=Noirmoutier)

Rechercher des sujets similaires à "message attente lors execution code vba"