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

652krystell1.xlsm (21.12 Ko)
1'058factures.xlsx (36.26 Ko)

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

582krystell1.xlsm (57.52 Ko)

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

275krystell1.xlsm (88.67 Ko)

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

324krystell1.xlsm (98.25 Ko)

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

690krystell1.xlsm (155.42 Ko)

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

73krystell1b.xlsm (155.67 Ko)

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

289krystell1b.xlsm (154.59 Ko)

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 .

Bonjour

Krystell a écrit :

un message apparait "Erreur de compilation, Projet ou bibliothèque introuvable".

Quand tu as ce message d'erreur

Dans l'éditeur VB

Menu Exécution -->Réinitialiser

Menu Outils ---> Références tu décoches toutes les références qui sont notées "MANQUANT'

references manquantes v004
Rechercher des sujets similaires à "formulaire factures"