Re : modifier mise en forme
onjour
Quelques explications au sujet de la formule matricielle dans le fichier précédent.
SI(EST.PAIR(LIGNE());
SUBSTITUE(STXT(lignedécalée;CHERCHE("dwg";lignedécalée);9^9);".dwg";"");
GAUCHE(STXT(lignedécalée;MAX(SI(STXT(lignedécalée;LIGNE(INDIRECT("1:"&NBCAR(lignedécalée)));1)="\";LIGNE(INDIRECT("1:"&NBCAR(lignedécalée)))))+1;9^9);NBCAR(STXT(lignedécalée;MAX(SI(STXT(lignedécalée;LIGNE(INDIRECT("1:"&NBCAR(lignedécalée)));1)="\";LIGNE(INDIRECT("1:"&NBCAR(lignedécalée)))))+1;9^9))-4))
SI(EST.PAIR(LIGNE()) permet de renvoyer, soit, pour les lignes paires, le résultat de la partie rouge de la formule ci-dessus, soit, pour les lignes impaires, le résultat de la partie bleue.
Lignedécalée =DECALER(Feuil1!$A$1;ENT((LIGNE()-13)/2)+14; ) renvoie en C15 et C16 le contenu de A15, en C17 et C18 le contenu de A16, en C19 et C20 le contenu de A17 et ainsi de suite.
En ligne 15, donc impaire, on a le résultat de la partie bleue de la formule ci-dessus, avec lignedécalée=A15.
LIGNE(INDIRECT("1:"&NBCAR(lignedécalée))) en matriciel donne la série de nombre {1;2;3;4;....;NBCAR(lignedécalée)} avec NBCAR le nombre de caractères de lignedécalée
STXT(lignedécalée;LIGNE(INDIRECT("1:"&NBCAR(lignedécalée)));1) donne la liste des caractères de lignedécalée {C;:;\;.....}
SI(STXT(lignedécalée;LIGNE(INDIRECT("1:"&NBCAR(lignedécalée)));1)="\";LIGNE(INDIRECT("1:"&NBCAR(lignedécalée)) renvoie la position des \ dans lignedécalée à cause du test SI(......="\";.....
MAX(SI(STXT(lignedécalée;LIGNE(INDIRECT("1:"&NBCAR(lignedécalée)));1)="\";LIGNE(INDIRECT("1:"&NBCAR(lignedécalée))))) renvoie la position du dernier \
STXT(lignedécalée;MAX(SI(STXT(lignedécalée;LIGNE(INDIRECT("1:"&NBCAR(lignedécalée)));1)="\";LIGNE(INDIRECT("1:"&NBCAR(lignedécalée)))))+1;9^9) renvoie le texte après le dernier \
La partie en bleue renvoie le texte après le dernier \ sans les 4 derniers caractères (à cause du -4 à la fin).
On peut faire un tout petit peu plus court avec (Cf. fichier en pièce jointe)
STXT(lignedécalée;MAX(SI(STXT(lignedécalée;LIGNE(INDIRECT("1:"&NBCAR(lignedécalée)));1)="\";LIGNE(INDIRECT("1:"&NBCAR(lignedécalée)))))+1;NBCAR(STXT(lignedécalée;MAX(SI(STXT(lignedécalée;LIGNE(INDIRECT("1:"&NBCAR(lignedécalée)));1)="\";LIGNE(INDIRECT("1:"&NBCAR(lignedécalée)))))+1;9^9))-4)
En ligne 16, donc paire (lignedécalée est toujours égal à A15) on a le résultat de la partie rouge de la formule ci-dessus
CHERCHE("dwg";lignedécalée) donne la position du dwg au milieu de lignedécalé
STXT(lignedécalée;CHERCHE("dwg";lignedécalée);9^9) renvoie tout le texte à partir de ce dwg du milieu
SUBSTITUE(STXT(lignedécalée;CHERCHE("dwg";lignedécalée);9^9);".dwg";"") efface le .dwg dans le texte donné par le STXT ci-dessus.
@ plus