Affichage du message "Traitement en cours"

Bonjour

J'aimerais que lorsque je clique sur le bouton "Mise à jour" de la feuille "Récap", j'affiche en G7 dans la même feuille le texte suivant "Traitement en cours", pour indiquer à l'utilisateur de patienter pendant cette mise à jour. Mais dans mon code cela ne fonctionne pas.

Comment faire merci ?

32classeur1.xlsm (52.05 Ko)

Voir fichier joint.

Bonsoir,

Problème d'encodage, récurrent avec les MAC !

Worksheets("RŽcap")

LeMois, "sept", "oct", "nov", "dŽc", "jan"

Sheets("RŽcap").Select

Ce qui fait planter à tour de bras l'exécution, et comme tu passes ton temps à sélectionner Récap ça devient vite lassant...

donc si tu pouvais te passer une bonne fois pour toutes de Select ou Activate, tu gagnerais du temps en écriture et en exécution (à moins de vouloir concourir pour la macro la plus lente ! )

Mais pas de problème en ce qui concerne G7, ça s'affiche comme demandé.

Cordialement.

Bonsoir,

en fait votre code est long car il rafraichi l'écran....

Voici le code modifié :

Sub MiseaJour()
Dim ligne As Byte
Dim mois As String
Dim pionnier As String
Dim LeMois As Byte
'
Sheets("Récap").Activate
Range("G7").Value = "Traitement en cours"

Application.ScreenUpdating = False

' Parcours les feuilles mois

For LeMois = 1 To 5 'choix de la feuille correspondante au mois
mois = Choose(LeMois, "sept", "oct", "nov", "déc", "jan")
Sheets(mois).Select

'Parcours les lignes

    For ligne = 2 To 100
        Sheets(mois).Select
      If Cells(ligne, 4) = "" Then
      ligne = ligne + 1
       Else
            pionnier = Cells(ligne, 4).Value
            Sheets("Récap").Select
            Cells(ligne, 4).Value = pionnier
        End If
    Next ligne
Next LeMois

Call frequence
Worksheets("Récap").Select
Range("G7").Value = ""

Application.ScreenUpdating = True

End Sub

Les instruction Application.screenupdating sont placées judicieusement :

une juste après l'affichage "traitement en cours" sinon on ne le verrait pas, et l'autre à la fin du code une fois que tout est fini.

@ bientôt

LouReeD

Salut LouReed !

Je rappelle juste que la valeur de ScreenUpdating à True est automatique en fin d'exécution du code, Excel s'en charge, donc lorsqu'on n'a nul besoin de revenir à True en cours d'exécution, on n'a aucun besoin de le faire à la fin...

C'est aussi inutile que les Select en cours d'exécution (bien que moins chronophage que ces derniers).

Cordialement.

Merci pour l'info... Bien que depuis peu c'est ce que j'avais cru comprendre...

Mon niveau n'a pas augmenté depuis mon retour !

@ bientôt

LouReeD

Mais si, mais si !

C'est vrai aussi pour DisplayAlerts.

et On Error Resume Next ?

Merci beaucoup à LooReed pour le code modifié. Mais je n'ai toujours pas l'affichage du message en question. Peut-être un problème du au MAC. Car la version 2016 n'est pas exactement la même que sur PC.

On Error Resume Next est un mode de gestion d'erreur, qui n'a d'effet que dans la procédure (éventuellement dans les procédures dépendantes s'il y en a...)

En général tu l'utilises quand tu sais par dessus quelles erreurs tu veux sauter... Quand tu ne sais pas, il vaut mieux que ça s'arrête si tu veux voir l'erreur !

Tu l'utilises aussi le cas échéant pour l'utiliser en test conditionnel, si l'erreur a eu lieu tu poursuis autrement que si l'erreur n'a pas eu lieu. Dans ce cas quand le test est fait dans une boucle, il faut prendre soin d'effacer l'erreur à chaque fois car elle ne s'efface pas d'elle-même...

Bonne soirée.

LouReeD... L O U R E E D ...

Ceci dit le code fonctionne chez moi...

Il inscrit la mention "procédure en cours"

fiche l'affichage de l'écran

fait toutes les manipes

efface la mention

et redonne l'accès à l'écran (bien que ce ne soit pas utile au vu de ce que dit MFerrand et au vu du fonctionnement de cette instruction...

Si cela ne marche pas...

@ bientôt

LouReeD

Rechercher des sujets similaires à "affichage message traitement cours"