informatixo
XLDnaute Occasionnel
Et bien à mon tour je réclame un peu d'aide sur une histoire un petit peu bizarre (lol).
J'ai un classeur excel avec 2 feuilles.
La première contient plusieurs colonnes et 1912 lignes, c'est en gros ma base de données.
La seconde me permet d'établir une liste des doublons de la première feuille concernant la colonne "Code article" et la colonne "Désignation".
J'ai donc une procédure qui vérifie les éventuels doublons.
Pour que se soit plus ergonomique, j'ai créé un UserForm avec une barre de progression (c'est un composant supplémentaire qui s'appelle ColorBar, ce n'est pas la traditionnelle ProgressBar bleu mais le principe reste le même) pour que l'utilisateur puisse voir l'état d'avancement et ne crois pas que l'application est plantée.
Lors de l'exécution de ma macro, je mets à jour la barre de progression et en même temps le texte de l'UserForm.
Exemple : quand je suis à 20 %, le Caption de l'UserForm possède "Vérification des doublons (20%)" et la barre de progression affiche 20% et la barre de couleur est avancée à hauteur de 20 %.
Bon jusque là tout est normal !
Mais arrivée à 50 % je rentre dans le traitement d'une boucle For qui parcours les 1912 lignes et là ça coince !
En fait, à chaque tour de boucle, je mets à jour le Caption de l'UserForm comme cité ci-dessus et la valeur de ma ColorBar.
Le problème c'est que la ColorBar ne s'actualise pas visuellement à chaque tour de boucle mais à la fin.
Ce qui a pour conséquence de me créer un décalage !
En fait dès que je dépasse les 50 %, le caption de ma UserForm fonctionne normalement en m'affichant progressivement toutes les valeurs de 50 à 100 % mais la ColorBar reste à 50 % (texte + barre de couleur de la ColorBar) et à la fin elle passe directement à 100 %.
Le plus marrant dans l'histoire c'est que la valeur du Caption de l'UserForm c'est en fait la valeur de la ColorBar. Donc celà me pousse à me dire que cette fameuse barre de progression est bien actualisée en terme de valeur mais visuellement son texte et sa barre de couleur reste à 50 %.
La seule solution que j'ai trouvé c'est de mettre une temporisation d'un millième de secondes et là les 2 (caption de l'UserForm + ColorBar) sont actualisés de manière synchrone.
Mais ça fait un peu bricolo tout ça ! (lol)
Si quelqu'un avait une idée sur ce sujet, ce serait sympathique de m'en faire part.
J'ai un classeur excel avec 2 feuilles.
La première contient plusieurs colonnes et 1912 lignes, c'est en gros ma base de données.
La seconde me permet d'établir une liste des doublons de la première feuille concernant la colonne "Code article" et la colonne "Désignation".
J'ai donc une procédure qui vérifie les éventuels doublons.
Pour que se soit plus ergonomique, j'ai créé un UserForm avec une barre de progression (c'est un composant supplémentaire qui s'appelle ColorBar, ce n'est pas la traditionnelle ProgressBar bleu mais le principe reste le même) pour que l'utilisateur puisse voir l'état d'avancement et ne crois pas que l'application est plantée.
Lors de l'exécution de ma macro, je mets à jour la barre de progression et en même temps le texte de l'UserForm.
Exemple : quand je suis à 20 %, le Caption de l'UserForm possède "Vérification des doublons (20%)" et la barre de progression affiche 20% et la barre de couleur est avancée à hauteur de 20 %.
Bon jusque là tout est normal !
Mais arrivée à 50 % je rentre dans le traitement d'une boucle For qui parcours les 1912 lignes et là ça coince !
En fait, à chaque tour de boucle, je mets à jour le Caption de l'UserForm comme cité ci-dessus et la valeur de ma ColorBar.
Le problème c'est que la ColorBar ne s'actualise pas visuellement à chaque tour de boucle mais à la fin.
Ce qui a pour conséquence de me créer un décalage !
En fait dès que je dépasse les 50 %, le caption de ma UserForm fonctionne normalement en m'affichant progressivement toutes les valeurs de 50 à 100 % mais la ColorBar reste à 50 % (texte + barre de couleur de la ColorBar) et à la fin elle passe directement à 100 %.
Le plus marrant dans l'histoire c'est que la valeur du Caption de l'UserForm c'est en fait la valeur de la ColorBar. Donc celà me pousse à me dire que cette fameuse barre de progression est bien actualisée en terme de valeur mais visuellement son texte et sa barre de couleur reste à 50 %.
La seule solution que j'ai trouvé c'est de mettre une temporisation d'un millième de secondes et là les 2 (caption de l'UserForm + ColorBar) sont actualisés de manière synchrone.
Mais ça fait un peu bricolo tout ça ! (lol)
Si quelqu'un avait une idée sur ce sujet, ce serait sympathique de m'en faire part.