Répéter des formules avec coordonnées mise a jour
Bonjour a tous,
Je me trouve aujourd’hui dans une impasse total et j’espère pouvoir trouve une solution grâce a vous, je vous expose mon problème pas si simple a expliquer:
Le décors:
Je générer des facture grâce a des variables qui lues par mon programme génère les valeur approprié collecté dans la base de donnés.
J'ai dans le gestionnaire de nom une zone qui est répété plusieurs fois sur la feuille pour chaque dates.
Mon problème:
J'ai dus utiliser un tas de formules afin de manier les valeurs collecté par les variable et avoir ce que je veux.
Le problème est que au moment de la répétition les formules sont déplaces et ne se mettent pas a jour:
exemple simple:
J'ai ma variable en A1 et je l'appel en B1 en faisant "=A1"
Cela fonctionne pour la première ligne
Mais quand on répète la ligne a l'aide de la zone du gestionnaire de nom “Details_MultiplesLines_Invoice”,
Nous sommes dorénavant en B2 et se n'est plus A1 qui faut appeler en B2 mais A2 avec un "=A2" hors la formule reste "=A1"...
En réalité les formules sont bien plus complexe que cela mais c'est la même problématique, existe t-il une solution selon vous? peut être n'ai je pas été assez clair ?
En pièce jointe le fichier excel bien que pour tester le répétition il faut mon logiciel...
Je précise que je ne peut pas utiliser de macros...
merci d'avance pour votre temps
Bonjour
Sur ton fichier, “Details_MultiplesLines_Invoice”, renvoie une valeur d'erreur et qui plus est, une référence circulaire. Je ne peux donc rien en tirer.
Cordialement
L'erreur est généré du fait que je m'apuis plusieurs fois sur la meme cellule avec en autre des "subtitute" pour la corriger afin que les données arrivent avec une forme convenable, cela ne m'empeche pas de travailler dessus mais par curiosité en quoi es-ce bloquant pour vous ?
Néanmoins théoriquement y a t-il moyen a l'aide d'un autre gestionnaire de nom qui aurai le meme format que "detail_multiples_lines" de faire en sorte que les formule se mettent a jour? ou par un autre moyen? Cela vous parait il possible théoriquement?
Merci pour votre temps
Ps: le gros des formules est caché dans les colonnes de K à Q qui ont pour largeur "0"
Bonjour,
On ne comprend pas grand chose à ton fichier et tu n'expliques pas ce que tu veux.
Cependant si on s'en tient à :
J'ai ma variable en A1 et je l'appel en B1 en faisant "=A1"
Cela fonctionne pour la première ligne
Mais quand on répète la ligne a l'aide de la zone du gestionnaire de nom “Details_MultiplesLines_Invoice”,
Nous sommes dorénavant en B2 et se n'est plus A1 qui faut appeler en B2 mais A2 avec un "=A2" hors la formule reste "=A1"...
Quand tu utilises un nom dans une formule ça correspond à une référence absolue. C'est normal qu'elle n'évolue pas lors d'une recopie incrémentée.
Si c'est ça ton pb regarde plutôt avec une formule dans ton nom avec Decaler(). Tu pourras faire varier les offsets ligne et colonne avec les fonction ligne() et colonne() qui retournent les n° de ligne et colonne où est inscrite la formule.
eric
Merci eric pour ta réponse.
J'ai essayer d'utiliser la fonction décaler dans le nom mais sans succès et je ne vois pas comment l'associer avec ligne() et colonne() pour obtenir ce que je veux.
Pourrai tu m'expliquer plus en détail, s'il te plait, excel n'est pas mon outil de prédilection, cela ne t'aura pas échappé
Merci d'avance
Pour t'expliquer plus en détail il en faudrait plus des détails justement.
Du style : si ma formule est en ligne 2 je veux que mon nom me retourne la plage C5:G5.
Si elle est en ligne 3 je voudrais que ....
etc
Mettre 3 exemples pour bien voir la régularité et si c'est faisable.
Et avant essaie avec une plage (non nommée) relative, voir si ce n'est tout simplement pas ça ton problème.
eric
Salut,
Je vais essayer d’être clair
La plage a répéter est de A19:R30
première répétition:
Si ma formule est en ligne 19 alors en ligne 31
Si ma formule est en ligne 20 alors en ligne 32
Si ma formule est en ligne 21 alors en ligne 33
Jusqu’a ma formule est en ligne 30 alors en ligne 42
ce qui donne A19:R30 => A31:R42(decalage de 12)
deuxième répétition:
Si ma formule est en ligne 19 alors en ligne 43
Si ma formule est en ligne 20 alors en ligne 44
Si ma formule est en ligne 21 alors en ligne 45
Jusqu’à ma formule est en ligne 30 alors en ligne 54
ce qui donne A19:R30 => A43:R54(décalage implémenté de 12 )
troisième répétition:(attention saut de page car 3 répétition par page et perte de proportionnalité par rapport au 3 premières répétitions(le décalage ne se fait donc plus de 12 mais de 34 d'un coup))
Si ma formule est en ligne 19 alors en ligne 90
Si ma formule est en ligne 20 alors en ligne 91
Si ma formule est en ligne 21 alors en ligne 92
ce qui donne A19:R30 => A90:R101(décalage implémente de 34)
Quatrième répétition:
donne A19:R30 => A102:R113(décalage implémenté de 12 )
cinquième répétition:
donne A19:R30 => A114:R125(décalage implémenté de 12)
sixième répétition : (attention saut de page car 3 répétition par page et perte de proportionnalité par rapport au 3 premières répétitions (le décalage ne se fait donc plus de 12 mais de 34 d'un coup))
donne A19:R30 => A161:R172(décalage implémenté de 34)
etc.
En résumé:
2 répétition d'un décalage implémenté de 12, espacé a chaque saut de page d'un décalage implémenté de 34 soit 12+12+34+12+12+34+12+12+34.....
Je joint un ficher excel ou ma facture est répété sur plusieurs page avec les zones de répétitions coloriés pour avoir un rendu graphique ça ne respecte pas les dimension car je n'ai pas réussi a copier coller les hauteurs de lignes ce qui fait que ça prends plus de place mais les numéros de ligne y sont bien respectés.
Merci!
Bonjour,
désolé, mais je ne comprend rien à tes explications. Mets les plages concernées à chaque fois.
Si ma formule est en ligne 19 alors en ligne 31ne veut rien dire pour moi.
J'ai l'impression que tu donnes les n° de lignes de tes blocs. C'est les n° de ligne d'excel qu'il faut. Ex :
- 1ère ligne : Si ma formule (qui utilise le nom) est en ligne 19, alors le nom retourne A19:R30
- 2nde ligne : Si ma formule (qui utilise le nom) est en ligne 20, alors le nom retourne A20:R31
- 1ère rupture 1ère ligne : Si ma formule (qui utilise le nom) est en ligne 50, alors le nom retourne ???
- 1ère rupture 2nde ligne : Si ma formule (qui utilise le nom) est en ligne 50, alors le nom retourne ???
- 3ème rupture ....
Ci-joint un exemple de nom dynamique, et un peu de lecture :
Nommer une Plage Dynamique : http://www.mdf-xlpages.com/modules/smartsection/item.php?itemid=64
Et règle ton problème de référence circulaire d'abord. Ici ça montre clairement une erreur, un manque de logique, et non une utilisation volontaire de cette possibilité. Tu ne peux pas en A19 (par exemple) utiliser une formule qui utilise la plage A19:R30
eric