XL 2019 Décaler titre ou référence automatiquement

ST4423

XLDnaute Nouveau
Bonjour à tous,

Je vais essayer d'illustrer mon problème de façon clair (Mais c'est pas si simple 🙃) :

Sur un document en cours de réalisation je me retrouve avec la forme suivante (à peu de chose près) :

1681912082081.png


Dans la colonne "Repère ARM" je copie sur chaque ligne le repère de la ligne en bleu. Pour éviter de tous retaper et limiter les erreurs j'ai donc mis une formule qui recopie ce texte sur chaque ligne. Le problème c'est que quand je copie une nouvelle section la formule ne se décale pas et je dois toujours manuellement la repositionner :

1681912214502.png


Ma question est donc la suivante : Existe t-il une solution pour dire à Excel de décaler automatiquement la référence jusqu'à la prochaine ligne bleu ?

Hypothèse personnelle : J'ai pensé à une fonction =SI avec un caractère tel que "*" qui serait marqué sur chaque ligne bleu en colonne "Indice" (Je pourrais masquer celui-ci en le mettant de la même couleur que le fond) et donc indiquer à Excel de recopier le titre tant que le caractère "*" n'apparait pas :

1681912923596.png


Mais il faut que je puisse indiquer à Excel que si la valeur est fausse il doit décaler la référence et c'est là donc que je bloque.

Je suis assez curieux de savoir ce que vous en pensez, si il y a méthode totalement différente ou si vous connaissez la formule qui me manque pour compléter mon hypothèse, je suis preneur.

Merci d'avance
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Des images ne servent pas à grand chose et nous oblige à recopier ce que l'on voit.
Si tu annexes un fichier tu auras certainement des réponses plus représentatives.
A tout hasard, un début de piste, j'ai déplacé le mot "Généralité"

JHA
 

Pièces jointes

  • Classeur ST4423.xlsx
    9.7 KB · Affichages: 3

ST4423

XLDnaute Nouveau
Bonjour JHA,

Effectivement ça pourrait simplifier l'échange, je joint donc le fichier.

Par contre il ne s'agit que d'une copie simplifié du document original que je ne peux pas diffuser sur un forum.
Du coup j'ai compléter un peu le document par rapport aux captures d'écrans car il manquait des éléments pour comprendre la structure de celui-ci.

Tu verras que je ne peux malheureusement pas mettre en place cette solution sur le document puisque les lignes de la colonne désignation on pour la plupart des libellés. Je dois aussi garder le texte sur les lignes grises dans cette même colonnes.
 

Pièces jointes

  • ST4423.xlsx
    12 KB · Affichages: 1

JHA

XLDnaute Barbatruc
Bonjour à tous,

Ci-joint une formule matricielle un peu plus élaborée en "B2"
VB:
=SI(A2<>"";DECALER($E$1;PETITE.VALEUR(SI(GAUCHE($E$2:$E2;3)="ARM";LIGNE($E$2:$E2)-1);NB.SI($E$2:$E2;"ARM*")););"")
copier vers le bas

JHA
 

Pièces jointes

  • ST4423.xlsx
    12.2 KB · Affichages: 4

ST4423

XLDnaute Nouveau
Rebonjour,

Merci pour ce retour. Sur ton document ça fonctionne comme je le souhaiterais !
Par contre, encore une fois, comme j'ai simplifié mon exemple il manquait de détails et je n'arrive pas à faire évoluer la formule pour la rendre compatible avec mon tableau final.

J'ai remis un document joint en essayant d'être suffisamment précis cette fois. 😣

Le problème que j'ai c'est que le texte dans les lignes en bleu en colonne "L" est écrit différemment de ce que j'avais mit dans mon exemple, c'est un texte avec un repère de 15 caractère (XX X XXX - ARM) que je cherche à recopier dans la colonne I.
Je ne souhaite recopier que les 15 caractères du repère (XX X XXX - ARM). Donc à la base j'utilisais un fonction =DROITE(réf;15)
Le truc c'est que je n'arrive pas à prendre seulement ce repère sans casser ta formule. J'avoue ne comprendre que vaguement comment elle fonctionne. J'ai tenté de remplacer la formule GAUCHE par une DROITE, mais ça n'a pas l'air aussi simple . 😞

Capture.PNG

Merci d'avance,
 

Pièces jointes

  • ST4423 - V2.xlsx
    16.8 KB · Affichages: 2

JHA

XLDnaute Barbatruc
Bonjour à tous,

il suffit d'ajouter la fonction droite avant decaler()
j'ai enlevé la fonction gauche() et remplacer la fonction cherche()
VB:
=SI(H2<>"";DROITE(DECALER($L$1;PETITE.VALEUR(SI(ESTNUM(CHERCHE("ARM";$L$2:$L2));LIGNE($L$2:$L2)-1);NB.SI($L$2:$L2;"*ARM*")););15);"")

JHA
 

Pièces jointes

  • ST4423 - V2.xlsx
    16.5 KB · Affichages: 2

ST4423

XLDnaute Nouveau
Re,

Déjà, merci ! Parce qu'on touche au bout. Mais j'ai un autre problème et j'ai mis du temps à comprendre d'où il provenait. :confused:

Il y a un problème car j'ai des occurrences du terme "arm" qui surviennent parfois dans la colonne L. Sur ce nouveau fichier on peut voir que la formule ne marche pas car les lignes 3 et 4 on ce terme "ARM". Il faudrait pouvoir remplacer la recherche par quelque chose de plus précis, idéalement "- ARM". Je pensais qu'en remplaçant dans la formule les "ARM" par "- ARM" ça pourrait marcher mais non.

Une idée ?
 

Pièces jointes

  • ST4423 - V4.xlsx
    17 KB · Affichages: 1

ST4423

XLDnaute Nouveau
Re,

Je viens de comprendre que je n'arrivais pas à le faire car je n'appliquais pas le Ctrl+Maj+Entrée qui permet de mettre une formule sous forme matricielle. :rolleyes:

Du coup effectivement en remplaçant "ARM" par "- ARM" dans la formule cela fonctionne ! 😁

Merci pour tes réponses et ta patience JHA.
 

Discussions similaires

Statistiques des forums

Discussions
312 111
Messages
2 085 407
Membres
102 884
dernier inscrit
Macarena