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

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

  • testdoublons.xlsx
    74 KB · Affichages: 41
  • testdoublons.xlsx
    74 KB · Affichages: 40

Papou-net

XLDnaute Barbatruc
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.
 

Papou-net

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

Bonjour superbog,

Voici ton fichier modifié.

Pour vérification, j'ai ajouté une feuille nommée HD.

Bonne journée.

Cordialement.
 

Pièces jointes

  • Copie de testdoublons.xlsm
    85.6 KB · Affichages: 57

superbog

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

géant, super, merci beaucoup :eek:

est il possible de faire en sorte que les doublons soient retirés quelque soit la casse ou la mise en forme des cellules???
 

superbog

XLDnaute Occasionnel
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
 

Statistiques des forums

Discussions
311 725
Messages
2 081 942
Membres
101 849
dernier inscrit
florentMIG