Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Userform complexe

T

tomtom

Guest
Bonjour a tous le forum,
J'ai un fichier excel dans lequel il y a un tableau avec des friandise et des boissons et des prix pour les client (1€50) et pour le personnel (0€50).
Je voudrai créer un userform qui me dirai:
Boissons: (une liste déroulante ou je selectionnerai la boissons)
Quantité: (une texte box ou je mettrai la quantité prix par le client ou le personnel)
Client ou Personnel : un bouton d'option pour selectionner personnel ou client.

Enfin aprés avoir tout selectionner, le programme additionnerai mon choix dans le tableau
Par exemple un client prend un coca, aprés avoir selectionner coca quantité et client le programme marquerai dans la cellule correspondante de on tableau
Je vous ai mis mon tableau en piece jointe
Ce n'est peut etre pas trés clair mais si vous avez des questions demander

Merci a tous [file name=userform_20051214142435.zip size=7988]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/userform_20051214142435.zip[/file]
 

Pièces jointes

  • userform_20051214142435.zip
    7.8 KB · Affichages: 34

Toutou

XLDnaute Occasionnel
Bonjour tomtom,
j'ai potasser ton problème, tu trouveras en pièce jointe ce que j'en ai sorti, en espérant que ça te convienne,
@ +
Toutou [file name=Classeur3_20051214152108.zip size=13706]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur3_20051214152108.zip[/file]
 

Pièces jointes

  • Classeur3_20051214152108.zip
    13.4 KB · Affichages: 70

Toutou

XLDnaute Occasionnel
Quelles cellules?
si tu parles de celles dont le contenu est renvoyé dans les 2 listes du userform c'est quelquechose comme:
.Rowsource='b3:b10'
et Rowsource 'F3:F8'
Si je me souviens bien.
Bon courage,@+
Toutou
 
T

tomtom

Guest
Salut,
Ces cellules c'est bon j'ai changé mais c les cellule qui doivent recevoir la quantité.
D'autre part il semblerai qu'il y é un problème avec la commande pour les employeurs au niveau des boisson et avec la commande pour les clients au niveau des friandise.
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour TomTom, TouTou, Le ForFor (oups le Forum ! lol)

Oui il semblerait qu'il y ait quelques soucis....

Voici la version corrigée ;-) avec Comments


Bonne Journée
[ol]@+Thierry[/ol] [file name=USF_Livre_de_caisse.zip size=15783]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/USF_Livre_de_caisse.zip[/file]
 

Pièces jointes

  • USF_Livre_de_caisse.zip
    15.4 KB · Affichages: 46

Toutou

XLDnaute Occasionnel
Re
A quelle claque!!! inch: Ca fait mal
Merci pour cette correction Professeur Thierry.

Pour répondre à ta question Tomtom,
les cellules sont déterminées par des coordonnées elle-même utilisées comme variables:
li et la sont des variables qui prennent en compte le numéro de l'élément choisi dans une liste pour retourner l'info dans la bonn colonne, dans l'expression (li,3), le 3 détermine le numéro de la colonne.
Voilà, j'espère que tu as compris, en dépit de mes piètres explications;
@ +
Toutou
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re bonjour TomTom

Je ne suis pas sûr d'avoir tout compris dans ta demande...

Que veux-tu dire ?

Je comprends par exemple :
'Les cellules où les quantités doivent apparaitre'

Si on choisit Coca quantité 2 en option 'Tarif Client' c'est la cellule 'C3' qui va se remplir... avec un Deux

Ensuite si on ré-ouvre le UserForm et qu'on choisit à nouveau Coca quantité Cing en option 'Tarif Client' la cellule 'C3' va s'incrémenter de 2 + 5 soit Sept indiqué dans cette cellule...

Tout se passe dans cette partie de code :

Code:
    With Worksheets('Feuil1')
        li = ListBox1.ListIndex + 3
        la = ListBox2.ListIndex + 3
        If OptionButton1 = True Then
            w = .Cells(li, 3).Value
            y = .Cells(li, 7).Value
            .Cells(li, 3) = TextBox1.Value + w
            .Cells(la, 7) = TextBox2.Value + y
        Else
            x = .Cells(la, 4).Value
            z = .Cells(la, 8).Value
            .Cells(li, 4) = TextBox1.Value + x
            .Cells(la, 8) = TextBox2.Value + z
        End If
    End With


En détaillant un peu pour mon exemple 'Coca' les Boisson sont en ListBox1... Donc cette ligne là va être utile :

li = ListBox1.ListIndex + 3

Li va prendre le numéro de la ligne où se trouve 'Coca' qui est en position 1 de la ListBox (Soit Zéro en informatique) plus un décalage de deux lignes dans le tableau sur la feuille (les données commence en ligne 3)...

Donc ça donne
Premier Item = 0 soit plus 1 pour correspondre
Deux Lignes Perdues = 2

C'est pour ça ce + 3

La suite si on a choisit Client c'est donc l'OptionButton1 qui est true et donc c'est cette condition qui est remplie

If OptionButton1 = True Then


On doit ensuite récupérer la valeur de la ligne Coca comme suit

w = .Cells(li, 3).Value

Donc w va recevoir la valeur 2 dans mon exemple

Puis on va additionner la nouvelle valeur en TextBox1 + W en l'envoyant en cellule C3 (Pour mon exemple 7)

.Cells(li, 3) = TextBox1.Value + w

En espérant t'avoir éclairé un peu
Bonne soirée
[ol]@+Thierry[/ol]

PS tu dois d'ailleurs appliquer une correction comme dans le code ci-dessus car j'ai laisser passé un,e erreur dans le fichier joint...
 
T

tomtom

Guest
En fait mon tableau ce trouve dans la plage B31 à d41 pour les boissons et et dans la plage f31 à g41 pour les friandises donc je voulais savoir ce que je devais changer pour mettre tous ca dans mon tableau.
 

_Thierry

XLDnaute Barbatruc
Repose en paix
re Bonsoir TomTom

Voici une Version adaptée où j'ai indiqué là où il faut intervenir...

Bonne Soirée
[ol]@+Thierry[/ol] [file name=USF_Livre_de_caisseV01.zip size=14523]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/USF_Livre_de_caisseV01.zip[/file]
 

Pièces jointes

  • USF_Livre_de_caisseV01.zip
    14.2 KB · Affichages: 61

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…