Facturier automatique

bonjour a tous,

j'ai crée avec beaucoup d'inspiration un facturier, mais je bloque sur plusieurs point.

Je cherche lors de la création de ma facture:

- Lorsque j'ajoute la référence client dans l'userform le nom et le prénom apparaisse (donnée a prendre dans l'onglet base client)

capture client

- idem pour la référence je cherche a avoir la désignation qui apparaisse (donnée a prendre dans l'onglet base produits)

capture reference

- ensuite je cherche a ajouter mes références a la suite dans ma facture avec les quantités et remise si besoin (comme ci dessous mais que cela se fasse automatiquement)

capture facture

-et enfin lorsque je cliquer sur effacer tout, la facture redeviens vierge de client et vierge de référence

Le fichier est en copie

par avance merci

36facturier-copie.zip (564.48 Ko)

je viens de trouver pour remettre a zero ma facture

Bonjour Tony, bonjour le forum,

Je pense que tu pars sur une mauvaise base. L'UserForm Client prête à confusion. On pense que tu veux Ajouter un client à ta base de donnée client alors que tu veux juste Définir le client de la facture. Ensuite il manque la recherche tant dans l'UserForm Client que Facture, qui permettrait de rechercher dans les bases car j'imagine mal l'utilisateur connaître par cœur les code clients et encore moins les codes articles...

Sinon pour Client :

Private OC As Worksheet

Private Sub UserForm_Initialize()
Dim DL As Integer

Set OC = Worksheets("Base Clients")
DL = OC.Cells(Application.Rows.Count, "A").End(xlUp).Row
Me.ComboBox1.List = OC.Range("A6:A" & DL).Value
End Sub

Private Sub ComboBox1_Change()
Me.TextBox1.Value = OC.Cells(Me.ComboBox1.ListIndex + 6, "D").Value & " " & OC.Cells(Me.ComboBox1.ListIndex + 6, "C").Value
End Sub
Private Sub ajoutclient_Click()
' Ok
  If Me.ComboBox1.ListIndex = -1 Then Exit Sub
  Range("K2") = Me.ComboBox1
End Sub

Merci pour ton aide Thautheme

effectivement je l'ai peut être mal exprimé

le code fonctionne parfaitement !

du coup nickel j'ai pu réadapter pour l'User Form Facture

il ne me manque plus que l'ajout successif dans ma facture en intégrant la quantité et la remise

bonjour,

j'ai donc réussi a faire monter mes lignes a l'aide d'un autre onglet

Il faudrait maintenant que j'y arrive depuis l'userform facture

je remet le fichier

25facturier-copie.zip (823.98 Ko)

Re,

Peux-tu être un peu plus précis dans ta requête. Toi tu as le nez dedans et nous on ouvre un fichier avec 11 onglet et 2 UserForms.
Pour simplifier, Il faut faire quoi avec quoi et dans quoi ?

quand je rentre mes donnée dans l'onglet "création facture" doit se faire avec le bouton "ajouter référence" dans l'onglet "facture"

le bouton "ajouter référence" correspond a l'userform facture

comme dis hier j'ai pu faire apparaitre la réf et la désignation dans l'userform facture mais je n'arrive pas a faire ajouter la quantité et la remise

et en plus de ca je n'arrive pas a faire en sorte qu'au fur et a mesure les références s'ajouter a la suite

désolé les onglets c'est que j'ai trouvé de mieux pour l'instant, j'aimerai réduire considérablement leurs nombres

Re,

j'aimerai réduire considérablement leurs nombres

Tu devrais et surtout n'utiliser qu'un seule base car je ne sais pas où chercher la remise :

Private Sub liste_Change()
Me.TextBox1.Value = OC.Cells(Me.liste.ListIndex + 8, "B").Value
Me.quantite.Value = OC.Cells(Me.liste.ListIndex + 8, "C").Value
'Me.Remise.Value = OC.Cells(Me.liste.ListIndex + 8, "F").Value ?
End Sub

merci pour ta rapidité,

la remise c'est moi qui la rentre manuellement a chaque fois, donc si je ne met rien, la cellule sera vide

edit : la quantité et la remise je la rajoute manuellement

Re,

Alors quel est ton problème ?!...

Je vais reprendre,

Quand j'appuie sur "ajouter référence" l'userform s'ouvre, de la je renseigne ma référence et la désignation se met automatiquement. Ensuite quand je renseigne ma quantité et ma remise si besoin (toujours dans l'userform), je voudrais que celle ci soit ajouter automatiquement en ligne 22 quand je clique sur "ajouter" comme actuellement pour la référence. Si je ne met rien dans la partie remise rien ne s'ajoute.

et ainsi de suite avec les autres références qui viendront se rajouter ligne 23,24,25,... .

Comme ci dessous

capture facture 2

Re,

Oui désolé j'avais mal lu ton post précédent...

Une proposition :

Private OC As Worksheet
Private OF As Worksheet

Private Sub UserForm_Initialize()
Dim DL As Integer

Set OC = Worksheets("Base produits")
Set OF = Worksheets("Facture")
DL = OC.Cells(Application.Rows.Count, "A").End(xlUp).Row
Me.liste.List = OC.Range("A8:A" & DL).Value
End Sub

Private Sub liste_Change()
Me.TextBox1.Value = OC.Cells(Me.liste.ListIndex + 8, "B").Value
End Sub
Private Sub ajouter_Click()
Dim DEST As Range

Set DEST = IIf(OF.Range("C22").Value = "", OF.Range("C22"), fo.Cells(Application.Rows.Count, "C").End(xlUp).Offset(1, 0))
DEST.Value = Me.liste.Value
DEST.Offset(0, 1).Value = Me.TextBox1.Value
DEST.Offset(0, 2).Value = Me.quantite.Value
DEST.Offset(0, 4).Value = Me.Remise.Value
End Sub

Private Sub CommandButton1_Click()
Unload Me 'préférable à Hide
End Sub

j'ai un bug sur cette ligne

Set DEST = IIf(OF.Range("C22").Value = "", OF.Range("C22"), fo.Cells(Application.Rows.Count, "C").End(xlUp).Offset(1, 0))

Re,

Quel est le message d'erreur ?

As-tu bien copier la ligne du début qui déclare OF et celle de l'initialisation de l'Userform qui la définit ?

je viens de verifier j'ai bien tout copier

Erreur 424

objet requis

Re,

Il y avait effectivement une erreur dans le code fo au lieu de OF et dans la méthode. Ça devrait fonctionner maintenant.

Private Sub ajouter_Click()
Dim DEST As Range

Set DEST = IIf(OF.Range("C22").Value = "", OF.Range("C22"), OF.Range("C21").End(xlDown).Offset(1, 0))
DEST.Value = Me.liste.Value
DEST.Offset(0, 1).Value = Me.TextBox1.Value
DEST.Offset(0, 2).Value = Me.quantite.Value
DEST.Offset(0, 4).Value = Me.Remise.Value
Unload Me
facture.Show
End Sub

Salut ThauThème

Je te remercie pour ton aide, le code fonctionne presque comme je le souhaite.

2 point :

- je ne peux pas ajouter plus de 2 références sur la facture

- Est-il possible de faire en sorte que je n'ai pas le symbole "%" à mettre dans l'emplacement "remise" mais que cela se fasse automatiquement, puisque ma cellule est deja en format pourcentage, du coup quand j'inscrit "15" la cellule passe a 1500,00% mais quand je met "15%" la cellule passe bien a "15,00%"

Re,

je suis désolé Tony mais je n'ai pas du tout la même méthode de travail. Comme je suis nul en formules, je ne travaille qu'en VBA et ne mélange pas formule et VBA comme tu le fait dans ta facture. Tu cours le risque d'une formule effacée est tout est faux.

Moi, j'aurais inclus dans l'UserForm le prix unitaire, le calcul quantité*P.U. et s'il y a remise ou pas le prix total, puis renvoyé tout ça dans le tableau.

- je ne peux pas ajouter plus de 2 références sur la facture

C'est ce que tu voudrais ou c'est un bug constaté ?...

Je n'avais pas vu ça de la même façon, donc je serai obliger de mettre le symbole "%" avec cette méthode

pourrais tu me faire un "croquis" de ce que tu verrais pour le calcul du prix ?

Effectivement je pense qu'il y a un "bug" dans la formule car si j'ai besoin d'ajouter 10 références uniquement 2 apparaissent et c'est la 2ieme ligne qui est remplacer a chaque fois

Rechercher des sujets similaires à "facturier automatique"