Formulaire a remplir
Bonsoir Excel pratique
Salut a tous et a toutes
Se sera un grand plaisir de trouver qui peut m'aider a finir ce fichier
Remplir l'userform1 et transmettre les details par commandButton (valider) au ( Feuil1 )
Combobox1 pour afficher les matieres du colonne C et Label7 pour afficher le prix de chaque matiere dans colonne E du ( Feui1)
Merci d'avance pour l'aide
Cordialement
MARTI
Bonsoir Marti, bonsoir le forum,
D'abord il y a une grande incohérence dans la conception de ton fichier. Les matières avec leur prix doivent se trouver dans un onglet autre que celui où tu vas récupérer les données du formulaire.
En effet, que va-t-il se passer le jour où une matière va voir son prix augmenter (ou diminuer) ? Si tu as séparé les bases de données, tu pourras modifier un prix et ce changement ne s'appliquera qu'au données postérieures au changement...
Ensuite, je ne comprends pas pourquoi tu utilises une formulaire qui ne contient pas TOUTES les données (DETTE, DFA1, DFA2, DFA3). Cela signifie que certaines données vont être rajoutées à la main sans passer par le formulaire ???...
Tu devrais donc commencer par présenter un fichier avec un Onglet Prix qui ne contiendrait que deux colonnes : la Matière et son Prix avec une seule ligne pour chaque Matière/Prix et un onglet Base qui lui, recevra les données du formulaire.
La Combobox1 sera alimentée par la liste unique de l'onglet Prix. Je te conseille aussi de remplacer la Label7 du prix par une TextBox7 (dont l'accès sera interdit par exemple) pour utiliser la propriété [Value] de tous les contrôles. Car pour récupérer la valeur d'une Label il faut utiliser la propriété [Caption]...
Je te conseille aussi d'utiliser la propriété [Tag] des contrôles qui renvoient leur valeur dans le tableau. Cette propriété correspond à la colonne dans laquelle la valeur du contrôle est renvoyée. Cela permet de boucler sur les contrôles du formulaire pour renvoyer les données dans le tableau et évite d'écrire une ligne de code pour chaque contrôle...
En pièce jointe, ton fichier avec les changements que je te propose :
Bonsoir Thau Thème
Bonsoir forum
Merci .. je vous remercie infiniment pour l'aide .. votre temps pour me resoudre ce probleme ..ce precieux cours vba presente et explique de votre part ..
Vous avez raison dans tous ce que vous dites dans tes propositions ..
Merci encore Thau Thème .. c'est parfaitement ce que je veux voir dans ce fichier
C'est parfaitement resolu .. il me reste une petite remarque lorsque j'ai par exemple 20 TV de meme marque qu'est ce qu'il faut faire avec combobox1
Regardez svp cette image pour mieux comprendre ce que je veux dire
Merci d'avance
Cordialement
MARTI
Re,
Désolé Marti mais je n'ai pas compris votre dernier problème. En fait, je n'ai pas compris la finalité de ton projet. Essaye de m'expliquer en détail ce que tu veux faire et comment fonctionne le fichier. Car, après coup, je ne suis même pas sûr que la solution proposée hier soir soit la bonne...
Bonjour Thau Théme
Bonjour excel pratique
Merci pour ton fichier et tes excellents codes..
je suis tres tres satsfait de ce travail de votre part
Comme je vous ai dis j'ai seulement un petit soucis :
on admettant que quelques clients ont acheté la meme matiere :
4 ou 5 personnes ont achete des tv de meme marque
3 ou 6 personnes ont achete aussi des TV d'autre meme marque
Seulement je veux que combobox1 soit identique avec la colonne C
Les matieres que je vais les enregistrer en colonne C s'affichent dans combobox1 tandisque ici dans ce fichier colonneC et combobox1 ne sont pas identique ..regardez svp l'image
Merci d'avance pour l'aide
Cordialement
MARTI
Bonjour le fil
Marti, la Combobox1 est alimentée par la colonne A de la feuille "Prix" et non par la colonne C de ta feuille "Base",
ce qui est totalement logique
Voir le code
Private Sub UserForm_Initialize() 'à l'initialisation de l'userForm
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim I As Integer 'déclare la variable I (Incrément)
Set B = Sheets("Base") 'définit l'onglet B
Set P = Sheets("Prix") 'définit l'onglet P
DL = P.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne 1 (=A) de l'onglet P
Me.ComboBox1.List = P.Range("A2:A" & DL).Value 'alimente la ComboBox1
TextBox2 = Format(Now, "dd/mm/yyyy") 'renvoie la date dans la TextBox2
End Sub
A+