Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Compare range array

  • Initiateur de la discussion Initiateur de la discussion Hoareau
  • Date de début Date de début

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 !

Hoareau

XLDnaute Occasionnel
Bonjour

La fonction ci-dessous compare un range et un array.

Si dans le range, il y a 2 fois la même valeur, c'est compté comme 2.

Je voudrais que les valeurs doubles dans le range ou l'array soient comptées, comme une seule valeur.

merci


Public Function Compare_Range_Array(Plage As Range, tblo As Variant)

Dim C As Range

Application.Volatile

For Each C In Plage
For Tblo_val = 0 To UBound(tblo)

If tblo(Tblo_val) = C.Value Then Compare_Range_Array = Compare_Range_Array + 1

Next
Next

End Function
 
Re : Compare range array

Bonjour Hoareau,

Un essai dans le fichier joint avec 4 exemples. les valeurs vides ne sont pas prises en compte. Cela devrait pouvoir fonctionner avec Tblo égal à un array, un range ou une constante.

VB:
Public Function Compare_Range_Array(Plage As Range, tblo As Variant)
Dim C, Tref(), Nref(), i As Long, N As Long

If VarType(tblo) > vbArray Then
  For Each C In tblo
    N = N + 1
    ReDim Preserve Tref(1 To N)
    Tref(N) = C
  Next C
  ReDim Nref(1 To N)
Else
    ReDim Preserve Tref(1 To 1)
    Tref(1) = tblo
    ReDim Nref(1 To 1)
End If

For Each C In Plage
  If C.Value <> "" Then
    For i = LBound(Tref) To UBound(Tref)
      If Tref(i) <> "" Then
        If C = Tref(i) Then
          Nref(i) = 1
          Exit For
        End If
      End If
    Next i
  End If
Next C

For i = LBound(Tref) To UBound(Tref)
  Compare_Range_Array = Compare_Range_Array + Nref(i)
Next i

End Function
 

Pièces jointes

- 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

Discussions similaires

Réponses
15
Affichages
782
Réponses
4
Affichages
732
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…