XL pour MAC Supprimer les doublons en VBA

yoanriv

XLDnaute Nouveau
Bonjour,
je souhaiterai supprimer les doublons d'une colonne en VBA. et valider la fenêtre qui s'ouvre automatiquement.
Pouvez vous m'aider ?
Merci
 

Staple1600

XLDnaute Barbatruc
Bonsoir

Excel sait déjà faire (sans VBA)
Clique sur le bouton idoine sur le ruban: Supprimer les doublons
(sur l'onglet Données)
 

Staple1600

XLDnaute Barbatruc
Re

Si vraiment, du VBA tu veux alors en voici
(tout le mérite revient à l'enregistreur de macros ;))
VB:
Sub No_Dupes_Baby()
Dim x&
x = Selection.Column
Application.DisplayAlerts = False
Columns(x).RemoveDuplicates Columns:=1, Header:=xlYes
End Sub
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil

•>yoanriv
Sur Windows, cette ligne de code désactive l'affichage des alertes
Application.DisplayAlerts = False
Essaie cette macro de test pour voir si elle fonctionne ou pas sur Mac
VB:
Sub Test()
Application.DisplayAlerts = False
Sheets(1).Delete
End Sub
A tester sur un classeur vierge avec deux feuilles
Normalement cette macro supprime la feuille 1 sans que s'affiche le message d'alerte.
Est-ce le cas sur ton Mac?
Si il s'affiche, alors il faut trouver la syntaxe équivalente sous Mac.
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous :),

Une autre manière de faire avec un tableau et sans message.
nota: la colonne résultat sans doublon sera triée.
VB:
Sub TEST()
   'on traite la colonne E de la feuille nommée Feuil1
   SupprDoublonColonne Sheets("Feuil1").Range("e:e")
End Sub

Sub SupprDoublonColonne(Colonne As Range)
' L'argument Colonne est un range qui est une colonne unique
Dim derlig&, nbTotLig&, i&, n&, t

   ' vérif si Colonne est bien une colonne entière
   nbTotLig = Colonne.Parent.Columns(1).Rows.Count
   If Colonne.Columns.Count > 1 Or Colonne.Rows.Count <> nbTotLig Then
      MsgBox "l'argument de cette fonction n'est pas une colonne : Echec!", vbCritical
      Exit Sub
   End If

   ' Tri et suppression des doublons
   With Colonne
      derlig = .Cells(.Rows.Count, 1).End(xlUp).Row
      If derlig = 1 Then Exit Sub
      .Resize(derlig).Sort key1:=Colonne(1, 1), order1:=xlAscending, Header:=xlNo, MatchCase:=False
      t = .Resize(derlig).Value: n = 1
      For i = 2 To derlig
         If t(i, 1) <> t(n, 1) Then n = n + 1: t(n, 1) = t(i, 1)
      Next i
      For i = n + 1 To derlig: t(i, 1) = Empty: Next
      .Resize(derlig) = t
      'MsgBox "il reste " & n & " élément(s)."
   End With
End Sub
NOTA! si la colonne comporte un en-tête, me le dire. Je modifierai la macro en conséquence...
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonjour mapomme

Tu tombes bien
Si je n'abuse ton pseudo (hélas pour ma pomme) n'est pas en lien avec Steve J.
Mais peut-être ta culture binaire sait pourquoi sur un Mac, Application.DisplayAlerts semble inopérant ?

PS: Sinon tu as vu que j'ai besoin de ta lampe de poche dans le fil de chalie2015 ?

EDITION: Question du dimanche avant mon dernier devoir civique (may be?)
Pourquoi tu t'abstiens d'utiliser la fonction native d'Excel pour supprimer les doublons?
Pour le plaisir d'aller dans VBE en pyjama, les doigts plein de miettes de croissant, alors que l'odeur d'un bon café chaud inonde la pièce où ton PC ronronne?
Euh pardon, je m'égare, c'est mon imagination qui s'emballe
T'es peut-être plus branché muffin et bacon au petit déj ;)
Mais cela laisse autant de gras sur le clavier que les croissants
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonjour yoanriv

Alors dans ce cas, avec la macro que je t'ai précédemment proposé.
VB:
Sub No_Dupes_Baby()
Dim x&
x = Selection.Column
Application.DisplayAlerts = False
Columns(x).RemoveDuplicates Columns:=1, Header:=xlYes
End Sub
Tu ne devrais pas voir s'afficher la "fenêtre"
(qu'on peut voir dans le message#9)
Sur mon PC, elle ne s'affiche pas.
 

Staple1600

XLDnaute Barbatruc
Re

C'est bizarre, cette affaire
Pourquoi dans un cas, Application.DisplayAlerts fonctionne et pas dans l'autre ?!?
Si un autre Maciste pouvait passer par ici et faire le test ?

Sinon, utilises le code de mapomme ;)
Tu n'auras pas de message.
 

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