Microsoft 365 SOMMEPROD et SOMME.SI avec des tableaux - Eviter erreur #REF! via VBA ?

bluesky12000

XLDnaute Junior
Bonsoir à tous,

j'ai 8 tableaux (Jour1_client à Jour8_client) dans une feuille de calcul avec en dessous de ces tableaux plusieurs calculs de totaux (ex: "Prix Total HT) basés sur des critères (ex: trouver "Lettonie" dans la colonne Pays)

Voici un exemple de formule pour mon total qui utilise SOMMEPROD et SOMME.SI :

Code:
=SUMPRODUCT(SUMIF(Jour1_client[Pays]:Jour2_client[Pays]:Jour3_client[Pays]:Jour4_client[Pays]:Jour5_client[Pays]:Jour6_client[Pays]:Jour7_client[Pays]:Jour8_client[Pays];"Lettonie";Jour1_client[Prix total HT]:Jour2_client[Prix total HT]:Jour3_client[Prix total HT]:Jour4_client[Prix total HT]:Jour5_client[Prix total HT]:Jour6_client[Prix total HT]:Jour7_client[Prix total HT]:Jour8_client[Prix total HT]))

Tout fonctionne très bien mais si jamais je dois supprimer un tableau (Je n'ai plus 8 jours mais 7 jours), ma formule n'est plus bonne puisque je me retrouve avec des REF à place du nom du tableau et du nom de la colonne.

Comme j'ai environ 10 formules qui utilisent SOMMEPROD et SOMME.SI je dois tout retaper à chaque fois que j'enlève ou que j'ajoute un tableau.

Comment éviter cela? Est-ce que du VBA pourrait compter le nombre de tableau dans la feuille et remplir les formules automatiquement selon le bon nombre de tableaux?

Merci beaucoup pour votre aide :)
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
Ils sont bien les uns en dessous des autres vos tableaux n'est-ce pas, alors vous devriez pouvoir indiquer seulement le 1er et le dernier, étant donné qu'avec ces ':' 'il prend de toute façon tout ce qu'il y a entre !
Pourquoi ne pouvez vous faire un seul tableau avec le jour indiqué dans une colonne supplémentaire ?
En VBA le nombre de tableaux d'une feuille représentée par un Worksheet Wsh c'est Wsh.ListObjects.Count
 
Dernière édition:

bluesky12000

XLDnaute Junior
Bonjour Dranreb,

Oui tous mes tableaux sont bien les uns en dessous des autres, je suis obligé, car il y a des titres avec des dates automatiques entre les tableaux.

Merci effectivement je ne savais pas que cette écriture donnait la même chose, car la zone rectangulaire colorée ne montrait que ces deux tableaux, mais le total prend bien en compte tous les tableaux 🥳 :

Code:
=SUMPRODUCT(SUMIF(Jour1_client[Pays]:Jour8_client[Pays];"Lettonie";Jour1_client[Prix total HT]:Jour8_client[Prix total HT]))

Merci je vais essayer de le convertir en VBA pour m'entrainer

Bonne journée
 

Discussions similaires

Statistiques des forums

Discussions
314 738
Messages
2 112 340
Membres
111 514
dernier inscrit
N.Jnin