Variable zone nommée:syntaxe

  • Initiateur de la discussion Initiateur de la discussion perdinch
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

perdinch

XLDnaute Occasionnel
bonjour,
Dans le fichier en pièce jointe , j'ai une liste déroulante qui contient des zones nommées.
Hélas, j'ai un problème de syntaxe car les zones nommées contenues dans la liste déroulante ne sont pas reconnues.


Merci de votre aide
 

Pièces jointes

Re : Variable zone nommée:syntaxe

Bonjour le Forum,
Bonjour perdinch,

écrit ta formule de cette façon

Code:
=SOMMEPROD(INDIRECT(J13))

Cordialement

EDIT : Bonjour Vgendron 🙂 pas de soucis mieux vaut 2 réponses que pas de réponse
 
Dernière édition:
Re : Variable zone nommée:syntaxe

merci de vos réponses car cela fonctionne très bien avec les zones nommées de mon exemple.

Cependant, dans mon cas réel, mes zones nommées utilisent la fonction DECALER et là ca ne marche plus car j'obtiens REF!
Avez vous une idée de ce qu'il convient de faire?
pour info, si vous modifiez la zone nommée indicateur1 avec cette formule:
=DECALER(Feuil1!$A$2;;;NBVAL(Feuil1!$A:$A)-1;1)
vous obtiendrez REF!

Cordialement,
 
Re : Variable zone nommée:syntaxe

Bonjour perdinch, vgendron 🙂 , Bonjour Jocelyn 🙂

Il me semble que l'utilisation de la fonction DECALER dans une plage nommée interdise l'utilisation de INDIRECT pour s'y référer.

Dans ton exemple, on peux créer une zone "Plage"
=DECALER(Feuil1!$A$2;;EQUIV(Feuil1!$J$13;Feuil1!$A$1:$G$1;0)-1;NBVAL(Feuil1!$A:$A)-1;1)
Qui permet de la déplacer suivant la valeur de $J$13.
Ensuite plus besoin d' INDIRECT dans les formules Exemple
=SOMMEPROD(Plage)

Cordialement
 

Pièces jointes

Re : Variable zone nommée:syntaxe

Merci de votre réponse qui marche bien.
cependant, pouvez vous m'aider à intégrer votre formule EQUIV pour mon cas réel par VBA (j'ai essayé en vain), la macro balaye plusieurs classeurs si leur nom commence par "magasin" pour la ligne en gras, et dont voici le code:

la macro crée pour chaque colonne de chaque onglet si son nom commence par "magasin" des zones nommées

Sub Creation_Zones_Nommees_mag()


Dim c As Range
Dim feuill As Worksheet


For Each feuill In ActiveWorkbook.Worksheets
If feuill.Name Like "magasin*" Then
feuill.Select

For Each c In Range([A1], [IV1].End(xlToLeft))
If Not IsEmpty(c.Offset(1, 0)) Then

ActiveWorkbook.Names.Add Name:=feuill.Name & "_" & c, RefersTo:= _
"=OFFSET(" & c.Address & ",1,,COUNTA(" & c.EntireColumn.Address & ")-1)"



End If
Next
End If
Next feuill
End Sub

cordialement,
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Autres Code VBA
Réponses
11
Affichages
469
  • Question Question
XL 2016 liste
Réponses
10
Affichages
386
Retour