Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Progressbar

V

VB@D

Guest
Bonjour a tous

Voici une macro dans lequelle j'essai d'insérer une progressbar mais je n y arrive pas :-(.

Sub Suppression()
'suppression des doublons
i = 0
progressbar1.value = i
1:
If i = 65535 Then Exit Sub
If ActiveCell.Offset(i, 0) <> 0 And ActiveCell.Offset(i, 0) = ActiveCell.Offset(i + 1, 0) Then
ActiveCell.Offset(i, 0).EntireRow.Delete Shift:=xlUp
GoTo 1
Else
i = i + 1
GoTo 1
End If

End Sub

Je sais il y a des goto et c'est pas bien mais j'ai du mal a m'en passer

Bon pour la progressbar ca ne marche pas j'ai regarder un fichier de TI mais lui utilise

For i=0 to 65536
Progressbar1.value=i
....
next i

Alors je suis un peut perdu

Merci de votre aide

@+ tous le monde et bon week end

VB@D
 
M

Marc

Guest
bonjour,

si le goto 1 doit s'exécuter lorsque le test if.... est vérifié, il faut mettre ce goto 1 à la fin de la ligne d'instruction après ....Then
ActiveCell.Offset(i, 0).EntireRow.Delete Shift:=xlUp : goto 1

tel qu'il est dans la macro, il s'exécute tout le temps.

A+
 
V

VB@D

Guest
Salut Marc

Non mon goto 1 est après le then et apres le Else sa c normal je pense. Tant que i n'est pas égal a 65535 je retourne a 1
Mais apres le then i garde la meme valeur et apres le else j'ajoute 1 a i
Je ne pense pas me tromper ;-)

En tous les cas merci pour ton aide

@+ sur le forum

VB@D
 
T

Ti

Guest
La boucle For... Next ne servait dans l'exemple que tu as repris, qu'à montrer le déroulement du progressbar, mais aucune action ne lui était associée réellement, c'est pourquoi, avant de reprendre un code tel quel, il est important d'en comprendre le fonctionnement.
Ce que tu fais dans ta macro, c'est une boucle qui couvre la totalité de la colonne, même s'il n'y a que quelques lignes à tester, ce qui est une perte de temps considérable. Il vaut donc mieux déterminer l'étendue réelle de la plage avant de commencer.

Regarde l'exemple que je joins, il reprend le principe de ta macro (sélection de la première cellule de la colonne à tester et suppression des doublons directs de celle-ci).

Remarque : l'utilisation d'un tel progessbar est très jolie, mais c'est aussi une grosse perte de temps. Personnellement quand une action est susceptible de durer, je préfère en annoncer la progression dans le statusbar, ça évite bien des manipulations, c'est beaucoup plus simple et ça va plus vite.
 

Pièces jointes

  • progressBarSuppTi.zip
    44.7 KB · Affichages: 417
V

Vériland

Guest
Bonjour ce fil,

Ah ben j'vois que Ti est déjà passé !...lol...bon ben comme j'étais entrain de terminer le prog je le mets quand même ici...c'est presque comme Ti...lol...enfin de toute facon comme je me suis déjà inspiré de son fichier Lien supprimé...la ressemblance n'est pas loin...

Voilà comme çà tu as deux exemples...lol

 

Pièces jointes

  • Doublons_ProgressBar_VL.zip
    17.4 KB · Affichages: 253
E

Evelynetfrancois

Guest
bonjour Veriland et Ti
Quand je telecharge j'ai:
l'objet Progressbar1 n'est pas dispo sur votre machine!!RRRrrrr
comment le rendre dispo
je suis alle faire un tour dans l'ajout de controles mais bon ....rien trouvé
(Windows 95 Ecxel 97)et oui y en a encore!!!!!!!!!!!
bonne journée
Evelynetfrancois
 
V

Vériland

Guest
Bonjour Evelynetfrancois et toi le Forum,

...ben oui c'est à cause de ta version 97 qui n'a pas toutes les fonctions disponibles par rapport aux versions plus récentes...

regarde dans VBA dans Outils / contrôles supplémentaire si tu as Microsoft ProgressBar Contôle dans la liste ou quelque chose de semblable...

Pour ce faire, tu te places sur un usrform (dans VBA) et tu actives la boite à outils...
...ensuite tu fais Outils / contrôles supplémentaire et tu coches Microsoft ProgressBar Contôle...chez moi c'est la version 6.0...tu dois bien en avoir une...mais bon...
...j'suis pas sûr

p'têt que Ti a d'autres infos...lol

 
T

Ti

Guest
Excel 97, ça fait déjà bien des années que je ne le pratique plus...

Véri, mon fichier est plus lourd (je suppose) parce que j'ai mis une colonne d'exemple de 2000 lignes.
 
V

VB@D

Guest
Merci a tous de votre aide

Comme tu me le conseil Ti je vais essayer de définir l'étendu de la plage cellule comme dans vos exemple et on verra si j'ai toujours besoin d'une progressbar.

Je regarde le code et je repose des questions si j'ai des probleme dans ce post

Bye

VB@D
 

Discussions similaires

Réponses
2
Affichages
219
Réponses
2
Affichages
229
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…