XL 2016 Gestionnaire de Nom Fonction DECALER inversé

spawn78

XLDnaute Nouveau
Bonjour,

J'ai construis un fichier excel avec un Useform pour remplir une base de donnée. Cette base est alimenté en insérant une ligne (à la première ligne du tableau et non à la dernière ligne vide) à chaque fois qu'une information est saisie. De ce côté ça fonctionne bien.
Dans un second onglet j'ai tableau récapitulatif où j'ai utilisé la formule SOMMEPROD pour récupérer des informations de ma base de donnée. Pour utiliser la fonction SOMMEPROD il faut nommer les champs, j'ai procédé comme ceci =DECALER(BD!$B$5;;;;NBVAL(BD!$B$5:$B$2000)) cependant dès que j'insère une ligne avec mon Useforme les champs se décalent d'une ligne donc je me retrouve avec :

Avant insertion : =DECALER(BD!$B$5;;;;NBVAL(BD!$B$5:$B$2000))
Après insertion : =DECALER(BD!$B$6;;;;NBVAL(BD!$B$6:$B$2001))

Avez vous idée à me proposer ?

Merci pour votre aide

Je peux vous fournir le fichier Excel si besoin

Avec mes remerciements
 

spawn78

XLDnaute Nouveau
Bonjour le Forum,
Bonjour spawn78,

A tester peut être

=DECALER(indirect("BD!$B$5");;;;NBVAL(BD!$B$5:$B$2000))

Cordialement

Bonjour Jocelyn,

Merci pour ton retour rapide, je viens de tester ta proposition sur la partie "indirect" c'est ok la cellule se fige bien, en revanche sur la partie NBVAL j'obtiens ceci en insérant une ligne :

=DECALER(INDIRECT("BD!$B$5");;;;NBVAL(BD!$B$6:$B$2001))

Si tu as une autre idée je suis preneur,

Merci Beaucoup
 

Jocelyn

XLDnaute Barbatruc
re,

sur la partie NBVAL je n'ais pas fait attention car j'ai tendance à l'écrire comme cela : nbval($B:$B)-le/les libéllés

par rapport a ton écriture je pense que tu peux tester

NBVAL(indirect("BD!$B$5:$B$2000"))

ou

NBVAL(indirect("BD!$B$5:"&$B$2000)) qui laisse la plage s'agrandir au dela de 2000 sans modifier la cellule de démarrage

Cordialement
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 812
dernier inscrit
abdouami