1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| Function Intersection(Argument1, Argument2, Plage1, Plage2) As Variant
Dim x As Range, y As Range
Set x = Plage1.Cells.Find(Argument1, , xlValues, xlWhole) 'plage horizontale (si je comprends bien, Excel cherche mon argument 1 dans la plage 1 et donne cette valeur à x)
If Not x Is Nothing Then ' (là, j'ai plus de mal à saisir la logique, mais c'est si il ne trouve pas la valeur cherchée !)
Set y = Plage2.Cells.Find(Argument2, , xlValues, xlWhole) 'Plage verticale (Il cherche le deuxième argument dans la plage 2)
If Not y Is Nothing Then ' (idem à + haut, si il ne trouve pas l'argument 2
Resultat = Cells(y.Row, x.Column) ' là ça se corse... j'imagine qu'il part de la position des valeurs trouvées dans les différentes plages et considère la ligne et la colonne correspondante
ActiveCell.Value = Resultat.Value ' La cellule active prends la valeur de "résultat" mais je ne vois pas trop lequel.
'Intersection = Application.Intersect(x.EntireColumn, y.EntireRow).Value ' j'ai mis cette ligne en commentaire pour l'instant, mais je la trouve plutôt logique... il trace la colonne et la ligne des points x et y, puis renvoie la valeur de l'intersection.
Else
MsgBox "Argument 2 non trouvé dans la plage" & Plage2.Address 'Messages d'erreurs'
End If
Else
MsgBox "Argument 1 non trouvé dans la plage" & Plage1.Address 'Messages d'erreurs'
End If
End Function |
Partager