XL 2016 VBA - Action sur l'ensemble d'une feuille avec une Combobox

Heodrene

XLDnaute Occasionnel
Supporter XLD
Bonjour à tous,

Nouveaux défis pour les maitres ès Excel :)

J'ai une feuille Excel avec des tableaux contenant des tarifs.
J'aimerais via une combobox choisir entre afficher le montant HT ou TTC et que cela influe l'ensemble des données contenant un prix.

Dans ma réflexion, je pensais :
  • Créer une combobox ActiveX avec listés soit "HT" (pour le montant Hors Taxes), soit "TTC" (montant Toutes Taxes Comprises)
  • Dans l'algorithme, utiliser Case puis dans chaque Case une boucle parcourant ligne par ligne ma feuille et dès qu'il rencontre une valeur monétaire, appliquer une formule de calcul.
Sachant que les données sont stockées en réalité dans une autre feuille (le fichier ci-joint n'a plus cette liaison)
Sachant aussi que je ne suis pas fermé à toute autre suggestion, je fais peut-être fausse route.

Je rencontre déjà un tout premier problème : la création de la liste dans la combobox :( Rien ne s'affiche.

Merci pour votre aide,

Heodrene
 

Pièces jointes

  • HT_TTC.xlsm
    34.3 KB · Affichages: 33

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour Heodrene,

Une autre piste sans VBA:

Créer une feuille Nommée "Taxes" :
  • Y placer le tableau des taux de taxe (HT -> 100% ; TTC -> 110% - pour l'exemple, on a pris 10% de taxe par rapport au prix HT de la feuille "Source")

Sur la feuille "Destination":
  • mettre une combo-box de type contrôle de formulaire
  • dans son format de contrôle, indiquez pour la plage d'entrée: Taxes!$A$1:$A$2 et pour la cellule liée $A$1
  • Sélectionner la cellule B1 et nommer la avec le nom Taxe
  • saisir dans la cellule B1 la formule suivante : =INDEX(Taxes!B1:B2;A1)
  • sélectionner les ces colonnes C à T
  • tapez Ctrl+H (commande Remplacer)
  • Remplacer =Source par =taxe*Source
  • cliquez sur Remplacer tout

Attention: J'ai considéré que toutes les références à la feuille Source étaient relatives à des prix. Si ce n'est pas le cas, il faut corriger ces formules de la feuille "Destination" en ôtant les termes "=Taxe*".
 

Pièces jointes

  • Heodrene- HT_TTC- v1.xlsx
    29.7 KB · Affichages: 17

Heodrene

XLDnaute Occasionnel
Supporter XLD
Pas mal en effet…
.. Mais j'ai d'autres contraintes ! :)

La vraie question pour moi est d'automatiser et de simplifier au mieux.
Pourquoi ? Parce que j'ai un morceau de code qui génère un rapport financier automatiquement, que la feuille Excel que j'ai transmise ici n'est qu'une partie d'un classeur comprenant d'autres feuilles me servant à faire du reporting et qu'enfin… La manipulation doit simplifiée pour une personne totalement profane sur Excel (je clique, ca fait le travail).

Au demeurant, merci pour ta contribution ;)
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,

Tout d'abord il faut s'assurer qu'on part d'un tableau source incontestable donc un tableau source dont on soit certain qu'il soit toujours HT ou toujours TTC (HT étant de loin préférable). Quel est ce tableau ?

Ensuite, on recrée à chaque choix (TTC ou HT), une feuille qui sera le résultat souhaité (sachant que si on choisit HT, on aura la feuille de départ).
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re @Heodrene,

Un essai (basée sur ma première idée).
Pour le taux de taxe de l'option TTC, il faut modifier la constante TTC dans le code.

nota: avec mon raisonnement, la cellule E29 (par exemple) n'est pas affectée par le changement (HT/TTC) puisque la formule de E29 ne fait pas référence à la feuille Source.
 

Pièces jointes

  • Heodrene- HT_TTC-v2.xlsm
    41.5 KB · Affichages: 19
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir @Heodrene

Attention !
Je viens de me pencher à nouveau sur mes solutions V1 et V2 et toutes les deux sont incorrectes.
Voir le cas de la cellule D43 sur la feuille destination. Cette cellule ne doit pas ne doit pas faire l'objet d'une multiplication puisque sa formule fait référence à une cellule de la feuille Source qui n'est pas un prix.
Je refais donc une version V3 plus juste (du moins je l'espère).
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 104
Messages
2 085 349
Membres
102 869
dernier inscrit
radyreth