macro VBA pour supprimer automatiquement des cellules doublons dans un range précis

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 !

superbog

XLDnaute Occasionnel
Bonjour,

J'ai un classeur assez complexe avec une centaine de feuilles qui portent pour la plupart un nom numérique (exemple 2252) et quelques unes un nom textuel (exemple: HD).
Je vous joins un fichier.
Je voudrais faire une macro qui permette de voir si dans dans le range B6:H900 il y a des lignes identiques, qui les enleve et ce feuille par feuille
Et la même chose pour le range N22:T900
MAIS attention ce n'est pas un groupe, il y a d'un coté les lignes B6:H6, B7:H7...B900:H900 et de l'autre les lignes N22:T22,N23:T23,...N900:T900...

il faut en outre que je puisse valider la suppression page par page.

j'ai cherché mais je ne trouve rien de concluant.

merci de votre aide
 

Pièces jointes

Re : macro VBA pour supprimer automatiquement des cellules doublons dans un range pré

Bonsoir superbog,

La structure de ton fichier n'étant pas conforme à ta description, il est difficile de cibler les feuilles concernées par la suppression des doublons. Est-ce que ça concerne la totalité des onglets?

Si oui, une boucle du genre:

Code:
Dim sh As Object
For Each sh In Sheets
  If MsgBox "Confirmer la suppression des doublons ?", vbYesNo + vbQuestion, "SUPPRESSION DES DOUBLONS" Then
    sh.Range("$B$6:$H$900").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7), Header:=xlNo
    sh.Range("$N$22:$T$900").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7), Header:=xlNo
  End If
Next
Sinon, quels sont les critères de choix des onglets?

Bonne soirée.

Cordialement.
 
Re : macro VBA pour supprimer automatiquement des cellules doublons dans un range pré

géant, super, merci beaucoup 😱

est il possible de faire en sorte que les doublons soient retirés quelque soit la casse ou la mise en forme des cellules???
 
Re : macro VBA pour supprimer automatiquement des cellules doublons dans un range pré

Oups problème d'adaptation 🙁

en fait j'ai pas mal de range sur lesquels mettre en oeuvre la macro, j'avais donc simplifié mon exemple mais l'adaptation s'avère problématique.

voici la macro adaptée, j'ai gardé les array car je ne maitrise pas mais je pense que le problème vient de là


message d'erreur:
erreur d'exécution '5':
argument ou appel de procédure incorrect


Code:
Sub SuppDoublons()
Dim sh As Object
For Each sh In Sheets

  If IsNumeric(sh.Name) Then

     sh.Range("$B$6:$H$900").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7), Header:=xlNo
     sh.Range("$J$22:$M$900").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7), Header:=xlNo
     sh.Range("$N$22:$T$900").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7), Header:=xlNo
     sh.Range("$V$22:$AB$900").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7), Header:=xlNo
     sh.Range("$AD$22:$AI$900").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7), Header:=xlNo
     sh.Range("$AK$22:$AO$900").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7), Header:=xlNo
     sh.Range("$AQ$22:$AT$900").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7), Header:=xlNo
     sh.Range("$AV$22:$AY$900").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7), Header:=xlNo

  End If
Next
MsgBox ("doublons supprimés")
End Sub
 
- 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
Retour