[VBA] Fonction sans doublons

Bonjour à tous :),

J'ai une fonction doublon (voir code juste ci-dessous ou dans le fichier-joint) mais qui affiche un 0 s'il y a plus de cellules concernant la formule que de noms à afficher sans doublons. Quelqu'un s'aurait-il comment modifier le code pour que ça n'affiche plus un 0, mais rien du tout à la place ?

Function SansDoublons(champ As Range)
Application.ScreenUpdating = False
  Set mondico = CreateObject("Scripting.Dictionary")
  mondico.CompareMode = vbTextCompare
  a = champ
  For Each c In a
    If Not mondico.Exists(c) And c <> "" Then mondico(c) = ""
  Next c
  Dim temp()
  ReDim temp(1 To Application.Caller.Rows.Count)
  i = 1
  For Each c In mondico.keys
    temp(i) = c
    i = i + 1
  Next
  SansDoublons = Application.Transpose(temp)
End Function
14sansdoublons.xlsm (23.82 Ko)

Bonjour

Et si vous mettez votre formule comme ceci --> =SI(SansDoublons(A1:B5)<>0;SansDoublons(A1:B5);"")

Formule de type matricielle et donc à valider par CTRL + SHIFT + ENTREE

Cordialement

Bonjour ,

Et pourquoi ne pas tout simplement désactiver l'affichage de la valeur Zéro dans les options excel.

Fichier /Options/options avancées / options affichage de la feuille "SansDoublons" décocher afficher zéro..

Ohhhh mais oui c'est tellement logique... J'y avais même pas pensé de le faire comme ça... J'étais trop focalisé sur le code de la fonction... . Merci beaucoup @Dan !

@Xmenpl je préfère la fonction de Dan qui me semble mieux au final . Mais c'est aussi une possiblité effectivement ! Merci quand même de l'alternative

Rechercher des sujets similaires à "vba fonction doublons"