Macro extraction sans doublons..TROP LOURDE

Bonjour,

J'ai une macro qui fonctionne mais qui est trop lourde. La seule cause trouvée selon moi est le fait que j'utilise des filtres élaborés pour extraire des données sans doublons; y aurait il un moyen de simplifier ou de détourner ? (j'ai utilisé la macro automatique pour ce bout de code) MERCI! :

Range("A4:A50").Select

Range("A4:A40").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _

"B4:B30"), Unique:=True

Range("C6").Select

ActiveCell.FormulaR1C1 = "=RC[-1]"

Range("C7").Select

ActiveCell.FormulaR1C1 = "=CONCATENATE(R[-1]C,"" "",RC[-1])"

Range("C7").Select

Selection.Copy

Range("C8:C13").Select

Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _

SkipBlanks:=False, Transpose:=False

Range("D4:D50").Select

Range("D4:D40").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _

"E4:E30"), Unique:=True

Range("F6").Select

ActiveCell.FormulaR1C1 = "=RC[-1]"

Range("F7").Select

ActiveCell.FormulaR1C1 = "=CONCATENATE(R[-1]C,"" "",RC[-1])"

Range("F7").Select

Selection.Copy

Range("F8:F13").Select

Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _

SkipBlanks:=False, Transpose:=False

bonjour

A premiere vue ;tu traites environ une 50aine de lignes donc pas nesseceraiment besion de vba ;met ton fichier ou rien que la zone a traiter sur le forum en utilisant " ajouter des fichiers joints " et; c'est le mieux :en xls

a+ cordialement

en fait la macro est beaucoup plus longue.

j'ai fait un extrait.

je peux te l'envoyer en mp si t'es ok

Bonjour,

Tu peux déjà supprimer tous les ".Select" qui ralentissent la macro,

au lieu d'écrire "Activecell." ou "Selection.", tu écris directement l'adresse.

ici, toutes les lignes colorées sont à supprimer

Sub essai()
    'Range("A4:A50").Select
    Range("A4:A40").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
    "B4:B30"), Unique:=True
    'Range("C6").Select
    Range("C6").FormulaR1C1 = "=RC[-1]"
    'Range("C7").Select
    Range("C7").FormulaR1C1 = "=CONCATENATE(R[-1]C,"" "",RC[-1])"
    'Range("C7").Select
    Range("C7").Copy
    'Range("C8:C13").Select
    Range("C8:C13").PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False

    'Range("D4:D50").Select
    Range("D4:D40").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
    "E4:E30"), Unique:=True
    'Range("F6").Select
    Range("F6").FormulaR1C1 = "=RC[-1]"
    'Range("F7").Select
    Range("F7").FormulaR1C1 = "=CONCATENATE(R[-1]C,"" "",RC[-1])"
    'Range("F7").Select
    Range("F7").Copy
    'Range("F8:F13").Select
    Range("F8:F13").PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
End Sub

Amicalement

Claude

re

si c'est beaucoup , beaucoup ( plusieurs milliers de lignes) ,il faudra du vba dans ce cas mets les parametres exacts

ok pour mp mais je ne garantis rien

bonsoir,

j'ai enlevé les select (ça fait plus propre).

C'est toujours aussi long.

Ce sont ces cochonneries de

Range("D4:D40").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _

"E4:E30"), Unique:=True

qui plombent tout!

Comme la macro est lente, l'utilisateur a le temps de voir défiler les copier/coller, l'application des formules, etc.

c'est moche, mais ça fonctionne!

re,

tu peux ajouter en début de macro cette ligne

Application.ScreenUpdating = False

maintenant pour optimiser davantage, il faudrait le fichier et voir !

Claude

Rechercher des sujets similaires à "macro extraction doublons trop lourde"