XL 2019 Progress Bar et Autofill - embellissement MAcro

Bonjour tout le monde,

J'ai créé un complément xlam qui permet de formatter des fichiers "Brut CSV" de données d'appels téléphoniques
Mon fichier brut peut contenir plusieurs milliers de lignes (cela dépend des mois)

Mon fichier CSV est modifié et enrichi avec des formules. Je recopie ces formules avec la méthode Autofill en VBA (pas de boucle).
Jusque là pas de soucis.

L'autofill de ces données prend du temps pendant lequel je voudrais mettre un progress bar pour que l'usager voit que la requête est en cours... (un état apparait dans le Status Bar "Cell ---- avec une barre de progression" )

Mon soucis c'est comment, ou et surtout quand appeler ma barre de progression ?

Avant l'instruction autofil ? je l'initialise par exemple :

barreProgression.afficher
barreProgression.ProgressBar1.Value = 0
Range("U2:AG2").Select ' certainement à optimiser avant un Autofill
Selection.AutoFill Destination:=Range("U2:AG" & derligneFINAL)

'derligneFinal étant la variable de dernière ligne de mon résultat final

J'avais pensé à utiliser l'Event Workbook_SheetChange mais il faudrait que cela soit positionné dans mon fichier "Brut" et par défaut ce n'est pas possible car c'est un CSV. Donc il faudrait que j'utilise un event sur le classeur "CSV BRUT" que je modifie actuellement .. il y a un truc qui m'échappe

Dans cette procédure, j'aurais pu modifier la valeur du taux en fonction de la progression d'une variable liée à la progression d'autofill par exemple
barreProgression.ProgressBar1.Value = taux_achev_Autofill

Bref je seche quelque peut,
Merci énormément de votre aide
 
Solution
Bonsoir

@benoit.guinebretiere@free
Tu peux éviter l'AutoFill
Testes cet exemple sur une feuille vierge
VB:
Sub test()
Dim derligneFINAL&
derligneFINAL = 37
FORMULE = "=MOD(ROW(),7)*COLUMN()"
Range("U2:AG" & derligneFINAL).Formula = FORMULE
End Sub

Ensuite il te suffira de mettre ta propre formule dans FORMULE
(et de supprimer le 37 que j'ai mis là simplement pour le test)

Staple1600

XLDnaute Barbatruc
Bonsoir

@benoit.guinebretiere@free
Tu peux éviter l'AutoFill
Testes cet exemple sur une feuille vierge
VB:
Sub test()
Dim derligneFINAL&
derligneFINAL = 37
FORMULE = "=MOD(ROW(),7)*COLUMN()"
Range("U2:AG" & derligneFINAL).Formula = FORMULE
End Sub

Ensuite il te suffira de mettre ta propre formule dans FORMULE
(et de supprimer le 37 que j'ai mis là simplement pour le test)
 

Statistiques des forums

Discussions
314 193
Messages
2 107 020
Membres
109 737
dernier inscrit
C Okanio