Utilisation de la fonction DECALER

benadry

XLDnaute Occasionnel
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.
 

benadry

XLDnaute Occasionnel
Re : Utilisation de la fonction DECALER

Merci pour votre proposition.

Je joins le fichier : ce sera effectivement beaucoup plus clair.

Simplement une petite précision : ne tenez pas compte des "FAUX" de la colonne AI.
J'ai anonymisé les données et changé les données de la colonne W.

Merci d'avance pour votre aide.


Cordialement.
 

Pièces jointes

  • Classeur2.xlsx
    25.7 KB · Affichages: 46
  • Classeur2.xlsx
    25.7 KB · Affichages: 47
  • Classeur2.xlsx
    25.7 KB · Affichages: 44

benadry

XLDnaute Occasionnel
Re : Utilisation de la fonction DECALER

Merci beaucoup, ça me paraît très bien.

J'ai plusieurs questions :
- ne faut-il pas que je fasse la même chose pour chaque colonne de ma feuille "Total des indus non soldés" ?
- pour éviter de recopier les formules de la ligne 2 à la ligne 15000 des colonnes A à AJ de la feuille 2 (c'est surtout là mon problème), ne peut-on pas utiliser la fonction DECALER ? Par exemple, dans la colonne AD, au lieu d'indiquer "=SOMMEPROD(($A$2:$A$65000=$A2)*($AI$2:$AI$65000=$F2);($R$2:$R$65000))", il faudrait peut-êtremettre "=SOMMEPROD((Col_DateTrait=$A2)*($AI$2:$AI$65000=$F2);($R$2:$R$65000))" ou quelque chose de ce genre, en remplaçant AI et R par une autre plage de cellules ?

Merci d'avance pour votre réponse.

Cdlt.
 

benadry

XLDnaute Occasionnel
Re : Utilisation de la fonction DECALER

Re-,

Je demande peut-être quelque chose qui n'est pas possible.

Mais, pour faire simple j'alimente tous les jours les données de la feuille "Total des indus non soldés". Dans la feuille2, il y a des tas de formules qui descendent jusqu'à la ligne 15000 dans mon "vrai fichier" (ce qui n'est pas le cas pour l'exemple que je t'ai donné, pour permettre de mettre le fichier sur le forum).
Comme je l'ai indiqué dans mon premier message avec toutes mes formules, je voudrais éviter de faire des copier-coller de toutes les formules qui sont dans les colonnes A à AJ de la feuille2 jusqu'à la ligne 15000. Il faudrait qu'avec la fonction DECALER (ou une autre ou une combinaison ?), Excel ne fasse les calculs que jusqu'à la dernière ligne de données et pas jusqu'à la ligne 15000.
J'espère que c'est plus clair pour toi.

Merci pour ton aide en tout cas.

Cdlt.
 

Discussions similaires

Statistiques des forums

Discussions
312 211
Messages
2 086 298
Membres
103 171
dernier inscrit
clemm