Facturation, userform et code VBA

Bonjour,

J'essai de créer un dossier facturation.

1'163facture9.zip (30.44 Ko)

Mon document est composé de 2 feuilles Invoice et Customers

Dans invoice, il y a un bouton Customer qui appelle un userform qui me permet de rajouter ou modifier un client.

Mais je planche sur le code et j'atteinds la limite de mes connaissance excel.

J'ai plusieurs questions:

1- Je me suis servie d'exemple d'un fichier nommé Facures-Devis que j'avais télécharger sur ce forum mais dont je ne trouve plus le post.

1'322factures-devis.zip (51.35 Ko)

Sur cet ex, pour ajouter et modifier un client, la personne utilise un code en chiffre, moi je voudrais rajouter un texte.

Cela me laisse le remplir dans l'userform mais dans Customer, il y a 0.

Surname et le Name doivent être pareil, ce que je peux remplir en rentrant un client.

2- Pour le bouton modify, des que je choisit un nom, tout ce qui est en dessous de type correspond a la ligne suivante, (par ex A4 architecture (ligne A3 donne la ligne A4 du la feuille Customers) et je comprends pas pourquoi)

3- Pour le bouton Add, des que je complète l'userform et que je cliques add, la colonne A et B de la feuille Customers ne se rempli pas, A me donne ) même si je le remplie correctement et B me donne FALSE.

4- Si je cliques sur Clear, il ya FALSE sur Surname et type

5- Je vis en Angleterre et le format du code postal est different, ils est composee de 2 paquets contenant chacun chiffre et letrre.

(ex TN31 7DN ou SW1 7TH), je voudrais que le format soit "XX00" "0XX" ou "XX0" "0XX", X=lettre en majuscule et 0=chiffre

Merci de me dire quelles sont mes erreurs et me les expliquer si possible

Bonsoir

Des erreurs : je ne sais plus trop

Il me semble :

Dans la colonne B de la feuille tu sauvais un CheckBox

La macro Userform_Initialize (voir remarque)

La macro pour effacer les contrôles tu utilisais "False" au lieu de soit "" (chaine vide) soit ListIndex=-1

J'ai corrigé au fur et à mesure des découvertes et je n'ai pas trop noté

Pas trop testé non plus, c'est à toi de dire où se situent les problèmes

Détailles bien la démarche à suivre afin de faire "bugger" le programme

Bonjour et merci de m'avoir répondu.

Désolée du temps de latence mais j'ai un cyber café et je n'ai pas eu le temps de venir plus tôt.

Donc si je comprends bien sur le code que tu m'a corrigée, ce qui est en vert sont les remarques. Dois je les effacer ou je peux les laisser? En plus, je pense avoir compris mes erreurs mais j'ai une petite question, que veut dire cette ligne du code: "Sub Init_CBBName()"

J'ai essayé, pour rajouter quelqu'un cela fonctionne bien mais quand je modifie, le type passe de business ou private à TRUE, Pourquoi?

Merci encore

bonjour Justine, banzai64 et le forum

je pense que c'est de ces lignes que tu parles

CommandButtonClear_Click
  Init_CBBName

elle renvoie a ce code qui est plus haut

Sub Init_CBBName()
Dim J As Long

  With Me.ComboBoxName
    .Clear
    .ColumnCount = 2          ' 2 colonnes
    .ColumnWidths = "-1;0"    ' 1 largeur standard et 1 masquée
    For J = 3 To Ws.Range("A" & Rows.Count).End(xlUp).Row
      .AddItem Ws.Range("A" & J)
      .List(.ListCount - 1, 1) = J      ' Dans la colonne masquée on note la ligne
    Next J
  End With
End Sub

je laisse la suite a Banzai64

Pascal

Bonsoir

Justine a écrit :

Dois je les effacer ou je peux les laisser?

Tu les ...... ce que tu veux (aucune gène pour le programme)

Justine a écrit :

que veut dire cette ligne du code: "Sub Init_CBBName()"

Outre l'explication de grisan29 ( ) je trouve plus pratique lors d'une modification, suppression ou ajout de "recharger" le combobox à la place de fermer/ouvrir l'userform

Justine a écrit :

J'ai essayé, pour rajouter quelqu'un cela fonctionne bien mais quand je modifie, le type passe de business ou private à TRUE, Pourquoi?

Une erreur que j'avais corrigée dans la macro "Ajouter" mais pas dans la macro "Modifier"

Corrigé dans cette version

bonjour Justine,banzai64 et le forum

Justine : apparemment tu veux créer un fichier pour tes clients, je vais te joindre celui que j'utilise et tu essaiera te l'adapter a ton fichier et aussi le reste du forum pourra en profité, il n'est pas de mon cru car j'en suis bien incapable

pascal

Bonjour,

Merci grisan29 pour l'indication.

Banzai64 a écrit :

Une erreur que j'avais corrigée dans la macro "Ajouter" mais pas dans la macro "Modifier". Corrigé dans cette version

Merci, effectivement, cela fonctionne maintenant

Je vais voir de l'adapter ,il est inintéressant, des que j'ai fini, je le mettrais ici

Pour les questions initiale, c'est résolu, mais souhaitant faire évoluer mon fichier avec un bouton save de la facture qui me sauvegarder uniquement la page "Invoice" en me demandant le dossier ou l'enregistrer.

Le bouton, je sais faire, par contre le code... Je n'ai pas encore trouvé d'exemple qui s'approcherais e ce que je souhaites.

Dois je mettre résolu?

Bonjour

Justine a écrit :

Je vais voir de l'adapter ,il est inintéressant, des que j'ai fini, je le mettrais ici

Heuuu s'il n'est pas intéressant pourquoi l'adapter ?

Pour ton bouton

A tester

Banzai64 a écrit :

Bonjour

Justine a écrit :

Je vais voir de l'adapter ,il est inintéressant, des que j'ai fini, je le mettrais ici

Heuuu s'il n'est pas intéressant pourquoi l'adapter ?

Pour le bouton, j'ai essayé, si je ne donne pas de nom au fichier, cela fonctionne bien mais et je veux enregistrer avec un nom cf print screen doc1

334doc1.zip (185.77 Ko)

Mais si je l'ouvres la date et le numéro de facture se mettent en automatique et non a la date et le numéro de facture enregistrer. Je ne sais pas si je suis claire mais serait il pas pus simple de sauvegarder en .pdf?

Et est il possible de le sauvegarder .pdf? Car j'ai essayé de changer .xls en .pdf mais quelque soit le lecteur pdf (adobe, foxit, pdf creator ou architect me mets fichier corrompu et je ne peux pas l'ouvrir

En attendant, j'avais fait un bouton avec la macro mais même en mettant .pdf, ça ne marche pas comme je veux cela continue de la sauvegarder en .xls et je comprends pas pourquoi

bonjour Justine, banzai64 et le forum

si le fichier client est ininterressant peut etre que le code qui suit pour enregistrer sous pdf le sera également mais j'en prends le risque, donc ce code est appeler en même temps que la sauvegarde part

Call SavePDF(Client,  Choix)
Sub SavePDF(Client,  Choix)
Dim Chemin$, Lieu$
Choix = Sheets("Feuil1").Range("D1").Value
Client = Sheets("Feuil1").Range("F3").Value

If Choix = "DEVIS   n°" Then
    Lieu = "\DevisPDF" & "\" & Client & ".pdf"
ElseIf Choix = "FACTURE  n°" Then
    Lieu = "\FacturePDF\" & Client & ".pdf"
End If

Chemin = "c:\Save_Devis_ExcelGStockTVA" & Lieu '"\DevisPDF\" & Client & ".pdf"
Sheets(Client).Activate
Range("A1:H60").Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False

End Sub

mais il ne fonctionne qu'a partir d'office 2007

évidement ce code ne m'appartient pas mais a Viard.J-P du forum excel-download

Pascal

Bonsoir

A tester

Il te faut PDFCreator (gratuit)

Voici un résultat

282truc.pdf (20.47 Ko)
Rechercher des sujets similaires à "facturation userform code vba"