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

Problème lenteur macro

  • Initiateur de la discussion Initiateur de la discussion joelpelle
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

joelpelle

Guest
Bonjour à tous,

Grâce à l'aide du Forum, j'ai pu réaliser une macro afin de copier des colonnes, les regrouper en une seule, puis faire un tri sur cette colonne.

Vous la trouverez dans le fichier joint allégé, et ci-dessous (soyez indulgents, je débute!)

Sub Transfert()
Dim Col%, tc, ligne&, m&, n&
tc = Array(3, 6, 9)
Range("A1:A5000").ClearContents
ligne = 1
For n = 0 To UBound(tc)
Col = tc(n)
For m = 1 To Cells(5000, Col).End(xlUp).Row
If Cells(m, Col) <> 0 Then
Cells(ligne, 1) = Cells(m, Col)
ligne = ligne + 1
End If
Next m
Next n
Columns("A:A").Select
ActiveWorkbook.Worksheets("Plan").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Plan").Sort.SortFields.Add Key:=Range("A1"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Plan").Sort
.SetRange Range("A1:A500")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub



J'ai un soucis de rapidité.
En effet, mon fichier final, comporte plus de trente colonne et 1200 lignes.
Alors ça rame un peu.

Je pense que c'est du à ma macro qui fonctionne mais rame, et qu'il doit y avoir un moyen d'accélérer tout ça, mais je sêche !

Merci de m'apporter vos lumières.

Cordialement

Joël
 

Pièces jointes

Re : Problème lenteur macro

bonjour,

en début de macro : Application.ScreenUpdating = False

en fin de macro : Application.ScreenUpdating = True

en désactivant la mise à jour de l'écran, tu vas surement gagner un peu de temps.

@+
 
Re : Problème lenteur macro

Bonjour Mercant76,

C'est ma fois vrai que je les ai oublié ceux là !!! 😡

Je modifie et teste.

Merci pour ton intervention.🙄

Cordialement

Joël
 
Re : Problème lenteur macro

Bonjour Mercant46, bonjour le fil,

Je gagne du temps sur mon fichier, mais ça rame toujours dans le fichier originel.

Il faut que je trouve une astuce pour repérer et ne copier que les cellules calculées qui affichent un résultat dans les colonnes, parce que je pense que la macro teste tous les champs calculés et que c'est ça qui ralenti le tout.

Je continue à chercher donc, et merci à tous ceux qui m'apporteront leur aide.

Cordialement

Joël
 
Re : Problème lenteur macro

Bonjour à tous,

essaie ce code, car la problème de ton code c'est que tu teste cellule par cellule.
PHP:
Dim Col%, tc, ligne&, m&, n&
    Dim champs As Range
    Dim C As Range
    Dim T()
    Dim a, x As Long
    
    
    tc = Array(3, 6, 9)
    Range("A:A").ClearContents
    a = -1
    For n = 0 To UBound(tc)
        
        Col = Val(tc(n))
        
        Set champs = Range(Cells(3, Col), Cells(5000, Col))
        Set C = champs.Find("?", , xlValues)
        If Not C Is Nothing Then
            adrdeb = C.Address
            Do
                a = a + 1
                ReDim Preserve T(a)
                T(a) = C.Value
                Debug.Print C.Value
                Set C = champs.FindNext(C)
            Loop While Not C Is Nothing And C.Address <> adrdeb
        End If
    Next n
    application.screenupdating=false
    Range("A:A").Clear
    For x = 0 To a
        Range("A" & x + 1) = T(x)
    Next x
application.screenupdating=true

En espérant que ça t'aidera

smotty
 
Re : Problème lenteur macro

Bonsoir Smottty, bonsoir le Forum,

Je te remercie pour ton intervention Smotty, et avant de répondre, j'ai testé.

Si la macro ne renvoie pas d'erreur, en revanche, rien ne se passe 😕

Je dois dire que je sèche là !

Par ailleurs, j'ai amélioré nettement la rapidité de ma première macro en désactivant et réactivant le calcul automatique avec Application.Calculation = xlManual vu que j'ai beaucoup de champs calculés.

Néanmoins, j'aimerais bien comprendre pourquoi ta macro ne fonctionne pas ?!

Passe une excellente soirée.

Cordialement

Joël
 
Dernière modification par un modérateur:
Re : Problème lenteur macro

Bonsoir Joel,

voici le fichier avec la macro. Je l'ai testée et ça fonctionne.

L'avantage c'est que ça ne teste pas les cellules une par une (1500 cellules!)


bonne soirée également

Eric
 

Pièces jointes

Dernière édition:
Re : Problème lenteur macro

Bonsoir Smotty,

Ca fonctionne nickel.😎

Néanmoins dans mon fichier qui pèse 7 MO (nettoyé) et comporte plus de 25 000 champs, 😀 je dois d'abord me mettre en calcul manuel en lançant la macro.

C'est donc exactement ce que je souhaitais.🙂

Je te remercie infiniment pour ton aide. 🙄

Toujours aussi sympa ce Forum.

Bon week-end

Cordialement

Joël
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
908
Réponses
7
Affichages
366
Réponses
4
Affichages
730
Réponses
17
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…