Constitution de couplés sous conditions

Bonjour le Forum,

Je ne sais pas trop comment m'y prendre avec ce problème, je m'explique :

Je souhaiterai constituer des couplés à partir d'une série de nombre que j'ai appelé "ligne de traitement" et de 2 listes de nombres statiques (L1 et L2) .

On regarde chacun des 3 premiers nombres de la ligne de traitement dans quelle ligne ils appartiennent ( L1 ou L2 ) et on associe

le restant des nombres de la ligne de traitement faisant partie de la même ligne ( L1 ou L2 ) d'un des 3 nombres de la ligne de traitement.

J'ai conscience que mon explication est loin d'être clair, c'est pourquoi j'ai joins un fichier qui rentre plus dans le détail avec un exemple et un résultat final souhaité.

Le résultat final peut se faire avec des formules ou en VBA, à mon avis

Merci par avance, pour l'aide qui sera apportée,

Mamarus

14classeur1.xlsx (12.39 Ko)

Bonjour,

Il y a déjà un problème dans ton exposé : le 8 qui apparaît en résultat, en ne figurant pas dans la ligne de traitement ! ?

Cordialement.

Bonjour MFerrand,

Merci tout d'abord de t'être intéressé à mon sujet, tu as raison, le 8 n'a rien à y faire dans le résultat.

Cordialement,

Mamarus

Bonsoir,

Opérer par formules m'a semblé quelque peu compliqué et une fonction personnalisé m'a parue plus souple.

Du même coup la fonction pouvait fournir tous les résultats dans la foulée...

Function COUPLER3(ltr As Range, lst1 As Range, lst2 As Range)
    Dim cpl(), n%, i%, j%, k%, ic%, lst As Range, dlst As Boolean
    Application.Volatile
    n = ltr.Cells.Count
    ReDim cpl(1 To 3, n)
    For i = 1 To 3
        cpl(i, 0) = ltr.Cells(i)
        For j = 1 To lst1.Cells.Count
            If lst1.Cells(j) = cpl(i, 0) Then
                Set lst = lst1: Exit For
            End If
        Next j
        For j = 1 To lst2.Cells.Count
            If lst2.Cells(j) = cpl(i, 0) Then
                If lst Is Nothing Then
                    Set lst = lst2
                Else
                    Set lst = Nothing: dlst = True
                End If
                Exit For
            End If
        Next j
        If Not lst Is Nothing Then
            cpl(i, 1) = "//": ic = 1
            For k = i + 1 To ltr.Cells.Count
                For j = 1 To lst.Cells.Count
                    If lst.Cells(j) = ltr.Cells(k) Then
                        ic = ic + 1: cpl(i, ic) = ltr.Cells(k)
                    End If
                Next j
            Next k
            For k = ic + 1 To n
                cpl(i, k) = ""
            Next k
        Else
            If dlst Then
                cpl(i, 1) = CVErr(xlErrRef)
            Else
                cpl(i, 1) = CVErr(xlErrNA)
            End If
            For k = 2 To n
                cpl(i, k) = ""
            Next k
        End If
        Set lst = Nothing: dlst = False
    Next i
    COUPLER3 = cpl
End Function

Un peu longue mais on opère diverses vérification !

Sauf que les plages contiennent bien des nombres (mais dans ce cas, le renvoi #VALEUR! est de règle).

Si l'un des 3 nombres à coupler n'est trouvé dans aucune des listes, l'erreur #N/A sera renvoyée pour ce nombre.

Si l'un des 3 nombres à coupler figure dans les deux listes, l'erreur #REF! sera renvoyée.

La fonction est matricielle. Elle comporte 3 arguments de type plage : la liste de traitement, la liste statique 1, la liste statique 2.

Son utilisation implique la sélection d'une plage réponse de 3 lignes (3 nombres à coupler) et d'autant de colonnes qu'il y a de nombre dans la liste de traitement +1 (en effet, si pour le premier nombre couplé, tous ceux qui suivent appartiennent à la même liste que lui toutes ces colonnes pourront être occupées).

La sélection faite, on tape la fonction : =COUPLER3(ListeTraitement;ListeStatique1;ListeStatique2)

Et on valide par Ctrl+Maj+Entrée.

Les valeurs 0 qui complèteraient les cellules dépourvues de valeur sont éliminées par un remplissage systématique de "".

Cordialement.

Bonjour,

Merci pour le travail accompli, c'est ce que je recherchai exactement

bonne journée,

Mamarus

Rechercher des sujets similaires à "constitution couples conditions"