Formules décalées suite à MAJ de l'onglet source

FR334770 -  
DjiDji59430 Messages postés 4253 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous, et merci pour les précédents coups de main !

Un nouveau problème (le dernier ?) sur mon projet après avoir déjà contourné avec votre aide pas mal d'obstacles. Donc voici : 1 classeur, 3 feuilles.

Feuille 1 "Projects" : des données se mettent à jour via une connexion à des données externes (le programme accessible aux utilisateurs pour entrer leurs données. Puis export du contenu vers le fichier excel chaque nuit.
Actuellement 700 lignes, env. 50 colonnes.
La feuille grossit chaque jour par l'ajout de quelques lignes, les colonnes n'évoluent pas. Elle est exploitée via la feuille 2, puisqu'effacée et reconstituée chaque nuit. Donc pas de mise en forme ni de tableau basés sur cette feuille 1

Feuille 2 : afin de pouvoir mettre en forme mes données correctement je récupère les données de la feuille 1 ainsi : =SI(ESTERREUR(PROJECTS!A1<>"");"";SI(PROJECTS!A1<>"";PROJECTS!A1;""))
La formule est étirée sur plusieurs milliers de lignes pour anticiper l'évolution de la feuille 1, et une jauge sur la feuille 3 m'indique le taux de remplissage afin que le jour venu j'étire de nouveau mes formules.

Feuille 3 : grpahiques variés basés sur des TCD issus des données de la feuille 2.

Bonne nouvelle : tout fonctionne. Enfin presque :)

Mauvaise nouvelle : à chaque mise à jour de la Feuille 1, ma formule reste inchangée en ligne 1 (parfait)
=SI(ESTERREUR(PROJECTS!A1<>"");"";SI(PROJECTS!A1<>"";PROJECTS!A1;""))

mais dès la ligne 2 elle devient :
=SI(ESTERREUR(PROJECTS!A702<>"");"";SI(PROJECTS!A702<>"";PROJECTS!A702;""))

et donc bien évidemment elle ne me retourne....plus rien. Et donc mes graphiques en Feuille 3 se retrouvent désespérément plats et vides :)

Question svp : comment faire pour que mes formules en Feuille 2 soient figées, et restent quoi qu'il arrive à la Feuille 1 dans l'ordre A1,A2,A3 etc...


Désolé pour la longueur, je voulais être le plus précis possible dans ma demande.

Merci d'avance à tous

FR334770






Configuration: Windows / Edge 96.0.1054.62
A voir également:

4 réponses

PHILOU10120 Messages postés 6445 Date d'inscription   Statut Contributeur Dernière intervention   824
 
Bonjour FR334770

Pourquoi cette formule si compliquée vous extrayez des infos vous ne prenez pas tout le contenu de la cellule
Si vous voulez incrémenter les lignes bien mettre ligne() à la place de 1
1
FR334770
 
Parfait merci ! Et j'ai gagné en poids de fichier avec votre formule vs la mienne.
0
yclik Messages postés 3874 Date d'inscription   Statut Membre Dernière intervention   1 563
 
Bonjour
si la formule est en première ligne de la feuille 2;
tester en remplaçant
PROJECTS!A1
par
INDIRECT("PROJECTS!A"&ligne())


si en 2éme ligne
INDIRECT("PROJECTS!A"&ligne()-1)
0
FR334770
 
Merci yclick
le souci est pour étirer la formule sur les colonnes de A à BX
Je dois changer manuellement A puis B puis C etc... jusqu'à BX ?
Si oui c'est pas grave dans la mesure où je ne le ferai qu'une fois et que l'étirement de la formule sur les 1500 lignes semble lui correctement fonctionner.
0
DjiDji59430 Messages postés 4253 Date d'inscription   Statut Membre Dernière intervention   700
 
Bonjour à tous,

meme procédé (rechercher/remplacer) , mais

PROJECTS!A par PROJECTS!$A$
et ce pour chaque colonne

Crdlmt
0
FR334770
 
Merci DjiDji59430
Mais sauf erreur encadrer avec des $ va m'empêcher d'étirer sur les 1500 lignes ou plus
0
DjiDji59430 Messages postés 4253 Date d'inscription   Statut Membre Dernière intervention   700 > FR334770
 
Actuellement tu as une feuille modele avec la formule etirée sur 1500 lignes et qui ne fonctionne pas .
Apres remplacer, tu auras une feuille modele qui fonctionnera
0
PHILOU10120 Messages postés 6445 Date d'inscription   Statut Contributeur Dernière intervention   824
 
Bonjours FR334770

Une idée avec la fonction ADRESSE(...)

=INDIRECT(ADRESSE(LIGNE();COLONNE();3;1;"Projects");1)

Il faut juste faire correspondre les lignes en ajoutant ou retirant la quantité de ligne ou de colonne si nécessaire.
0
FR334770
 
Merci Philou, je garde cette solution sous le coude

A priori ceci semble fonctionner pour étirer de A à BX sans modifier chaque formule à la main sur la ligne 1

=SI(ESTERREUR(INDIRECT(CONCATENER("PROJECTS!";GAUCHE(ADRESSE(1;COLONNE();4);NBCAR(ADRESSE(1;COLONNE();4))-1))&LIGNE())<>"");"";SI(INDIRECT(CONCATENER("PROJECTS!";GAUCHE(ADRESSE(1;COLONNE();4);NBCAR(ADRESSE(1;COLONNE();4))-1))&LIGNE())<>"";INDIRECT(CONCATENER("PROJECTS!";GAUCHE(ADRESSE(1;COLONNE();4);NBCAR(ADRESSE(1;COLONNE();4))-1))&LIGNE());""))
0