fonctions pour création devis avec listbox

mirooz

XLDnaute Nouveau
Bonjour à tous !
Je solicite une fois de plus votre aide précieuse car j'ai un souci que je n'arrive pas à résoudre:

Le fichier joint contient deux userform qui permettent d'éditer des devis (pour une société de pompes funèbres, désolé pour le sujet un peu glauque...)

Le premier "nouveau devis" permet d'éditer le n° de devis, la date de demande, des infos sur les clients (désactivé ici car le fichier était trop volumineux) et un bouton pour ajouter des lignes de produit.
ce bouton ouvre un deuxième userform qui contient toutes les références possibles à ajouter dans la listbox du premier USF.

Voici ce que je souhaite faire:

- dans le userform "choix prestations", j'aimerais que lorsque je change de ligne dans la listbox ou de page dans le multipage, le montant affiché dans le textbox "totalTTC" change automatiquement en fonction du nouveau produit séléctionné et de la quantité.

- j'aimerais que les textbox "prix unitaire" et "total TTC" soient formatés en euros.

- j'ai un souci avec le spinbutton qui permet de chager les quantités: à l'initialisation du userform je souhaite que la valeur soit égale à 1. Le problème est que le champ total lui est à 0 alors qu'il devrait être égal à "quantité * prix unitaire"
Autre problème: il faut cliquer deux fois sur le spinbutton pour changer la valeur la première fois que l'on clique dessus.

- Je souhaite que lorsque je valide le USF "choix prestation", la listbox du USF "nouveau devis" soit automatiquement mise à jour en fonction des produits saisis. (Les infos sont stockés provisoirement dans la feuille "infos_devis_provisoire")
Cela fonctionne déjà mais la taiille de la listbox n'est plus adaptée à la sélection (cela se voit à la scroll barre trop grande)


- J'aimerai pouvoir supprimer un ligne dans la listbox du USF "nouveau devis" en cliquant sur le bouton supprimer. Il faut que la ligne correspondante soit supprimée dans la feuille "infos_devis_provisoire"


Voila j'éspère avoir été clair dans ma demande, je sais que ça fait beaucoup à la fois mais ce sont des choses à mon avis assez simples que je ne sais cependant pas faire.
Le fichier joint est suffisament structuré pour mieux comprendre.

Merci d'avance si vous avez le temps de vous pencher sur mon problème.
 

Pièces jointes

  • test_devis.zip
    38.2 KB · Affichages: 80
  • test_devis.zip
    38.2 KB · Affichages: 83
  • test_devis.zip
    38.2 KB · Affichages: 83

jp14

XLDnaute Barbatruc
Re : fonctions pour création devis avec listbox

Bonjour

Une première solution pour afficher la valeur

Private Sub TextBox4_Change()
TextBox8.Value = Val(TextBox5.Value) * Val(TextBox4.Value)
End Sub
Positionner le spin buton

Private Sub UserForm_initialize()
SpinButton1.Value = 1
TextBox5.Value = 1

Pour mettre au point il est plus facile d'avoir des userform non modal
nouveau_devis.Show 0

Cela permet de voir le contenu des feuilles sans fermer l'usf

Pour remettre à zéro lors du changement de page

Private Sub MultiPage2_Change()
TextBox5.Value = 0
TextBox8.Value = 0
TextBox4.Value = 0
SpinButton1.Value = 1
TextBox5.Value = 1
End Sub

Il faudrait prévoir des tests concernant la saisie
exemple

Private Sub CommandButton1_Click()
If Val(TextBox8.Value) = 0 Then

Call MsgBox("Vous devez indiquer une quantité", vbCritical Or vbDefaultButton1, Application.Name)

Exit Sub

End If
Bonjour Pierrot

JP
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : fonctions pour création devis avec listbox

Bonjour Mirooz

pour ta 1ère question,

pour alimenter un textbox lorsqu'il y a modif sur une listbox :
Code:
Private Sub ListBox1_Change()
If ListBox1.ListIndex <> -1 Then
TextBox1.Value = ListBox1.Value
End If
End Sub

pour alimenter un textbox à partir de valeur contenues dans une listbox, il faut bien sur qu'un élément soit sélectionné dans la liste, sinon renvoie une value nulle.
Code:
Private Sub MultiPage1_Change()
    TextBox1.Value = MultiPage1.Pages(MultiPage1.Value).Controls(0).Value
End Sub

ces codes à placer dans le module de l'usf concerné.

@+

Edition bonjour jp14

2ème édition, 2ème code, alimentation via une listbox placée dans un multipage.
 
Dernière édition:

jp14

XLDnaute Barbatruc
Dernière édition:

mirooz

XLDnaute Nouveau
Re : fonctions pour création devis avec listbox

Salut jp14 et Pierrot93
Merci à vous pour vos réponses si rapides. Je suis entrain de tester tout ça. Je me doute qu'il y a plus de possibilités avec une listview, je voulais en utiliser au départ mais je ne sais pas encore bien les gérer. Je vais regarder attentivement leur fonctionnement.
 

jp14

XLDnaute Barbatruc
Re : fonctions pour création devis avec listbox

Bonsoir

Ci joint le fichier avec une listview pour l'exemple.
A tester

JP

Il faut rajouter .ListItems.Clear pour éviter des erreurs
With ListView1
.ListItems.Clear 'à rajouter
 

Pièces jointes

  • test_devis.zip
    39.4 KB · Affichages: 159
  • test_devis.zip
    39.4 KB · Affichages: 153
  • test_devis.zip
    39.4 KB · Affichages: 162
Dernière édition:

mirooz

XLDnaute Nouveau
Re : fonctions pour création devis avec listbox

Salut jp14, Pierrot 93, le forum
merci pour vos solutions qui fonctionnent parfaitement.

jp14: merci beaucoup d'avoir pris le temps de m'aider sur les listview. je manque un peu de temps pour ré-adapter mon projet avec donc je m'en servirai la prochaine fois que j'en aurai besoin.
 

Statistiques des forums

Discussions
312 215
Messages
2 086 325
Membres
103 179
dernier inscrit
BERSEB50