Mettre un nom de plage sous forme de variable

Bonjour à tous,

Je suis nouveau sur le site et dans ce forum. J'ai pu apprécier la qualité de ce site et, comme je suis en difficulté de rédaction VBA, je viens poser ma question :

Mon fichier traite de gens qui viennent toutes les semaines pour obtenir un service. Toutes les semaines, nous enregistrons leur passage, cela toute l'année.

J'ai donc créer avec l'outil "tableau" 52 colonnes dans lesquels, pour chacun des bénéficiaires, je note leur passage. En fin de journée, nous devons éditer une feuille qui exprime les résultats.

J'ai donc fait une macro qui est (reproduction partielle) :

Sub essai1()

' essai1 Macro

'En C2, l'utilisateur donne le N° de la semaine (de 1 à 52)

'En C3, je fais une concaténation du mot "Sem_" et de la valeur de C2

'j'obtiens en C3 "Sem_1" qui est un nom déclaré dans le gestionnaire de nom qui correspond à la colonne N dans mon tableau, soit :

Range("C3").Value = "Sem_" & Range("C2").Value

Range("A18").Select 'cellule ou doit apparaitre mon résultat

ActiveCell.FormulaR1C1 = "=SUMPRODUCT(([C3]<>"""")*(Profil=""Couple+enf.""))"

End Sub

Il y a blocage au niveau de la ligne "ActiveCell.Formulat.....

Remarque : si, dans la macro, je remplace directement [C3] par "Sem_1", j'obtiens bien le résultat recherché. Evidemment je ne peux pas le faire pour 52 colonnes!

Pourriez vous m'aider ? Je ne suis pas assez ferru de VBA, Je n'ai pas trouvé de réponse (en clair!) dans le forum.

Merci par avance.

bonsoir,

essaie ainsi

Sub essai1()

' essai1 Macro
'En C2, l'utilisateur donne le N° de la semaine (de 1 à 52)
'En C3, je fais une concaténation du mot "Sem_" et de la valeur de C2
'j'obtiens en C3 "Sem_1" qui est un nom déclaré dans le gestionnaire de nom qui correspond à la colonne N dans mon tableau, soit :

Range("C3").Value = "Sem_" & Range("C2").Value
Range("A18").Select 'cellule ou doit apparaitre mon résultat
ActiveCell.FormulaR1C1 = "=SUMPRODUCT((" & [C3] & "<>"""")*(Profil=""Couple+enf.""))"
End Sub

Merci infiniment H2SO4 de ta réponse. Ca marche parfaitement. par contre je ne sais pas exactement pourquoi il faut ces espaces avant et après [C3] mais je vais essayer de comprendre ! C'est vrai que j'avais lu que VBA est "suceptible" ! Merci encore à toi et à une autre fois.

Bernard

bonsoir,

il ne s'agit pas d'une question de susceptibilité de VBA mais une question de l'utilisation d'une variable dans un string

par exemple

[C3]="bonjour"

a=[C3] ici la variable a contient "Bonjour"

a="[C3]" ici la variable a contient "[C3]"

c'est une correction de ce type que j'ai effectuée sur ton code.

Rechercher des sujets similaires à "mettre nom plage forme variable"