Extraire doublons - Réduire les lignes sélectionnées

Bonjour à toutes et tous,

Je post sur votre forum, car j'ai un code que j'aimerais optimiser.

J'ai une macro VBA qui me permet d'extraire les données d'une colonne ("E2 : jusqu'à la fin") feuille 1 pour les copier/coller dans une colonne feuille 2 : (A5 : jusqu'à la fin de la sélection).

Ma macro permet ensuite d'extraire les doublons, sans l'entête.

J'ai une ligne de mon code que j'aimerais optimiser pour éviter de me retrouver avec 30000 lignes de créées lorsque le résultat s'affiche dans la feuille 2, ce qui permettrait d'éviter de naviguer à la vitesse de la lumière

Voici mon code :

    Sheets(1).Select
'    Range("E2:E30000").Select
'    Code que j'utilisais avant, et que j'ai changé par les deux lignes suivantes ==> Ici, ça fonctionne.
    Range("E2").Select
    Range(Selection, Selection.End(xlDown)).Select

    Selection.Copy

    Sheets(3).Select
    Range("A5").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
[b]    ActiveSheet.Range("$A$5:$A$30003").RemoveDuplicates Columns:=1, Header:=xlNo
'    ActiveSheet.Range("$A$5:A" & [A65000].End(xlUp)).RemoveDuplicates Columns:=1, Header:=xlNo
' Cette ligne le fonctionne pas et je ne sais pas pourquoi, avec la remarque "erreur définie par l'application ou par l'objet" [/b]

    Sheets(3).Select
    Range("A1").Select

Avez-vous une idée pour rendre ma macro plus précise et plus flexible ?

A +

Bonjour,

à tester

    Sheets(1).Select
'    Range("E2:E30000").Select
'    Code que j'utilisais avant, et que j'ai changé par les deux lignes suivantes ==> Ici, ça fonctionne.
   Range("E2").Select
    Range(Selection, Selection.End(xlDown)).Select

    Selection.Copy

    Sheets(3).Select
    Range("A5").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ActiveSheet.Range("$A$5:A" & [A65000].End(xlUp).row).RemoveDuplicates Columns:=1, Header:=xlNo

    Sheets(3).Select
    Range("A1").Select

Avez-vous une idée pour rendre ma macro plus précise et plus flexible ?

Lignemax1=Sheet(1).cells(rowscount,"E").End(xlUp).rows 'Ligne max de la colonne E feuille1
Sheets(1).range("E2:E"& Lignemax1).copy Sheets(3).range("A5") 'copie E2 a Lignemax1 feuille1 sur A5 feuille3

Lignemax2=Sheet(3).cells(rowscount,"A").End(xlUp).rows 'Ligne max de la colonne A feuille3
Sheets(3).range("A5:A"&Lignemax2).RemoveDuplicates Columns:=1, Header:=xlNo
Sheets(3).range("A1").activate

Merci à vous pour vos réponses,

Il ne me manquait pas grand chose dans mon code ^^

Merci pour le coup de pouce et votre réactivité !!

Rechercher des sujets similaires à "extraire doublons reduire lignes selectionnees"