Bonjour à tous
Voilà j'ai adapter une barre de progression que j'ai trouvé sur le Net
Elle ne fonctionne pas
Si vous pouviez voir pourquoi elle plante
Merci de votre réponse
Codialement
TriEcritures8.xlsm
Bonjour à tous
Voilà j'ai adapter une barre de progression que j'ai trouvé sur le Net
Elle ne fonctionne pas
Si vous pouviez voir pourquoi elle plante
Merci de votre réponse
Codialement
TriEcritures8.xlsm
Bonjour,
Si vous changez les noms des objets dans le formulaire, il faut également le faire dans le code. Ci-attaché, un exemple plus simple de barre d'avancement.
Cordialement.
bonjour,
ta barre est dans un form , donc tu doit indiquer que ta barre est dans un form
moform.mabarre
ensuite , bien sur , il faut mettre le vrai nom !!! de chaque "truc" ...
@+JP
Bonsoir
Merci de vos reponse mais je n'arrive toujours pas à lier la Barre de progression à la macro
Je vous joins mon fichier avec la progresseBar transmise
Si vous pouviez m'aider
Très cordialement
Alain16110
Bonjour,
Pour ce qui est de votre macro ECRITURES() il n'y a absolument aucune utilité d'utiliser une barre de progression vu qu'il n'y a aucune progression dans cette macro: aucune instruction "For ... Next" à suivre! Cette macro peut d'ailleurs se réduire à ceci:
Cordialement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Option Explicit Sub ECRITURES() Sheets("Journal").Select ActiveSheet.ListObjects("journal").Range.AutoFilter '--- supprime tous les filtres ActiveSheet.ListObjects("journal").DataBodyRange.Font.Bold = False '--- format caractères normaux (non gras) With ActiveWorkbook.Worksheets("Journal").ListObjects("journal").Sort .SortFields.Clear '--- supprime tous les tris actifs .SortFields.Add2 Key:=Range("journal[[#All],[DATE]]"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal '--- tri ajouté sur [DATE] .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply '--- exécute le tri End With Range("A100000").End(xlUp).Offset(1, 0).Select '--- aller juste sous le tableau End Sub
Bonsoir,
Merci de m'avoir simplifié la macro je m'occupe à la retraite et découvre le VBA
Cependant mon fichier écriture est un exemple pour avoir une Barre de progression lié à une macro ça devait me permettre d'aller plus loin.
J'ai d'autre demande par la suite...
Ex:
J'ai fais un userform pour saisir des écriture dans mon journal quand je "Valide" la mise à jour est longue et là aussi je voulais un Barre de progression
Si vous pouvier me transmette mon fichier corrigé avec une barre de forme attaché à une macro je pourrais progresser.
Merci encore de me répondre
Bonne soirée
PS je ne trouve rien sur le net que j'arrive à adapter.
Bonjour,
Comme indiqué, une barre de progression n'a de sens que s'il y a une progression à suivre et cette "progression" apparait le plus généralement lorsqu'il y a une ou plusieurs boucles à suivre (boucle = instruction For ... Next). Un exemple en attaché (qui effectue une opération qui normalement est réalisée instantanément à l'aide d'une mise en forme conditionnelle).
Cordialement?
Bonjour EricDgn
Merci de tes conseilles pour cela un Apéro
surtout un Dimanche pour cela je t'offre un autre apéro...
en oprtion ton exemple un 3eme apéro...
J'ai réussi à Adapter ma macro mais effectivement c'est ridicule une Barre de progression pour ce genre de macro.
Cependant je voulais comprendre et faire fonctionner ce genre de fonction "ProgressBar" suite à des tutos sur le Net.
Maintenant je vais essayer de l'adapter lors de la validation d'une nouvelle ligne d'écriture dans mon journal, cela prend
du temps car mon journal fait plus de 3000Lignes.
Affaire à suivre...
Pour l'heure Bon Dimanche et merci encore d'aider un Papy "pas trop Net"
Très cordialement
Alain16110
PS Pour l'heure je considère mon message Résolu, si toutefois je galère je reviendrais sur ce forum
Bye
Bonjour.
Je constate que vous travaillez avec un tableau structuré et c'est une bonne chose.
Je vois cependant en consultant votre code source quelques imprécisions, car vous travaillez comme sur une plage ordinaire alors que justement le tableau structuré est fait pour vous simplifier la vie.
Exemples :
Set c = ActiveSheet.ListObjects("journal").Range.Range("A1")C'est pourquoi je vous invite à lire cette documentation : Fonctions en VBA pour gérer les Tableaux Structurés d’Excelc.Offset(i, 1).Select
Vous y trouverez des fonctions très utiles pour gérer simplement vos données dans un tableau structuré.
Après avoir chargé le module TS que vous trouverez dans le fichier joint, votre code pourrait ressembler à ceci :
Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Sub VoirBarreAvancer() Dim i As Long, iMax As Long, TS As Range Dim Pc As Double SupprimerCouleurs ProgressBar.Show 0 '--- 0 = non modal: on peut travailler sur la feuille avec le formulaire ouvert Set TS = Range("journal") ' Déclaration du tableau structuré iMax = TS_Nombre_Lignes(TS) ' Renvoie le nombre de lignes du tableau structuré For i = 1 To iMax '--- parcourt les lignes une à une If Weekday(TS_InfoCellule(TS, "DATE", i, TS_Valeur)) = vbSunday Then '--- si c'est un dimanche Call TS_ModifCellule(TS, "DATE", i, 65535, TS_CouleurFond) ' Met en fond jaune la cellule de la colonne DATE Call TS_Sélectionner(TS, "DATE", i) ' facultatif: sélectionner la cellule = traitement plus long au cause de la sélection. End If If Round(i / iMax, 2) > Pc Then ' tous les changements de % Pc = Round(i / iMax, 2) UpdateProgressBar (Pc) '--- ajuste la barre de progression toutes les 17 avancées End If Next i MsgBox "Terminé" Unload ProgressBar End Sub
J'ai vu aussi que vous utilisez souvent select, ce qui ralenti votre traitement et n'est pas toujours utile.
A noter aussi que la barre de progression peut n'être affichée que lorsque le pourcentage change, ce qui évite de l'afficher 2580 fois au lieu de 100.
Enfin vous confondez Select et Activate. J'en déduit qu'il serait bon que vous lisiez cette documentation : Tome 1 - Des bases de la programmation à l'algorithme de classement rapide QuickRanking
Bon, ça fait beaucoup de lecture, mais l'investissement vous fera gagner beaucoup de temps.
Bonne continuation.
Bonjour,
Je suis tout à fait d'accord que le code donné peut être amélioré. Je l'ai voulu aussi simple que possible, juste là pour essayer de bien montrer le mécanisme d'une barre de progression, barre de progression d'absolument aucune utilité en l'occurrence.
Bien cordialement.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager