Macro d'enregistrement de factures

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Olivier18071981

XLDnaute Nouveau
Permière macro excel... pas simple

Je suis un vrai novice en programmation vba.

Je cherche à faire une macro qui me permette d'enregistrer une série de factures dans une liste. Cette liste irait prendre le nom du client, le montant HT,TTC et la TVA de sa facture. Cette facture doit respecter une mise en page assez spéciale, car mon client a déjà ses habitudes de mise en page.

De plus je souhaite élaborer un générateur de facture, qui génère automatiquement un numéro de facture et affiche la date d'aujourd'hui.
Je vois bien comment programmer ca en algorithme mais je ne connais pas du tout la syntaxe Excel qui m'a l'air assez peu explicite (j'ai appris l'algorithmique en TurboPascal).

Je joins un exemplaire du fichier que j'aimerai pouvoir dupliquer.

Quelqu'un peut il m'aider?

Merci d'avance
 

Pièces jointes

Dernière édition:
Re : Macro d'enregistrement de factures

Bonjour


Je te conseille de visiter la section Téléchargements du forum


Un exemple de ce que tu peux y trouver

Lien supprimé


Il ya d'autres qui pourront taider à mieux comprendre le VBA.


En espérant ce que cela t'aide.

A+

Staple
 
Re : Macro d'enregistrement de factures

J'ai bien vu l'ensemble de ces téléchargements possibles, mais aucun ne laisse la source disponible et ils ont tous des fonctions qui me sont inutiles.

Mon principal soucis est de pouvoir reproduire une mise en page de factures et que la saisie d'une facture puisse s'enregistrer dans une feuille dédiée.

J'ai remodifié ma démo et trouvé une macro d'un style un peu approchant que j'essaye de comprendre
 

Pièces jointes

Re : Macro d'enregistrement de factures

Sheets("Base de Facture").Select
Cells.Select
Selection.Copy
Workbooks.Add
Range("707002").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False


Je crois y reconnaitre une commande permettant de copier la page base de facture dans le feuillet 707002. Enfin je me trompe peut etre
 
Re : Macro d'enregistrement de factures

Re


Sub Macro2()
Selection.CurrentRegion.Copy' copie les cellules de la zone encours
Workbooks.Add
Selection.PasteSpecial xlValues, xlNone, False, False
Selection.PasteSpecial lFormats, xlNone, False, False
End Sub

Sheets("Base de Facture").Cells.Copy 'la tu copies toutes les cellules de la feuille
Workbooks.Add
Range("707002").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
 
Re : Macro d'enregistrement de factures

Quand tu parles de zone en cours....faut il que l'exécution de la macro fasse suite à une sélection par l'utilisateur ?

Je bute toujours sur la boucle tant que qui me permet de ne pas écraser mes lignes de commandes saisies auparavant. Je vais essayer de jouer avec le numéro de commande pour définir la ligne à remplir...
 
Re : Macro d'enregistrement de factures

Sub Enregistrefacture()
Application.ScreenUpdating = False
Application.Goto Reference:="modfact"
Sheets("Base de Facture").Select
Ind = [numfac]
Sheets("liste facture").Select
With Selection
[A[Ind]] = [Ind]
[B[Ind]] = ['Base de Facture'!E13]
[C[Ind]] = ['Base de Facture'!G11]
[D[Ind]] = ['Base de Facture'!G36]
[E[Ind]] = ['Base de Facture'!G37]
[F[Ind]] = ['Base de Facture'!G38]
End With

End Sub

Alors évidemment ca ne fonctionne pas...ma commande pour établir ma variable globale (ind) doit être fausse. Je suis en train de regarder comment enlever les 5 premiers caractères du numéro de facture pour remplir correctement ma liste de factures
 
Re : Macro d'enregistrement de factures

Re
Si je comprends bien :
[B17] renvoie la valeur de la cellule B17
Seulement alors numfac est déclaré comme variable locale (uniquement dans ta procédure) ou alors comme variable globale (pour le classeur)?
A ce moment là, si je cherche à me positionner sur la case (A&numfac) d'un autre classeur pour y placer une valeur de mon classeur actif...pourquoi ma déclaration n'est-elle pas bonne ?

Ind = [numfac]
Sheets("liste facture").Select
With Selection
A& Ind = Ind

Je crois pourtant me souvenir que la concaténation en excel est le symbole &

Au fait merci pour le lien précédent...il est vraiment de très bonne qualité
 
Re : Macro d'enregistrement de factures

edit: tu peux tester celle la aussi
Code:
[B]Sub test()[/B]
[B]Dim x As String[/B]
[B]x = [numfac].Address(0, 0)[/B]
[B]MsgBox "Référence de numfac : " & x[/B]
[B]End Sub[/B]
Non le numfac correspond à une cellule nommée

voir Insertion/Noms

et en VBA

on peut l'utiliser ainsi
Ainsi tu peux tester cette petite macro
Code:
sub test()
Dim x as string
x=[numfac]
Msgbox x
End sub
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
18
Affichages
705
Réponses
7
Affichages
1 K
Compte Supprimé 979
C
Réponses
6
Affichages
2 K
Retour