Macro importation de données trop lente - Bug?

Bonjour à toutes et tous,

Je rencontre un problème sur une macro qui, apparemment fait des va-et-vient vers une mémoire provisoire et prends plusieurs minutes à s’exécuter...

Cette macro est active pour l'onglet "Statistique Rues" je la copie en dessous.

Sub Stats_Rues()

Dim i As Integer, k As Integer, DerLig As Integer

Range("A2:D" & Range("A" & Rows.Count).End(xlUp)(2).Row).ClearContents

With Sheets("BD_Débarras")

tablo1 = .Range("G2:N" & .Range("A" & Rows.Count).End(xlUp).Row)

ReDim tablo2(3, 1)

k = 0

For i = 1 To UBound(tablo1, 1)

If tablo1(i, 7) = "" Then

ReDim Preserve tablo2(3, k + 1)

tablo2(0, k) = tablo1(i, 2)

tablo2(1, k) = tablo1(i, 1)

tablo2(2, k) = tablo1(i, 8)

k = k + 1

End If

Next i

End With

Range("A2").Resize(UBound(tablo2, 2), 3) = Application.Transpose(tablo2)

MsgBox "MàJ terminée", vbExclamation

End Sub

Pour une meilleure compréhension du problème je joins le document (lien en dessous).

Si quelqu'un peut m'aider à résoudre ce problème je lui en serai reconnaissant.

Je vous remercie d'avance et vous souhaite une excellente journée.

FBF

Bonjour

Trop de formules qui font ralentir le code

Essaie comme ceci :

Sub Stats_Rues()

    Dim i As Integer, k As Integer, DerLig As Integer
Application.Calculation = xlCalculationManual
    Sheets("Statistique Rues").Range("A2:D" & Sheets("Statistique Rues").Range("A" & Sheets("Statistique Rues").Rows.Count).End(xlUp)(2).Row).ClearContents

    With Sheets("BD_Débarras")
        tablo1 = .Range("G2:N" & .Range("A" & .Rows.Count).End(xlUp).Row)
        ReDim tablo2(3, 1)

        k = 0
        For i = 1 To UBound(tablo1, 1)
            If tablo1(i, 7) = "" Then
                ReDim Preserve tablo2(3, k + 1)

                tablo2(0, k) = tablo1(i, 2)
                tablo2(1, k) = tablo1(i, 1)
                tablo2(2, k) = tablo1(i, 8)
                k = k + 1
            End If
        Next i
    End With
    Sheets("Statistique Rues").Range("A2").Resize(UBound(tablo2, 2), 3) = Application.Transpose(tablo2)

MsgBox "MàJ terminée", vbExclamation
Application.Calculation = xlCalculationAutomatic
End Sub

si ok, clique sur le v Vert à coté du bouton EDITER pour clôturer le fil lors de ta réponse

Cordialement

Bonjour Dan,

Tout d'abord, je te remercie pour ton aide.

Le problème persiste, quand je lance la macro les résultats s'affichent rapidement mais ensuite elle tourne pendant 1 à 3 mn pour se finaliser. Elle fait des va-et-vient...

En bas du document, une information apparaît: Calcul : (4 processeur(s)): % Le pourcentage démarre à 1 et la macro ne se finalise pas tant que la valeur n'est pas de 100%...

Bizarrement la macro "Sub Transfert_données()" a quasiment la même configuration et ce problème n'est pas présent...

Je ne sais plus quoi faire...

Encore merci pour le temps que tu consacre à ma demande

bug

Re

Ce sont tes formules qui posent soucis et le nombre de lignes concernées. Donc une fois la macro exécutée dès que l'on remet le mode calcul automatique, excel prend du temps.

Là tu as quand même 4 colonnes comportant chacune 13000 formules à calculer...

Fais un test de changer une donnée dans une cellule de la feuille Statistique Rues, tu vas voir que cela prend du temps...

Pour la macro transfert données, on part de la feuille Débarras mais on copie vers quelle feuille ?

A te relire

Bonjour Dan,

J'ai essayé la macro en supprimant les formules colonnes (E; F: H; I) le temps de réponse est le même.

La macro transfert de donnée dure 2 secondes et doit également calculer 13'000 lignes.

La macro "transfert données" part de la feuille "BD_Débarras" et alimente la feuille "Débarras_STD"

Merci encore pour le temps consacré à cette problématique

Bonne matinée.

re

fais ce test.

Dans la feuille Statistiques Rues, supprime toutes les bordures sauf celle sur la ligne 1

Ensuite relance le code comme je te l'ai donné dans ce fil

A te relire

Bonjour Dan,

Aucun changement... Le temps de réponse est le même.

J’ai observé qu'elle (la macro) ralenti mon PC également.

Dans l'attente de te relire.

Bonne journée.

FBF

Re

Tu as bien enregistré ton fichier sous un nouveau nom avant d'exécuter la macro ?

En enregistrant sous un autre non il n'y a pas de changement.

Fait étrange, les données s'affichent à partir de 19% mais la macro continue jusqu’à arriver à 100%... (depuis le début...)

J'espère que tu pourras m’aider.

Cdlt.

FBF

re

Fait étrange, les données s'affichent à partir de 19% mais la macro continue jusqu’à arriver à 100%... (depuis le début...)

Oui normal car entre ce que tu vois et ce que excel fait ... plein de choses se passent et comme je te l'avais dit, chaque changement implique un recalcul dans le fichier.

Mais là je m'étonne car sur base de mes indications tu devrais voir une différence sensible

Bête question mais le fichier est bien identique à celui que tu as posté ?

Autre chose, quelle est la config de ton ordinateur ?

A te relire

J'ai Windows 7 Pro et office 2010

Pour écarter tous doute, je te joins le document à ce post.

Bonne journée

Re

je viens de vérifier mais aucun souci chez moi

Une fois la macro exécutée arrives-tu à utiliser les ascenseurs ?

Concernant la config du PC c'est le processeur et surtout la mémoire RAM qu'il faut connaitre

A te relire

Bonjour Dan,

Désolé pour ma réponse tardive (beaucoup de choses sur le feu)

Je te joins ma configuration

Au plaisir de te lire.

information systeme

Bonjour Dan,

Désolé pour ma réponse tardive (beaucoup de choses sur le feu)

Je te joins ma configuration

Au plaisir de te lire.

config
Rechercher des sujets similaires à "macro importation donnees trop lente bug"