Facturation, userform et code VBA
Bonjour,
J'essai de créer un dossier facturation.
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.
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_CBBNameelle 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 Subje 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 (
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
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
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 Submais 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