Barre de progression dans Excel

Salut la communauté,

Je viens encore une fois solliciter l'aide du forum. Je précise que je suis un débutant en excel. Et là je suis presque à la fin d'un de mes projets et j'ai besoin d'un gros coup de main.

J'ai élaboré un fichier comportant une bonne dizaine de feuilles qui se remplissent à partir des formulaires. J'ai préparé le fichier pour être réutilisable les années suivantes, du coup j'ai prévu un code de réinitialisation qui permet de vider toutes les feuilles en plus des photos dans les répertoires séparés. Mais vu qu'il y a plusieurs feuilles, le code de la procédure prend du temps pour s'exécuter. C'est là que j'ai pensé y insérer une barre de progression afin d'informer l'utilisateur sur l'état d'avancée de la procédure.

J'ai réussi à trouver sur internet deux (02) modèles de barre de progression qui me vont bien. Mon seul problème c'est que je n'arrive pas à adapter les codes à mon projet. Ce que je souhaite faire, c'est de pouvoir afficher l'état d'avancement de l'exécution du code de suppression des données des feuilles grâce aux barres de progression. J'avoue que je ne comprend rien aux codes trouvés sur le net.

J'ai créé deux (02) fichiers ci-joints avec un exemple de feuille pré remplie avec les barres de progression que je souhaite intégrer à mon projet. Merci d'avance à toutes les personnes qui sont disposées à m'aider dans cette tâche.

PS: Au passage, quelqu'un aurait-il un code qui permettrait de supprimer uniquement des images dont les noms commencent par un préfixe donné (par exemple AGE-000) dans un dossier!

Cordialement!

108progress-bar.xlsm (44.96 Ko)

quelqu'un aurait-il un code qui permettrait de supprimer uniquement des images dont les noms commencent par un préfixe donné (par exemple AGE-000) dans un dossier!

Bonjour,

pour supprimer les images,

Sub EffaceImage()
For Each f In Worksheets
    For Each image In f.DrawingObjects
      If Left(image.Name, 7) = "AGE-000" Then
        image.Delete
      End If
    Next image
Next f
End Sub

pour l'autre question il faudrait voir votre code pour y intégrer la barre de progression.

Bonjour,

si cela peut t'aider, voici deux exemples de barre de progression avec commentaires pour intégration au projet

- premier cas par macro

comme dit Isabelle que je salue, si tu veux de l'aide pour l'intégrer, donne nous en un eu plus

- deuxième cas, sans macro, bien plus simple !! il suffit d'actualiser la valeur en % au cours du calcul.

Michel

Merci Michel pour cette fonction texte qui reprend la progression

je ne connaissais pas cette façon de l'utiliser et ça m'a titillé la curiosité

j'ai fait une recherche pour en savoir plus et je j'suis tombé là dessus:

http://sn1.chez-alice.fr/presentation/progression.htm

bonne lecture et merci encore de m'avoir mis sur cette piste

re,

@ Bana,

il y a une lecture très intéressante pour la performance du calcul,

ici:

https://docs.microsoft.com/fr-fr/office/vba/excel/concepts/excel-performance/excel-improving-calcuation-performance

http://sn1.chez-alice.fr/presentation/progression.htm

bonne lecture et merci encore

je suis étonné qu'on puisse prédire le temps restant ... mais en effet, si les boucles sont assez répétitives sans aléas c'est aussi une solution très intéressante, donc merci à mon tout (d'ailleurs c'est cela aussi un forum, se partager les bonnes pratiques et astuces).

Merci à I20100 et à Steelson pour vos apports

Excusez moi du retard, ça m'a pris un peu de temps de modifier et supprimer les informations sensibles de mon projet avant de vous le soumettre.

Ce que j'aimerais faire, c'est qu'au clic des boutons "Initialiser" présent sur les feuilles, que les cellules remplies soient vidées

de leur contenu. Je précise encore que dans le vrai projet, j'ai en tout 14 feuilles de données et les informations enregistrées quotidiennement peuvent avoisiner un millier par feuille. Vous comprenez bien avec moi que la procédure de vidage des cellules risque de prendre du temps, d'où la nécessité de prévoir une barre de progression qui puise indiquer à l’utilisateur l'état d'avancée de la commande.

J'ai utilisé le code suivant pour la procédure de vidage des cellules: Feuille1.Range("A2:P1048576").ClearContents

Mais vu que ce n'est pas forcément toutes les lignes qui seront remplies, je me demande qu'un code pour effacer uniquement la zone de donnée serait mieux. Quiconque a une idée, je suis preneur.

Maintenant, mon gros soucis c'est de pouvoir intégrer ledit code de vidage à ma barre de progression. J'ai passé toute ma journée sur internet, mais je n'ai rien trouvé.

Au passage, Merci infiniment à I20100 pour le code que vous m'avez proposé pour la suppression des images. Malheureusement votre code ne fonctionne que lorsque les images sont stockées dans le classeur. Moi mes images sont enregistrées dans un dossier contenu dans le même répertoire que le classeur de mon projet. Auriez vous une meilleure idée à me proposer?

Cordiales salutations à tous!

45projet-blablabla.xlsm (435.12 Ko)

Bonjour,

Il manque une macro ...

capture d ecran 98

J'ai utilisé le code suivant pour la procédure de vidage des cellules: Feuille1.Range("A2:P1048576").ClearContents

Mais vu que ce n'est pas forcément toutes les lignes qui seront remplies, je me demande qu'un code pour effacer uniquement la zone de donnée serait mieux. Quiconque a une idée, je suis preneur.

Maintenant, mon gros soucis c'est de pouvoir intégrer ledit code de vidage à ma barre de progression. J'ai passé toute ma journée sur internet, mais je n'ai rien trouvé.

Sub vidage()
    Range("A1").CurrentRegion.Offset(1, 0).Clear
End Sub

et vu qu'il n'y a qu'une seule instruction il n'y a pas lieu de mettre une barre de progression car il n'est pas possible de calculer cette progression, du reste l'opération est instantanée.

Euh navré, en retravaillant le fichier, j'ai par inadvertance supprimer

certains macros.

Tenez voici le bon!

Merci d'avance pour vos apports!

67projet-blablabla.xlsm (441.55 Ko)

Bonjour,

Je t'ai proposé ci-dessus un code de vidage plus simple que je n'ai pas vu dans ton fichier. Mais cela ne change pas grand chose pour la suite.

La remarque reste valable ... je ne vois pas comment dans la macro de la progression calculer le % puisque le code ne comporte qu'une instruction (par feuille) et qu'elle est quasi immédiate.

Bonjour à tous,

plutôt que de t'embêter avec tout ça pourquoi tu ne gardes pas un fichier modèle vierge tout simplement ???

eric

Rechercher des sujets similaires à "barre progression"