Bonjour à tous
Je tourne en rond sur un problème, en fait j'ai le même problème avec xlookup() mais j'essaye de faire simple avec match() pour l'exemple de cette question, j'imagine que le problème est le même ...
J'ai un tableau (non structuré) dans lequel j'ai nommé les colonnes avec des formules
(pour la colonne nommée OpéCompte) =DECALER(Opérations!$A$5;;;VarNombreOpé;1)
(pour la colonne nommée OpéTitre) =DECALER(Opérations!$C$5;;;VarNombreOpé;1)
Dans le code plus bas, j'utilise la ligne de la cellule active comme référence.
Je cherche dans les lignes au dessus de cette ligne de référence, la première ligne qui a la même valeur que OpéCompte et OpéTitre de cette ligne de référence.
=> erreur 13, incompatibilité de type :-(
Je crois comprendre que Excel ne comprend pas mes 2 critères.
J'ai lu des suggestions qui proposent de concaténer les champs avec & mais je trouve le code final peu lisible (je n'ai de tout façon pas réussi à mettre en œuvre), je préfère avec ...Match(1,... si c'est possible.
Comment éviter cette erreur ?
Je vous remercie de l'aide que vous m'apporterez.
@+Laurent
Je tourne en rond sur un problème, en fait j'ai le même problème avec xlookup() mais j'essaye de faire simple avec match() pour l'exemple de cette question, j'imagine que le problème est le même ...
J'ai un tableau (non structuré) dans lequel j'ai nommé les colonnes avec des formules
(pour la colonne nommée OpéCompte) =DECALER(Opérations!$A$5;;;VarNombreOpé;1)
(pour la colonne nommée OpéTitre) =DECALER(Opérations!$C$5;;;VarNombreOpé;1)
Dans le code plus bas, j'utilise la ligne de la cellule active comme référence.
Je cherche dans les lignes au dessus de cette ligne de référence, la première ligne qui a la même valeur que OpéCompte et OpéTitre de cette ligne de référence.
VB:
Sub test()
Dim FeuilleOpé As Worksheet
Dim LeCompte As String
Dim LeTitre As String
Dim RgCompte As Range
Dim RgTitre As Range
Set FeuilleOpé = ThisWorkbook.Worksheets("Opérations")
LeCompte = Intersect(FeuilleOpé.Range("OpéCompte"), FeuilleOpé.Rows(ActiveCell.Row)).Text
LeTitre = Intersect(FeuilleOpé.Range("OpéTitre"), FeuilleOpé.Rows(ActiveCell.Row)).Text
Set RgCompte = Intersect(Rows(Range("5:" & ActiveCell.Row - 1), Range("OpéCompte"))
Set RgTitre = Intersect(Rows(Range("5:" & ActiveCell.Row - 1), Range("OpéTitre"))
MsgBox Application.WorksheetFunction.Match(1, (RgCompte = LeCompte) * (RgTitre = LeTitre), 0)
=> erreur 13, incompatibilité de type :-(
Je crois comprendre que Excel ne comprend pas mes 2 critères.
J'ai lu des suggestions qui proposent de concaténer les champs avec & mais je trouve le code final peu lisible (je n'ai de tout façon pas réussi à mettre en œuvre), je préfère avec ...Match(1,... si c'est possible.
Comment éviter cette erreur ?
Je vous remercie de l'aide que vous m'apporterez.
@+Laurent