Formulaire FACTURES
Bonsoir à tous.
J’ai mis en place un formulaire qui doit renseigner un fichier Excel nommé « FACTURES » mais comme je n’ai pas de grandes connaissances en VBA, je vous le transmets afin que vous puissiez m’aider à le rendre opérationnel. J’ai quand même réussi à créer l’userform mais au niveau des codes c’est la pagaille.
J’ai volontairement créé mon userform dans un fichier nommé Krystell1 et je voudrais le faire apparaitre lorsque je click sur le bouton FACTURE. (Je ne sais pas comment faire)
Voici les formules à prendre en compte dans l’userform:
Un même produit peut avoir plusieurs prix raison pour laquelle j’ai utilisé une ComboBox pour le PU
Pour chaque produit : TTC = Qté*PU mais serait il possible d’avoir le montant TTC lorsque je choisis le prix
TOTAL QTE = somme de toutes les Qté
TOTAL TTC = somme de tous les montants TTC
Remise = TOTAL TTC * taux de remise mais serait il possible d’avoir le montant de la remise lorsque je choisis le taux de la remise
TOTAL TTC Net= TOTAL TTC - Remise
Montant HT = TOTAL TTC Net / 1,18
TVA = TOTAL TTC Net - Montant HT
Le N° de facture doit commencer par FA et j’ajoute le numéro voulu (FA0001, FA0002….)
Le N° de BL doit commencer par BL et j’ajoute le numéro voulu (BL0001, BL0002….)
En un click sur le bouton OK, calculer:
1- La quantité totale
2- Le total TTC
3- Le TOTAL TTC Net
4- Le MONTANT HT
5- La TVA
En un click sur le bouton VALIDER transférer les informations dans le fichier « FACTURES »
En un click sur le bouton EFFACER, effacer toutes les données renseignées en laissant dans la zone de texte N° facture « FA »et dans la zone de texte N° BL « BL ».
Dans le fichier « FACTURES » je souhaiterais :
- Avoir une feuille par client, identique à la feuille « client_1 »
- Renommer la feuille avec le nom du client et inscrire ce nom dans la cellule B4
- que les données concernant un client s’insère au fur et a mesure dans son fichier correspondant et que les différents totaux se mettent à jour en même temps
Dans le fichier « FACTURES » vous remarquez que le dernier produit inscris est « I », alors que les produits vont au delà de « I » d’après la feuille « Krystell1 ». Pour éviter de surcharger le tableau je me suis arrêtée au produit « I ». Serait-il possible d’insérer automatiquement 2 colonnes identiques à « I » si je choisis le produit « J » ou un autre produit tout en respectant l’ordre des produits.
Exemple
Un client achète le 14 juillet 2012 les produits A, B, C, D, E, F, G, H et I
Le 20 juillet ce même client achète un produit « K », insérer les colonnes après celle de « I » et renseigner celles ci
Si ce même client achète le 31 juillet le produit « J » insérer les colonnes entre le produit « I » et le produit « K ».
J’ai mis des codes pour renseigner les ComboBox « Produits » et « PU », merci de jeter un coup d’œil et de l’améliorer s’il le faut.
Je vous transmets mes 2 fichiers pour faciliter votre travail.
J’espère avoir été explicite.
Merci de votre aide
Bonsoir,
Vu le cahier des charges que vous voulez nous demander, je n'imagine pas la "facture"
que vous auriez si cela devais etre fait par un professionelle.
Le forum aident à comprendre, aident à faire mais pas à faire à la place à moins de trouvé l'âme soeur.
Pensez aussi aux cours et aux formations que propose Excel-Pratique, on apprend vite et en plus c'est merveilleux de savoir faire une application dans excel !
https://www.excel-pratique.com/fr/index.php
Espèrant pour vous, Cordialement
Bonsoir
Un début dans le fichier joint (juste le début)
Regarde ça te permettra de compléter le reste et de réaliser le paragraphe 1 de ton projet
Bonne soirée
Christine
Salut Christine,
Merci d'avoir porté une attention à ma préoccupation, ne serait ce que pour le 1er paragraphe, parce que grâce a toi je pars du point zéro au point 10, et ça c'est beaucoup pour moi.
Mais il y a une petite erreur que j'ai moi même corrigé . Tu as utilisé TextBox11 au lieu de TextBox12 pour faire apparaitre le total des différents montants TTC.
Encore merci pour ton aide et j’espère que tu m'aideras jusqu'à la fin.
Excellente journée.
Bonjour Krystell
As tu avancé sur ton projet ? Si tel est le cas, peux-tu poster ton fichier afin que nous puissions t'aider sur les points qui coincent.
En relisant ton premier post, je me demande s'il ne serait pas plus simple d'avoir une base de données clients avec toutes les factures puis de faire un filtre pour voir les factures d'un client en particulier. Ce serait beaucoup plus simple à gérer.
Tout dépend également du nombre de clients.
Bonne soirée
Christine
Bonsoir Christine,
Merci ,J'ai pu largement avancé sur la 1 ère partie de mon projet. Tu le trouveras en pièce jointe. Mais comment faire pour arrondir le montant HT pour ne pas avoir de virgules.
C'est très intéressant ce que tu me suggères .
Mais serait il possible d'avoir une base de données clients ,sur la 1 ère feuille de mon fichier "FACTURES",avec toutes les factures puis avec un bouton de commande, que je pourrai ajouter, faire un transfert des factures sur les feuilles correspondantes.
C'est a dire que dans la base de données clients j'ai le client 1, le client 2, le client 3,......... quand je click sur le bouton de commande ,que j'aurai ajouté, les informations du client 1 vont sur sa feuille correspondante, le client 2 pareil et ainsi de suite. Et si le client n'existait pas auparavant dès le transfert, sa feuille est créée automatiquement avec ses infos le concernant.
Est ce possible?
Merci a toi.
Bonne soirée
Bonjour
Pour avancer dans ton projet (si tu ne l'as pas déjà fait)
1 - Regarde la macro pour insérer les données dans la base
Private Sub OK_Click() qui est à finir pour tous les produits et les totaux
2 - Le filtre qui permet d'avoir un client sur la feuille "parclient"
Macro filtre
Et se poser la question s'il est vraiment souhaitable d'avoir une feuille par client
3 - Les totaux en gris à compléter également
Bon WE
Christine
Bonjour
Une nouvelle version avec quelques améliorations
1 - Formule pour les totaux ligne 10 qui s'incrémente vers la gauche
=SOMME(INDIRECT(ADRESSE(12;COLONNE(E9))):INDIRECT(ADRESSE(50000;COLONNE(E9))))
2 - Remplissage automatique du numéro de facture et de BL (voir macro ouvriForm)
3 - Gestion de la liste des clients sur la feuille clients (voir la fin de la macro du formulaire Private Sub OK_Click() transfert du client dans la base) permettant d'avoir une liste "à jour" des clients
Bon dimanche
Christine
Salut Christine,
Merci pour tes différentes suggestions.
J'etais tres occupée le week end donc je n'ai pas pu jeter un coup d'oeil sur ce que tu as fait.
Je serai tres chargée cette semaine, mais je ferai un effort pour te faire un retour.
Bonne journée a toi.
Bonjour Christine,
Je t'ai laissé le temps de bien souffler par rapport a mon fichier.
Je suis de retour avec des questions comme toujours (lol).
concernant le bouton de commande "OK",
1- il ne reportait pas le Numéro du BL je l'ai complété dans la programmation.
2- quand je sélectionne pour un client quelconque le produit "J" ou n'importe quel autre produit après le produit "I" sa colonne (QTE) et (TTC) ne se créent pas dans le fichier "factures" il me met que le produit J n'est pas présent dans la base.
J'ai ajouté un nouvel élément que tu trouveras sur la feuille"New". Sur cette feuille je souhaiterais que avec le bouton de commande "transfert" que j'ai ajouté sur la feuille "facture" mes données soient reportées comme tel. Si c'est un nouveau client sa ligne s'insère avec en dessous sa ligne "TOTAL" et lorsque de nouvelles infos le concernant sont transférées la ligne "TOTAL" décale vers le bas pour laisser s'insérer ces données .
Merci une fois de plus.
Bonne journée a toi
Bonsoir Krystell
quand je sélectionne pour un client quelconque le produit "J" ou n'importe quel autre produit après le produit "I" sa colonne (QTE) et (TTC) ne se créent pas dans le fichier "factures" il me met que le produit J n'est pas présent dans la base.
Effectivement, je n'ai rien fait pour ce problème. Cela dit, tu peux aussi bien gérer ça à la main puisqu'il n'y a qu'une feuille à modifier. tout dépend également du nombre de produits et procédons par étape, d'abord faire marcher le "truc" de manière basique puis essayer de l'améliorer
J'ai ajouté un nouvel élément que tu trouveras sur la feuille"New". Sur cette feuille je souhaiterais que avec le bouton de commande "transfert" que j'ai ajouté sur la feuille "facture" mes données soient reportées comme tel. Si c'est un nouveau client sa ligne s'insère avec en dessous sa ligne "TOTAL" et lorsque de nouvelles infos le concernant sont transférées la ligne "TOTAL" décale vers le bas pour laisser s'insérer ces données .
Ce que tu décrits ressemble à un tableau croisé dynamique qui se fait sans macro ce qui est plus simple à gérer (voir le début feuil2) . Il y a de nombreuses explications sur le net. Je pense que tu devras changer tes intitulés de colonnes A-TTC, A-nb etc
D'autre part, après réflexion, il serait plus simple dans le formulaire de procéder comme tu l'avais demandé au départ : Le bouton "OK" fait apparaitre les totaux et autres champs calculés et le bouton "Valider " transfert les données. Si tu es d'accord, je regarderai pour modifier.
Bonne soirée
Christine
Bonsoir Christine,
Je suis d'accord pour ton principe de faire en sorte que le bouton "OK" fasse apparaître les totaux et autres champs calculés et le bouton "Valider " transfert les données.
Merci.
Excellente soirée
Bonjour Krystell
Voilà le fichier en retour
1 - Les données du formulaire se calculent quand on clique sur calculer
2 - Le transfert se fait si on clique sur valider
Et c'est beaucoup plus simple à programmer ainsi donc moins d'erreurs
Cordialement
Bonsoir Christine,
Merci pour ton retour.
Mais il y a eu un oubli de ta part au niveau de la valeur de la remise. Tu as écrit :
Remise.Value = TextTTC.Value * Taux_Remise.Value au lieu de Remise.Value = Val(TextTTC.Value) * Val(Taux_Remise.Value).
Je l'ai corrigé a mon avis.
Bon après midi a toi.
Bonsoir Christine,
il y'a un petit probleme avec le bouton VALIDER que je n'avais pas pris soin de vérifier.
Quand je fais un click la dessus un message apparait "Erreur de compilation, Projet ou bibliothèque introuvable".
Quand je click sur OK le VBA apparait et "monprod=" est sélectionné.
Merci de me dire quoi faire pour corriger.
Excellente nuit .
bonsoir Christine,
Encore moi .
le probleme ne vient pas seulement de "monprod" mais également de "monclient" et "client".
J'espere avoir tout dit cette fois .
