affichage de remise en fonction du produit

niki42

XLDnaute Occasionnel
Bonsoir à tous

Je vais à nouveau solliciter vos brillantes méninges pour m'aider à résoudre quelques problèmes
J'ai une base de données intitulé saisie; Dans cette BDD j'ai ajouté des listes déroulantes par données validation et par macro ( je ne sais pas si c'est bien de mélanger les 2?)
Je voudrais que lorsque que je choisis un produit ça m'affiche automatiquement le taux de remise correspondant. Je ne sais comment faire.
De plus je voulais faire un tcd pour clculer les montants totaux par agent mais apparement ce n'est pas ça. Pourquoi?
J'ai aussi réfléchi et pensé à créer un userform. est ce possible et si oui comment? sachant qu'il serait bien que le userform ne se ferme pas à chaque saisie.
Je joints un petit fichier et je vous remercie d'avance de l'attention que vous voudrez bien apporter à mon message

[file name=essairemise.zip size=9496]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/essairemise.zip[/file]
 

Pièces jointes

  • essairemise.zip
    9.3 KB · Affichages: 15

niki42

XLDnaute Occasionnel
Salut à tous


Je n'ai pas eu de réponse à mon message. Peut-être que je me suis mal expliquée?

:(


Mais bon tant pis j'ai essayé d'avancer. Mais je bloque toujours sur le problème suivant: comment faire pour que en saisissant un produit dans ma liste déroulante il m'affiche automatiquement la remise correspondante dans la cellule remise?
Merci pour la réponse
[file name=essairemise_20050322111204.zip size=9496]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/essairemise_20050322111204.zip[/file]
 

Pièces jointes

  • essairemise_20050322111204.zip
    9.3 KB · Affichages: 10
M

mutzik

Guest
Bonjour niki,

voici ton fichier légèrement modifié. Il faut renseigner les champs A2 à D2 puis cliquer sur btn ajouter

@+
Bertrand [file name=essairemise_20050322115830.zip size=11336]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/essairemise_20050322115830.zip[/file]
 

Pièces jointes

  • essairemise_20050322115830.zip
    11.1 KB · Affichages: 12

Hervé

XLDnaute Barbatruc
Bonjour

Une proposition par USF.

Par contre je n'ai pas trouvé le pris de vente des produits ???

A plus
[file name=essairemise2.zip size=15029]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/essairemise2.zip[/file]

Message édité par: Hervé, à: 22/03/2005 14:05
 

Pièces jointes

  • essairemise2.zip
    14.7 KB · Affichages: 16
N

niki42

Guest
Salut et merci pour vos réponses.
J'ai étudié vos solutions: les 2 sont très bien. mais comme j'aime bien comprendre ce que je fais je voudrais vous poser quelques questions

A Mutzik d'abord: dans ta formule recherchev pourquoi le 3 et faux? et le bouton ajouter c'est fait avec la boîte à outils?

A Hervé: Bien le userform. En plus j'adore ça mais malheureusement je suis beaucoup moins à l'aise quand il s'agit de saisir du code VBA!!!
Si je veux rajouter le montant il faut que je mette un textbox4?
Je voudrais aussi une explication quand à ce morceau de code:

Private Sub UserForm_Initialize()
Dim tablo As Variant

Me.ComboBox1.ColumnCount = 2
Me.ComboBox1.ColumnWidths = '15;45'
Me.ComboBox1.BoundColumn = 2

Me.ListBox1.ColumnCount = 3
Me.ListBox1.ColumnWidths = '15;45;0'
Me.ListBox1.BoundColumn = 2


Je ne comprends pas les chiffres 2 15 45

Je remercie aussi Marc pour sa réponse.

Par contre je serais très contente si Hervé et Mutzik prenaient quelques minutes pour me répondre.

Merci
 

Hervé

XLDnaute Barbatruc
re

Plusieurs choses :

Me.ListBox1.ColumnWidths = '15;45;0' ===> correspond au taille des colonnes dans la listbox, premiere colonne taille 15,...., derniere colonne taille 0 ainsi elle est masquée.

J'ai pour habitude de mettre toutes les informations dans une listbox, mais en masquant les infos inutiles à l'utilisateur.

Ainsi le taux de remise par produit est bien dans une colonne de la listbox, mais 'invisible'.

Tu peux faire pareil pour le prix de vente, le mettre dans une colonne puis le cacher.


C'est ce que je viens de faire dans la pièce jointe.

A plus
[file name=essairemise3.zip size=15917]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/essairemise3.zip[/file]
 

Pièces jointes

  • essairemise3.zip
    15.5 KB · Affichages: 24

Jam

XLDnaute Accro
Salut tous,

J'viens juste pour une ch'tite tite critique :)

Pour rendre votre code plus lisible, et plus performant,mais aussi plus rapide à saisir, ayez la gentillesse d'utiliser les With...End With et ce surtout avec les objets genre:
Code:
With Me
    With .ComboBox1
        .ColumnCount = 2
        .ColumnWidths = '15;45'
        .BoundColumn = 2
    End With
    With .ListBox1
        .ColumnCount = 3
        .ColumnWidths = '15;45;0'
        .BoundColumn = 2
    End With
End With

Bonne soirée
 
M

mutzik

Guest
Salut niki42,

J'ai crée un nopm sur la feuille saisie -> 'produits' qui fait reference à M2:O22.
La formule est : recherchev(C2;produits;3;faux) et veut dire

tu (excel) recherche dans le range produits (c'est à dire de M2 à M22 car la recherche se fait toujours dans la 1ere colonne du range et pas dans toutes les cellules) la valeur contenue dans C2.

3 : veut dire que une fois la valeur la valeur de Cé trouvée dans M2:M22, on se déplace de 3 colonnes vers la droite et on renvoie cette valeur.

faux : indique à excel qu'il ne doit renvoyer cette valeur dans cette 3ème colonne que s'il trouve une concordance exacte de C2 dans M2:M22

par exemple, si dans M2:M22 il y a les chiffres 1,3 4 5 et 7 et dans C2 il y a 6,

recherchev(C2;M2:O22;3;faux) renverrait #NA car la valeur 6 ne se trouve pas dans M2:M22

recherchev(Cé;M2:O22;3;vrai) renverrait la troisième valeur située trois colonnes plus loin de 5 car c'est la première valeur qui s'approche le plus de la valeur cherchée.

Tu peux aussi voir dans l'aide d'excel qui donne un bon exemple

@+
Bertrand
 

niki42

XLDnaute Occasionnel
Salut

Je vous remercie beaucoup pour vos explications qui, je trouve, sont beaucoup faciles à comprendre que l'aide d'excel!!!

Je suis très contente de mes fichiers et je n'hésiterais à vous faire à nouveau appel (enfin sans en abuser) si le besoin s'en fait sentir!!

Bon continuation à tous

:kiss: :kiss: :kiss: :kiss: :kiss: :kiss: :kiss: :kiss: :kiss: :kiss:
 

mutzik

XLDnaute Barbatruc
Salut le fil, le forum, Pat,

Permets moi de ne pas être totalement d'accord avec toi, Pat, et ce n'est pas seulement moi qui le dit mais également dans l'aide d'excel qui dit :

utiliser la fonction equiv(...) quand on a besoin de connaitre la position de ce qu'on recherche dans une matrice et non l'élément lui-mème

Sinon, utiliser les fonctions de recherche, recherchev et rechercheh

Je pense aussi qu'une fois bien assimilée, les fonctions de recherches ne sont pas plus dures à comprendre et à mettre en oeuvre que certaines autres.

Mais comme dit sur RTL (pub gratuite), c'est mon avis

Bonne journée à toutes et tous
Bertrand
 

pat1545.

XLDnaute Accro
Ok mais l'aide d'excel ....
Moi j'ai appris il y xx années à utiliser recherchev mais depuis 2 ou 3 ans, (en allant sur un autre forum) ,j'ai appris à faire mon travail avec index equiv:

tu nommes les colonnes et mets le nom dans la formule , ça me parait plus clair que de dire colonne 4 du tableau machin :)

tu sais rechercher à gauche avec index/equiv, pas directement avec rechercheV

la vitesse de recherche est pareille

donc ...

Je vote pour index/equiv

:lol:
 

Discussions similaires

Statistiques des forums

Discussions
312 864
Messages
2 093 006
Membres
105 599
dernier inscrit
p.trivalle