Variable zone nommée:syntaxe

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

  • Variable_zone_nommee.xls
    15.5 KB · Affichages: 27

Jocelyn

XLDnaute Barbatruc
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:

perdinch

XLDnaute Occasionnel
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,
 

Efgé

XLDnaute Barbatruc
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

  • Variable_zone_nommee(2).xls
    18.5 KB · Affichages: 22

perdinch

XLDnaute Occasionnel
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,
 

Discussions similaires

Réponses
4
Affichages
346

Statistiques des forums

Discussions
312 482
Messages
2 088 765
Membres
103 954
dernier inscrit
SirJah