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
 

Fichiers joints

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.
 

superbog

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

Désolée... :( ce sont les onglets numériques qui sont concernés.
merci :)
 

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.
 

Fichiers joints

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
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas