Bonjour,
J'ai un tableau qui contient deux feuilles Excel :
- la première est alimentée quotidiennement et automatiquement par une macro (en cours de création). Le nombre de lignes augmente donc de jour en jour. Je prévois, pour la fin de l'année d'avoir 15000 lignes. Les colonnes vont de A à AC et sont fixes.
- la deuxième feuille reprend les données de la première (colonnes A à AC), puis 7 colonnes (AD à AJ) avec des fonctions plus ou moins complexes.
A l'heure actuelle, j'ai fait un copier-coller de la feuille 1 vers la feuille 2 de A2 à AC 15000. Pour les fonctions des colonnes AD à AJ, j'ai fait un copier-coller de la ligne 2 à la ligne 15000.
Le problème, vous l'aurez compris, est que c'est extrêmement long !!
Je souhaite donc utiliser la fonction DECALER.
Pour ce faire, je veux créer, dans la feuille 1, une plage définie, par le biais du gestionnaire de noms. Ma formule que j'entre dans le gestionnaire de noms, "Fait référence à", est la suivante :
=DECALER(Feuille1!$A$2;15000;0;NBVAL(Feuille1!$A:$A)-1;27).
Mais, il ne se passe rien. Je suppose que j'ai dû faire une erreur.
Je sollicite donc votre aide sur ce point.
Ensuite, je souhaite rationnaliser les formules des colonnes AD à AI, peut-être grâce à cette plage de données. Voici les formules :
- exemple cellule AD2 : =SOMMEPROD(($A$2:$A$15000=$A2)*($AI$2:$AI$15000=$AI2);($R$2:$R$15000))
- exemple cellule AE : = AD2
- exemple cellule AF2 : =SI(AE2=0;"NON";AE2)
- exemple cellule AG2 : =CNUM(F2)*1
- exemple cellule AH2 : =SI(NBCAR(AG2)=6;"0"&AG2;SI(NBCAR(AG2)=8;GAUCHE("0"&AG2;8);SI(NBCAR(AG2)=15;GAUCHE(AG2;13);AG2)))
- exemple cellule AI2 : =SI(W2="PS ";GAUCHE(AH2;8);SI(W2="ETA";DROITE(AH2;8);SI(W2="DES";DROITE(AH2;14);SI(W2="TOC";DROITE(AH2;13);SI(W2="ASS";DROITE(AH2;13))))))
- exemple cellule AJ2 : =SI(X2<>"";"BON";SI(NB.JOURS.OUVRES(A2;AUJOURDHUI())>4;"A RELANCER"))
Les formules fonctionnent très bien, mais je veux absolument réduire le temps de traitement, car Excel met un temps fou à calculer, car j'ai fait un copier-coller sur 15000 lignes.
Je suppose que la fonction DECALER peut m'aider aussi, mais je ne vois pas du tout comment. Faut-il créer une plage dynamique pour chacune des colonnes que j'utilise dans mes formules ??
Je vous remercie d'avance pour votre aide.
Cordialement.
J'ai un tableau qui contient deux feuilles Excel :
- la première est alimentée quotidiennement et automatiquement par une macro (en cours de création). Le nombre de lignes augmente donc de jour en jour. Je prévois, pour la fin de l'année d'avoir 15000 lignes. Les colonnes vont de A à AC et sont fixes.
- la deuxième feuille reprend les données de la première (colonnes A à AC), puis 7 colonnes (AD à AJ) avec des fonctions plus ou moins complexes.
A l'heure actuelle, j'ai fait un copier-coller de la feuille 1 vers la feuille 2 de A2 à AC 15000. Pour les fonctions des colonnes AD à AJ, j'ai fait un copier-coller de la ligne 2 à la ligne 15000.
Le problème, vous l'aurez compris, est que c'est extrêmement long !!
Je souhaite donc utiliser la fonction DECALER.
Pour ce faire, je veux créer, dans la feuille 1, une plage définie, par le biais du gestionnaire de noms. Ma formule que j'entre dans le gestionnaire de noms, "Fait référence à", est la suivante :
=DECALER(Feuille1!$A$2;15000;0;NBVAL(Feuille1!$A:$A)-1;27).
Mais, il ne se passe rien. Je suppose que j'ai dû faire une erreur.
Je sollicite donc votre aide sur ce point.
Ensuite, je souhaite rationnaliser les formules des colonnes AD à AI, peut-être grâce à cette plage de données. Voici les formules :
- exemple cellule AD2 : =SOMMEPROD(($A$2:$A$15000=$A2)*($AI$2:$AI$15000=$AI2);($R$2:$R$15000))
- exemple cellule AE : = AD2
- exemple cellule AF2 : =SI(AE2=0;"NON";AE2)
- exemple cellule AG2 : =CNUM(F2)*1
- exemple cellule AH2 : =SI(NBCAR(AG2)=6;"0"&AG2;SI(NBCAR(AG2)=8;GAUCHE("0"&AG2;8);SI(NBCAR(AG2)=15;GAUCHE(AG2;13);AG2)))
- exemple cellule AI2 : =SI(W2="PS ";GAUCHE(AH2;8);SI(W2="ETA";DROITE(AH2;8);SI(W2="DES";DROITE(AH2;14);SI(W2="TOC";DROITE(AH2;13);SI(W2="ASS";DROITE(AH2;13))))))
- exemple cellule AJ2 : =SI(X2<>"";"BON";SI(NB.JOURS.OUVRES(A2;AUJOURDHUI())>4;"A RELANCER"))
Les formules fonctionnent très bien, mais je veux absolument réduire le temps de traitement, car Excel met un temps fou à calculer, car j'ai fait un copier-coller sur 15000 lignes.
Je suppose que la fonction DECALER peut m'aider aussi, mais je ne vois pas du tout comment. Faut-il créer une plage dynamique pour chacune des colonnes que j'utilise dans mes formules ??
Je vous remercie d'avance pour votre aide.
Cordialement.