Bonjour à tous,
Voici le problème que j’aimerais vous exposer:
Je cherche à créer une macro sous vba reproduisant la fonction SommeProd sous sa forme matricielle.
Ainsi, dans une feuille Excel où figure la matrice de recherche (colonnes B et C) ainsi que les paramètres recherchés (en G3 et G4), le code suivant fonctionne :
Sub Matriciel()
Dim x
x = [SUMPRODUCT((B:B=G3)*(C:C=G4))]
Range("G11") = x
End Sub
Je précise que le fait de différer le calcul dans une variable « x » avant de placer le résultat en cellule « G11 » est importante.
Car l’idée par la suite sera de faire ce calcul sans jamais placer le résultat dans une cellule, mais de s’en servir comme référence pour une autre macro !
Je ne souhaite donc pas utiliser de formule du type :
Range("G11") = "=SUMPRODUCT((B:B=G3)*(C:C=G4))
Ou bien Formula.Array
Mon problème est que je souhaite que les paramètres recherchés ne soient pas directement disponibles dans la feuille dont je peux renseigner les références directement dans la formule (dans le cas présent G3 et G4), mais des variables qui seraient entrées via des inputbox par l’urilisateur.
Voici ce à quoi cela devrait ressembler :
Sub Matriciel()
Dim x
Dim Search_ID As Integer
Dim Search_Facility As String
Search_ID = InputBox("Guarantee ID?")
Search_Facility = InputBox("Facility Name?")
x = [SUMPRODUCT((B:B=Search_ID)*(C:C=Search_Facility))]
End Sub
Malheureusement la dernière ligne ne fonctionne pas avec la denomination des variables.
Pourriez-vous m’aider ?
Merci par avance