• Initiateur de la discussion Initiateur de la discussion baldron
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

baldron

XLDnaute Nouveau
Bonjours a tous,

voila j'ai une macro qui est assez longue qd elle fonctionne, du coup je me suis dit que ca ferait bien si je pouvais afficher un petit message pendant qu'elle tourne pour dire "Attendez svp..." Comment je fait ca?

Merci.
 
Re : Affichage message.

Salut,

si tu veux vraiment un message visible, le plus simple est de lancer ton code à partir d'un userForm et afficher l'avancement dans une zone de texte
ou
tu peux effectivement afficher un userform non modal (UserForm1.Show vbModeless) et afficher dedans un message d'avancement

Bon courage

GIBI
 
Re : Affichage message.

Oula merci, ca m'a l'air compliquer. En gros ca donne quoi avec le message "Esperem por favor..."

Imaginons que le debut de la macro soit:



Sub ver()

Sheets("verdia").Select

End sub


Est ce que tu pourrais me montrer comment tu applique cela stp?

Merci
 
Re : Affichage message.

bonjour baldron

voila j'ai une macro qui est assez longue qd elle fonctionne..............

et pourquoi est elle longue a ce point !!?
a tout hazar , ne serait il pas judicieux de supprimer les calculs auto ??
ca peut dans certain cas (je ne connais pas le tient)accelerer considerablement une macro , a voir ...
E et F
 
Re : Affichage message.

salut,

tu peux afficher le suivi dans la fenêtre

Private Sub cmdChargement_Click()
Dim Lig As Long

usfChargement.Show vbModeless
For Lig = 1 To 1000
Range("A2").Value = Lig

usfChargement.Label1 = " en cours " & Lig

DoEvents
Next Lig

Unload usfChargement

MsgBox "Traitement terminé..."
End Sub


>remarque : le Doevents ne parait pas nécessaire

Pour éviter de ralentir la macro tu peux actualiser l'affichage moins souvent

if a > 100 then
usfChargement.Label1 = " en cours " & Lig
a = 1
else
a=a+1
end if


ou avec un délai


TimeFin = DateAdd("n", 10, Time) 'n= minute s = seconde

For Lig = 1 To 1000
Range("A2").Value = Lig

If TimeFin <= Time Then
usfChargement.Label1 = " en cours " & Lig
TimeFin = DateAdd("n", 10, Time) 'n= minute
End If
Next Lig







suivre
 
Dernière édition:
Re : Affichage message.

Bonjour le fil,

Suite à la lecture de la proposition de cbea 🙂 qui m'a inspiré pour un autre fil :
Une autre méthode ici le code se trouve dans le module 2 si je ne me trompe pas.

Cordialement

Edit : Je viens de Changer de fichier dans le fil indiqué à cause erreur de chargement DLL.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
416
Réponses
4
Affichages
138
Réponses
13
Affichages
678
Réponses
2
Affichages
409
  • Question Question
Autres excel
Réponses
8
Affichages
737
Retour