Calcul de prix machine en fonction de choix (Programmation VBA)

antosic

XLDnaute Nouveau
Bonjour à tous,

Après 2 jours de travail acharné, je me tourne vers vous car je suis incapable de réaliser ce que je souhaite. Je suis effectivement débutant en matière de VBA et ce que je cherche à faire est trop compliqué pour moi, alors qu'il s'agit juste de formules d'addition toutes bêtes j'en suis conscient ... :confused:

Voici mon problème, je dispose d'un tableau avec différentes machines qui correspondent chacune à un prix (Tableau 1). Ces machines doivent être assemblées à d'autres machines pour fonctionner (Tableau 2). Et enfin il existe des accessoires possibles de rajouter sur celles-ci (Tableau 3). Dans l'outil VBA d'Excel j'ai mis en place une fenêtre qui apparaitrait à l'utilisateur afin de lui demander quelle type de machine il souhaite et avec quels accessoires (voir image jointe).

Prix machines.jpg

Mon problème est que je ne sais pas écrire le code qui va avec ... Je souhaites en fait qu'à la fin de la démarche, le prix global de la machine choisie apparaisse à l'utilisateur.

Dans le tableau 1, un seul prix serait sélectionné (case en rouge), dans le tableau 2 également (sauf pour le procédé 4 qui peut être rajouté, cf l'image jointe) et enfin dans le tableau 3 plusieurs prix pourraient être sélectionnés.

Le résultat final serait donc :
- Le prix globale, après calcul
- L'affiche du "coût temps" et les "OF de temps" en fonction de la machine choisis au début (case verte)

Je sollicite donc votre aide car je suis paumé ... Et je remercie d'avance celui qui sera assez sympa pour m'aider. :)

Je vous souhaites à tous une bonne soirée


Antonin.
 

Pièces jointes

  • Prix final .xlsm
    21.3 KB · Affichages: 83
C

Compte Supprimé 979

Guest
Re : Calcul de prix machine en fonction de choix (Programmation VBA)

Bonsoir Antosic et bienvenue sur ce forum

Tu trouveras ci-joint ton fichier avec une possibilité de code et les commentaires

A+
 

Pièces jointes

  • Antosic_Prix final .xlsm
    32.2 KB · Affichages: 111
  • Antosic_Prix final .xlsm
    32.2 KB · Affichages: 122
  • Antosic_Prix final .xlsm
    32.2 KB · Affichages: 108

antosic

XLDnaute Nouveau
Re : Calcul de prix machine en fonction de choix (Programmation VBA)

Bonjour BrunoM45,

Dans un premier temps je te remercie pour ton travail et pour ton temps c'est exactement ce que je voulais.

J'ai quand même 1 ou 2 remarques, si tu as encore le temps bien sur, et la volonté de m'aider ;) ... Il existe un petit bug au niveau du procédé 1, en effet lorsque celui-ci est sélectionné lors du 1er choix une erreur apparait : "Erreur d’exécution '13' Incompatibilité de type" , voir image jointe :

IMG 1.jpg

Ensuite serait-il possible d'avoir le résultat final dans le message d'info qui s'affiche, en fait ce serait juste l'addition des 3 résultats, tout en laissant le détail "chargeurs" "machines" "accessoires" comme tu l'avais fait. Et enfin, juste pour une question d'affichage final encore, j'aimerais qu'apparaissent les infos présentes dans les cases vertes en fonction du premier choix. Si le procédé 1 a été choisi, afficher de D4 à H4 ou encore si c'est le procédé 3 - Format 2, afficher de D16 à H16 ...

Et juste une dernière chose, c'est juste un détail en fait mais si c'est possible je souhaiterai que le choix 2 "Machines standard" ne soit pas obligatoire, c'est à dire que si c'est seulement le prix d'un chargeur qui nous intéresse, il suffit juste de sélectionner le choix 1 et de faire Ok.

Comme je t'ai dit, c'est seulement si tu as encore l'envie et du temps à me consacrer. En tout cas merci pour ton travail, tu m'as déjà rendu un grand service !

Merci encore,

Cordialement


Antonin.
 
C

Compte Supprimé 979

Guest
Re : Calcul de prix machine en fonction de choix (Programmation VBA)

Salut Antosic

Dans un premier temps je te remercie pour ton travail et pour ton temps c'est exactement ce que je voulais.
De rien et tant mieux si cela correspond à ton souhait

Il existe un petit bug au niveau du procédé 1, en effet lorsque celui-ci est sélectionné lors du 1er choix une erreur apparait : "Erreur d’exécution '13' Incompatibilité de type"
Problème réglé, c'était une erreur de valeur donnée à la variable NumFormat
Code:
NumFormat = 1

Ensuite serait-il possible d'avoir le résultat final dans le message d'info qui s'affiche, en fait ce serait juste l'addition des 3 résultats, tout en laissant le détail "chargeurs" "machines" "accessoires" comme tu l'avais fait.
C'est réglé

Et enfin, juste pour une question d'affichage final encore, j'aimerais qu'apparaissent les infos présentes dans les cases vertes en fonction du premier choix. Si le procédé 1 a été choisi, afficher de D4 à H4 ou encore si c'est le procédé 3 - Format 2, afficher de D16 à H16 ...
Tu veux que cela apparaisse ou !?

Et juste une dernière chose, c'est juste un détail en fait mais si c'est possible je souhaiterai que le choix 2 "Machines standard" ne soit pas obligatoire, c'est à dire que si c'est seulement le prix d'un chargeur qui nous intéresse, il suffit juste de sélectionner le choix 1 et de faire Ok.
C'est le cas actuellement !?
Si tu lances ton USF et que tu ne cliques pas dans choix 2, tu peux directement cliquer sur OK

A+
 

Pièces jointes

  • Antosic_Prix final .xlsm
    29.9 KB · Affichages: 58
  • Antosic_Prix final .xlsm
    29.9 KB · Affichages: 74
  • Antosic_Prix final .xlsm
    29.9 KB · Affichages: 61
Dernière modification par un modérateur:

Lolote83

XLDnaute Barbatruc
Re : Calcul de prix machine en fonction de choix (Programmation VBA)

Salut Antosic, BrunoM45,
Voici ma version qui est semblable à ce qu'a fait Bruno.
Même remarque que lui concernant :
Ensuite serait-il possible d'avoir le résultat final dans le message d'info qui s'affiche, en fait ce serait juste l'addition des 3 résultats, tout en laissant le détail "chargeurs" "machines" "accessoires" comme tu l'avais fait. Et enfin, juste pour une question d'affichage final encore, j'aimerais qu'apparaissent les infos présentes dans les cases vertes en fonction du premier choix. Si le procédé 1 a été choisi, afficher de D4 à H4 ou encore si c'est le procédé 3 - Format 2, afficher de D16 à H16 ...
Je ne comprends pas plus ce que tu veux écrire dans tes cases vertes.
Cordialement
Lolote83
 

Pièces jointes

  • Prix final pour Antosic.xls
    79 KB · Affichages: 81

antosic

XLDnaute Nouveau
Re : Calcul de prix machine en fonction de choix (Programmation VBA)

Bonjour BrunoM45, Lolote83,

Tout d'abord , merci pour votre travail c'est parfait. Je m'excuse également du temps que j'ai mis à répondre à vos messages, je suis en alternance et je viens à peine de retourner en entreprise, et ayant été très pris par mon travail à l'école je n'ai pas pu m'occuper de ce problème.

Ceci étant dit, je vous sollicite une nouvelle fois concernant vos fichiers. Je le répète, ils sont parfaits ; je souhaitais donc les exploiter en modifiant seulement l'apparence des tableaux et de l'UserForm, en les faisant correspondre avec mes données.
Or, je tombe sur des erreurs dans vos 2 fichiers.
Dans celui de BrunoM45, une erreur apparait au niveau de cette ligne :
Erreur BrunoM45.jpg
Dans celui de Lolote83, c'est à ce niveau là :
Erreur Lolote83.jpg

Il faut savoir que je ne modifie ni le programme ni les données du tableau (prix), je modifie juste l'apparence de la fenêtre UserForm en modifiant les inscriptions dans les "boutons" et l'apparence de mes tableaux en changeant les noms des procédés. En effet, j'avais modifié le fichier que je vous avez envoyé en indiquant des procédés n'ayant pas de noms propres par soucis de confidentialité au niveau de mon entreprise.

De ce fait, je ne sais pas si vous serez en mesure de m'aider ; dans le cas contraire, je vous remercie d'avance.

Cordialement.

Antonin.
 
C

Compte Supprimé 979

Guest
Re : Calcul de prix machine en fonction de choix (Programmation VBA)

Salut Antosic ;)

Effectivement ça faisait longtemps que tu n'étais pas passer nous voir...

Dans mon code, le bug vient du fait que je récupère les 2 derniers caractères de la fin
du critère 2 qui est le nom de l'Optionbutton

Or, jusqu'à 9 je récupère l'espace devant le chiffre et additionner une valeur alphanumérique à une variable déclarée en "Long" ça ne plait pas dut tout à VBA :eek:

Il faut donc transformer la valeur en valeur numérique, grâce à la fonction VAL(), comme ceci
Code:
LigMac = 1 + Val(Right(Crit2, 2))

Tu verras ça va nettement mieux marcher ;)

A+
 

antosic

XLDnaute Nouveau
Re : Calcul de prix machine en fonction de choix (Programmation VBA)

Bonjour BrunoM45,

Je te remercie pour ta rapidité à répondre. Cette solution a en effet résolu le problème, en tout cas pour les 2 premières parties. En effet, les modifications de l'UserForm pour "Type de chargeur" et "Machines standard" n'ont pas posés de problème. La chose se corse lorsque je modifie la 3ème partie "Accessoires disponibles" ; je remplace "Accessoire 1" par "Face avant 4 rotules et ventouse" et je teste, lors du débogage l'erreur se rapporte à cette ligne :

Erreur BrunoM45 2.jpg

Je choisis donc, comme tu m'as dit précédemment, de la modifier en : LigAcc = 17 + Val(Right(Crit3, 2))
Je relance et là nouvelle erreur ... cette fois sur la ligne d'après :

Erreur BrunoM45 3.jpg

Cordialement.

Antonin.
 

antosic

XLDnaute Nouveau
Re : Calcul de prix machine en fonction de choix (Programmation VBA)

J'ai remarqué également que lorsque je modifie les noms des type de chargeurs ("Format 2-1" devient "Monoformat" par exemple) la valeur du type de chargeurs reste la même après affichage quelque soit le chargeur choisis : "2376" alors que cela ne correspond pas :

Erreur BrunoM45 4.jpg

Antonin.
 

Discussions similaires

Réponses
16
Affichages
452

Statistiques des forums

Discussions
312 153
Messages
2 085 799
Membres
102 980
dernier inscrit
brossadan