Eviter des calcules innutiles

Bonjour à tous, j'écris de nouveau car j'ai encore un problème qui me chagrine :

J'ai une bdd avec des articles qui rentrent et qui sortent par divers client, j'ai créé un historique ou les lignes m'informent sur les entrées, sorties, références de l'article et les noms des clients, jusque là pas de problème

Le tout est géré avec une douchette (un scaner) qui automatise le tout

mon problème est que si je veux à l'instant ou je scanne un client je veux obtenir les infos rapidement sur les prêts en cours

J'ai donc créé une formule avec des SOMMEPROD mais si je fais un tableau avec 10000 lignes ca devient vite très lourd, j'avais donc opté pour faire une boucle MAIS ma boucle était obligé de calculer les 10000 lignes une par une et de les comparer s'il y avait des prêts en cours

En gros sur 10000 lignes seulement 10 ou 20 m'intéressent, comment éviter les 10000 comparaisons ??

Ci joint un classeur pour exemple, j'ai volontairement retirer le vba car de toute façon ma méthode n'était pas convaincante

Grosso modo je souhaite afficher uniquement les lignes ou les valeurs supérieures à zéro apparaissent et le tout très rapidement (en vba ou non, peu importe)

Sur mon classeur, j'ai mis des MFC (c'est juste pour voir plus claire, si ca gène on peux les virer)

Merci pour ceux qui se pencheront sur mon problème

13jide-exemple.xlsm (17.19 Ko)

Bonsoir,

une solution basée sur un tcd

14jide-exemple.xlsm (15.48 Ko)

Cool ! Merci h2so4 ça à l'ai d'être pas mal, peux-tu m'expliquer comment tu as fait ? J'avoue ne pas maitriser les TCD et il vas falloir que je m'y mettre sérieusement

Si je change une valeur, j'ai l’impression que ça ne s'actualise pas et comment mettre à jour le tableau (rajout de client, valeur etc..) ?

merci

bonjour,

voici la procédure (excel 2010)

1) définir ton ensemble de données comme une table

2) sélectionner la table

3) insérer->tcd-> choisir table et nouvelle feuille

tu te retrouves sur la nouvelle feuille

4) choisir formule -> prendre champ calculé-> nom : "non rentré", formule "=sortie-entrée"-> ok

5) déplacer avec la souris le champ client vers filtre de rapport

6) mettre article dans les libellés de ligne

7) faire un clic-droit sur un article -> choisir filtrer-> ajouter filtre sur la valeur de "non rentré" "différent de " "0"

-> ton tcd est terminé

tu peux choisir le client via le bouton de sélection

en cas d'ajout de données dans ta table de données, tu peux actualiser ton TCD via le menu option du TCD

en annexe ton même fichier avec tes données définies en table.

Comme je dispose d'une version UK, je ne suis pas sûr de la dénomination des menus et options utilisés.

15jide-exemple.xlsm (260.00 Ko)

Merci pour les explications qui me parraissent très claires je vais étudier tout ça cet après-midi

Une dernière question, je souhaite pas la suite afficher le tout dans un userform; sera t'il possible d'actualiser le tcd via du vba, je pense que oui mais avant de me lancer je voudrais être certain que ca fonctionne?

Edit :

ActiveWorkbook.RefreshAll

pour actualiser avec du vba

bonjour,

oui c'est possible.

On s'est croisé dans les messages , je dirais dans la soirée si j'arrive à maitriser tout ça, encore merci !!

Tout est parfait je te remercie de m'avoir fait découvrir cet outil, la rapidité est incroyable !! MERCI !!

Rechercher des sujets similaires à "eviter calcules innutiles"