Bonjour, Salut DjiDji, U.Milité !
Une petite fonction personnalisée pour faire ça de façon plus aisée...
Function LUNE(Suit As Range, Sel As Range)
Dim Rio(), i%, o%, s%, ss%, m%, n%
Application.Volatile
m = Suit.Cells.Count: n = Sel.Cells.Count
ReDim Rio(1 To m * 2)
i = 1: o = m + 1
For ss = 1 To m
For s = 1 To n
If Suit.Cells(ss) = Sel.Cells(s) Then Exit For
Next s
If s > n Then
Rio(o) = Suit.Cells(ss): o = o + 1
Else
Rio(i) = Suit.Cells(ss): i = i + 1
End If
Next ss
For s = i To m
Rio(s) = ""
Next s
For s = o To m * 2
Rio(s) = ""
Next s
LUNE = Rio
End Function
Une fonction personnalisée est une procédure VBA de type Function, dont le code se place dans un module standard, qui peut fonctionner en feuille de calcul (et la ligne de commande Application.Volatile en début sert à lui permettre d'être recalculée lorsqu'Excel effectue un recalcul).
Elle s'utilise comme toute autre fonction native d'Excel, avec la particularité que celle-ci est matricielle, donc comme toute fonction matricielle d'Excel !
Au cas particulier, tu as une suite de 11 nombres (occupant 11 cellules) que tu compares à une sélection de 9 nombres, afin de répartir les nombres de la suite en deux groupes, ceux qui sont dans la sélection, ceux qui n'y sont pas. La fonction opère cette répartition en une seule opération...
Tu commences par sélectionner une plage de 22 colonnes en lignes (22 parce que 11*2=22, la fonction placera les nombres qui sont dans la sélection dans la première demi-plage sélectionnée et ceux qui n'y sont pas dans la seconde). La fonction n'est pas tributaire de 11 ou 9, elle fonctionnera avec une suite d'un nombre quelconque de nombres, et une sélection également d'un nombre variable de nombres.
La sélection d'une plage en ligne comportant le double de cellules de la suite étant faite, tu tapes la formule.
Par exemple : suite en A4:K4 et sélection en H1:P1 :
Tu sélectionnes une plage... : P4:AK4 et tu tapes la formule :
=LUNE(A4:K4;$H$1:$P$1)
C'est à dire le nom de la fonction avec en argument la référence de ta suite et celle de ta sélection (l'adresse de la sélection est mise en réf. absolue pour que la formule puisse être recopiée...
Tu valides avec la combinaison de touches Ctrl+Maj+Entré (validation matricielle), la formule s'encadre d'accolades : {......} et les nombres présents dans la sélection apparaissent dans la demi-plage à partir de P4, ceux absents dans la seconde demi-plage à partir de AA4.
Indépendamment du calcul, comme tu encadres tes plages de nombres, j'ai supprimé cette bordure en dur pour qu'elle intervienne en MFC : toute cellule qui contient un nombre sera bordée... (MFC qui couvre A1:AK40 sur toutes les feuilles).
Pour la formule, je l'ai placée sur des 2 premières feuilles, et sur la première ligne de la 3e...
Pour la recopier sur les lignes suivantes, dans la mesure où tu sautes une ligne à chaque fois, en prenant l'exemple précédent tu sélectionnes la plage où tu as tapé la formule et tu l'étends à la ligne en dessous, vide, soit dans notre cas : P4:AK5. Tu te positionnes à l'angle inférieur droit de cette plage de 2 lignes et 22 colonnes, lorsque le curseur prend la forme d'une croix, tu enfonces le bouton gauche de la souris et tires vers le bas jusqu'en AK35 (la dernière suite étant ligne 34). La formule aura été recopiée pour toute ta feuille.
Cordialement.