Affecter des valeurs aux choix des différentes combo box

Bonjour à tous,

peu doué en excel, je souhaite développer un petit outil de chiffrage d'activité tôlerie pour réaliser des moyens partiels.

Pour cela, j'ai commencé mon masque et un bouton pour l'activer et commencer le vba avec l'aide des tutos sur le net mais je suis coincé maintenant pour une fois que j'ai saisi les informations dans mes menus déroulants pouvoir affecter à chaque choix réalisé que je range dans un tableau, mais maintenant je veux affecter un montant, un nombre d'heures, pour alimenter ma feuille de résultat de chiffrage.

Sur excel 2013

Je cherche comment écrire ceci

En appuyant sur le bouton: "chiffrer le moyen"

" si combobox: X = oui et oui = 10 va écrire la valeur 10 dans la feuille "résultat chiffrage"

"si combobox: X1 = velisy et velizy = 30 va écrire la valeur 30 dans la feuille "résultat chiffrage"

Etc..

Je crois qu'il faut utiliser vlookup mais je sais pas trop comment l'articuler par rapport au choix des listes des differentes combobox réalisées

Vous remerciant d'avance de votre aide

Bonjour Hervé Guillot le forum

tu écris

En appuyant sur le bouton: "chiffrer le moyen"

" si combobox: X = oui et oui = 10 va écrire la valeur 10 dans la feuille "résultat chiffrage"

"si combobox: X1 = velisy et velizy = 30 va écrire la valeur 30 dans la feuille "résultat chiffrage"

Etc..

Mais en ouvrant l'userform, il n'y a pas de bouton Chiffrer le moyen !!!!!!

De plus toutes tes conditions elles sont ou???

Et le meilleur pour la fin: mais ou est donc le combobox X et le combobox X1 ????????????????????????????????

En clair tu veux de l'aide, mais tu n'es pas fichu d'exprimer et d’expliquer ton besoin, comment veux-tu que l'on t'aide sans un minimum de compréhension de ton attente?

Reprend ton fichier et explique clairement, surtout le combobox X et le combobox X1, nous on ne peut pas deviner

a+

Papou

Bonjour Paritec,

Pardon pour mes explications pas très claires mais j'ai fini par trouver en utilisant cette méthode pour toutes mes combobox

ActiveCell.Offset(0, 7).Value = Application.WorksheetFunction.VLookup(Cbxcoupex.Value, Worksheets("base_chiffrage").Range("tabx"), 2, False) "exemple pour une combobox"

Maintenant cela marche a peu près correctement sauf pour la combobox préparation qui va chercher une valeur en % que je renvois vers un chiffre 1.05 à 1.5 et systématiquement me renvoie la valeur 0,05 à 0,5 dans ma feuille de calcul?

Pour une autre chose, je sollicite ton aide car j'avais une combobox transport avec coût associé unique et maintenant j'ai ajouté une combobox supplémentaire "type de transport" mais je ne sais pas trop comment ajouter en vba une condition qui ferait que:

si je choisi: type de transport = camion 20m3 va chercher la réponse dans le colonne 2

si je choisi: type de plateau = va chercher la réponse dans le colonne 3

si je choisi: type de remorque = va chercher la réponse dans le colonne 4

Merci pour ton aide,

Cordialement

Hervé

Bonjour guillot Hervé le forum

ton fichier en retour avec ce que tu souhaites, du moins je le pense car j'avais demandé des explications mais !!!!!

bref voilà ton fichier tu ouvres tu testes et tu me redis

Pour le combo Préparation, je n'ai pas bien compris ce que tu voulais mais bon j'ai modifié.

a+

Papou

27guillotherve-v1.xlsm (286.32 Ko)

Bonjour Papou,

Merci de ton aide pour mes premiers pas en VBA. J'ai testé le code et il n'y a qu'un seul Pb, quand je sélectionne "Plateau" il me renvoie la valeur de la colonne "camion 20m3".J'ai testé les 2 autres variables c'est ok.

Pour la Combo préparation, en fait cette ligne de code vlookup me renvoyait systématiquement une erreur 1004 comme si malgré le choix d'une valeur dans le menu déroulant de la Combo, il considérait que c’était une "cellule vide"

Nota: si aucun choix n'est réalisé dans une des Combo " " vlookup renvoie une erreur 1004 : Il y a t'il une solution pour éviter ce problème ?

Pour la Combo préparation, j'ai modifié les valeurs de la Combo pour avoir un menu déroulant qui affiche des pourcentages (mais cela affiche toujours des valeurs) et qui doit me renvoyer dans la feuille "résultats chiffrage" la valeur correspondante dans la colonne 2 qui est un coef multiplicateur ex 20% renvoie l'info 1.2 mais systématiquement, il me renvoie 0.2, ce qui fausse tous les calculs ( mais tu as raison, comme dans le tableau que je t'ai filer, il y avait des valeurs et pas des % c’était compliqué pour comprendre !!!) Sais-tu me dire pourquoi?

A+ Merci encore

Hervé

Bonjour Hervé Guillot le forum

j'aime beaucoup les :

Merci de ton aide pour mes premiers pas en VBA. J'ai testé le code et il n'y a qu'un seul Pb, quand je sélectionne "Plateau" il me renvoie la valeur de la colonne "camion 20m3".J'ai testé les 2 autres variables c'est ok.

Est-ce que c'est de ma faute si tu es un rigolo???

Tu mets dans les combobox le choix Plateau et dans la feuille chiffrage "Résultat Plateau" !!!!!!!!!!!!!!!!!!!

Bref j'ai changé, tu peux tester, j'ai aussi mis un exemple de ce que tu devrais faire pour l'alimentation de tes comboboxs

dans la macro btnvoirlechiffrage_Click()

voilà moi j'ai fait pour deux comboboxs tu devrais faire pareil pour le reste

pour le défaut 1004 j'ai rajouté pour ne plus avoir les défauts, mais bon c'est pas le top, je préfère largement gérer les erreur plutôt que de les ignorer

a+

Papou

28guillotherve-v2.xlsm (284.79 Ko)

Bonjour Papou,

Super tout fonctionne correctement, merci !!!

A+

Hervé

Bonjour Hervé le forum

bah oui tu mets bien qu'il faut cliquer résolu mais pourquoi ne le fait-tu pas??? seul l'auteur peut le faire tu cliques sur le V vert

a+

Papou

Re Bonjour,

Oui t'as raison...

Mais cela tombe bien, peux-tu m'expliquer un peu tes lignes de code ? car si je fais encore des modifs et si je ne comprends pas, je vais etre obliger de te solliciter une nouvelle fois..

A+ Merci!

Hervé

li = .Range("A" & Rows.Count).End(3).Row 'A' ' End(3)?

If Cbxtransport.ListIndex <> -1 Then

Set cel = Feuil4.Columns(1).Find(Cbxtransport, , , xlWhole) ' Feuil 4 ?base chiffrage ?

If Not cel Is Nothing Then lig = cel.Row Else Exit Sub

End If

If Cbxtypetransport.ListIndex <> -1 Then

Set cel = Feuil4.Rows(99).Find(Cbxtypetransport, , , xlWhole) 'Rows(99)?

If Not cel Is Nothing Then col = cel.Column Else Exit Sub

End If

.Cells(li, 19) = Feuil4.Cells(lig, col) ' colonne 19 Feuil4 ? base chiffrage ?

Private Sub UserForm_Initialize()

Dim aa, i&

aa = Feuil4.Range("A23:B33") ' base chiffrage ?

For i = 1 To UBound(aa)

aa(i, 1) = Format(aa(i, 1), "0.00%")

Next i

Cbxpreparation.List = aa

Cbxpreparation.ListRows = 20 ' 20 ?

Bonjour Hervé le forum

bon le fichier V3 avec les commentaires

a+

Papou

24guillotherve-v3.xlsm (285.40 Ko)

Bonjour Papou,

Merci encore pour ces explications très claires!

Bien cordialement

Hervé

Re hervé le forum

bon la même chose mais avec un code propre, je pense que tu vas voir la différence

a+

Papou

25guillotherve-v4.xlsm (275.45 Ko)

Re bonjour,

Comme tu dis, il n'y a pas photo !!

Merci encore , je dois maintenant rajouter 2 textbox et donc 2 colonnes, je vais prendre un peu de temps pour ne pas mettre par terre

ton travail (et apprendre en meme temps !!)

Bonne soirée

Hervé

Bonjour Hervé le forum

bah c'est simple tu rajoutes tes deux combobox ou textbox en prenant soin si possible de rajouter tes colonnes après la colonne transport

tu pourrais en profiter pour classer tes colonnes de ta feuille de manière logique, enfin de manière pratique plutôt, le control C1 correspondant à la colonne A le control C2= colonne B etc pour permettre de remplir avec simplement une boucle!!! Comme je t'ai fait dans la V4

Et si tu n'y arrives pas tu mets tes nouveaux contrôles et tu renvoies le fichier

a+

Papou

Bonjour Papou,

Que dire sinon merci pour cette disponibilité et ce travail, c'est la première fois que je fais appel à un forum et ma surprise est totale.

Aujourd'hui pas de VBA mais un changement de poulie Damper sur le véhicule de ma femme !!

Bon, je te laisse

Merci encore

Hervé

Bonsoir Paritec,

Je reviens vers toi car ce nouveau modèle me renvoie les valeurs "texte" et bien sur après avoir modifier ton fichier pour rajouter 2 texbox maintenant j'ai une erreur 438, mais il y a des lignes que je ne comprends pas bien.

Je laisse les 2 versions de fichier:

  • le fichier V4 test sans modif code mais ajout de 2 texbox en C21 et C22.(sans doute des Pb pour faire un for i= ?)
  • le fichier "tentative avec modifs (colonnes, textbox, remplacement de C19 et C20 en C21/C22, code et plage mais erreur 438!!
Sur ce, je te souhaite et bonne soirée.

Hervé

Bonjour Hervé le forum

bon alors manifestement tu n'as pas compris comment fonctionnent les macros!!!

Ou alors tu t'es pris les pieds dans le tapis !!!!

Bref ton fichier en retour, avec comme toi une ""tentative"" de correction des bêtises faites sur le fichier !!!

bonne journée

a+

Papou

Re Bonjour Hervé le forum

voilà la V7 avec une petite modification en cas de saisie manuelle du temps de montage

a+

Papou

27guillotherve-v7.xlsm (278.57 Ko)

Bonjour Papou,

Merci, tout fonctionne à merveille maintenant !! Je vais caler mes temps et couts pour optimiser le système, cela tombe bien car on a un appel d'offre pour découper 15 caisses pour un plan de validation véhicule RSA.

Merci encore pour ton aide et ta patience !!

Je regarderai ta macro ensuite pour tenter de comprendre

Cordialement

A+

Hervé

Bonsoir Hervé le forum,

oui mais comme tu as modifié sans respecter ce que je t'avais écrit, cela complique la macro.

Enfin tu regarderas si tu comprends

a+

Papou

Rechercher des sujets similaires à "affecter valeurs choix differentes combo box"