> Tous les forums > Forum Bureautique
 Créer facture sur Word à partir de commandes Excel
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
danestpo
  Posté le 18/11/2012 @ 21:25 
Aller en bas de la page 
Petit astucien

Bonjour,

Je suis un étudiant débutant sur Excel. J'ai créé un tableau, genre liste de clients. J'aimerais apprendre comment je pourrais, en mettant un "x" dans une certain cellule (ou autre chose au besoin), déclencher la création automatique d'une facture (à partir d'un modèle déjà fait) dans un fichier Word, avec le nom du client, son adresse, son numéro de téléphone et un tableau inséré Excel, avoir seulement à compléter les lignes en y inscrivant les quantités de pièces, leur nature, leur prix: le sous-total, et les calculs se feraient tout seul, avec les taxes et le grand total à payer.

Dois-je utiliser la commande "IF" (SI) et si oui, comment la paramétrer ? J'ai cherché sur Internet mais peut-être pas aux bons endroits puisque je n'ai pas trouvé. J'ai trouvé des explications sur la commande "IF" mais ça ne va pas assez loin. Je ne veux pas nécessairement qu'on me cuise tout dans le bec mais avoir ma part à faire. Je ne possède pas de notions de programmation, juste une base en Word et Excel (version 2000).

S'agirait-il plutôt de créer ce qu'on appelle une "macro" ? Ça a l'air très compliqué, ça.

Votre aide est très appréciée. Merci d'avance.



Modifié par danestpo le 18/11/2012 21:26
Publicité
galopin01
 Posté le 18/11/2012 à 22:27 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonjour,

Habituellement les gens qui font leurs factures le font directement avec Excel, mais Excel + Word me parait assez improbable.

Effectivement cela passe par une dose non négligeable de programmation.

A+

danestpo
 Posté le 18/11/2012 à 22:58 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci galopin01 !

Alors je revise mon plan selon votre commentaire. J'opte maintenant de créer ma facture sur Excel, mon but n'étant pas de me compliquer la vie ni celle des autres.

Je viens de commencer à étudier les macros et je ne sais pas si je vais y arriver. Par exemple, comment utiliser un modèle de facture et pourvoir l'utiliser sans l'effacer ? Comment y transférer toutes les données du client ? Il y a bien des mystères pour moi là-dedans.

Puis-je vous demander conseil si ça coince ?

Merci encore !

galopin01
 Posté le 18/11/2012 à 23:53 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien
danestpo a écrit :

Puis-je vous demander conseil si ça coince ?


Bien sur ! Il suffit de taper Facture Excel sur Google pour avoir un choix énorme.

A+



Modifié par galopin01 le 18/11/2012 23:53
vieuxmonsieur
 Posté le 19/11/2012 à 00:02 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

bonjour a tous,

n'y a t-il pas un modele de facture dans excel ?

fichier - nouveau - modele

danestpo
 Posté le 19/11/2012 à 01:05 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci à galopin01 et à vieuxmonsieur pour vos réponses !

Wow, j'ai de quoi avancer beaucoup avec ce que vous m'avez donné comme information !!

Je vais y travailler et je reviendrai pour vous dire où j'en suis et demander de l'aide en cas de besoin.

Merci encore.

galopin01
 Posté le 19/11/2012 à 02:32 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonjour,

A tout hasard si tu repasse par là, je joins ici une petite ébauche d'un fichier de ce genre.

Fichier au format .xls avec macro

Le même en xlsm

A+

danestpo
 Posté le 19/11/2012 à 03:30 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci galopin01 ! Ça me sera très utile.

Je travaille sur les macros présentement.

J'ai réussi à en créer une pour copier le contenu de plusieurs cellules qui sont toutes sur la même ligne à un modèle de facture que j'ai créé, juste pour pratiquer. Ça fonctionne très bien pour la ligne 1 seulement. SVP, que faire pour que cette macro prenne les infos de la 2ième ou 3ième ligne pour les copier dans les cellules de la facture ?(Le but est de ne pas avoir à réécrire les mêmes informations.)

Il y a 7 cellules à copier. Voici la macro:

Sub Facture()

Selection.Copy
Sheets("Facture (2)").Select
Range("B2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.MergeCells = False
End With
Sheets("Feuil1").Select
Range("B2").Select
Selection.Copy
Sheets("Facture (2)").Select
Range("B3").Select
ActiveSheet.Paste
Application.CutCopyMode = False
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.MergeCells = False
End With
Sheets("Feuil1").Select
Range("C2").Select
Selection.Copy
Sheets("Facture (2)").Select
Range("B4").Select
ActiveSheet.Paste
Application.CutCopyMode = False
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.MergeCells = False
End With
Sheets("Feuil1").Select
Range("D2").Select
Selection.Copy
Sheets("Facture (2)").Select
Range("B5").Select
ActiveSheet.Paste
Application.CutCopyMode = False
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.MergeCells = False
End With
Sheets("Feuil1").Select
Range("E2").Select
Selection.Copy
Sheets("Facture (2)").Select
Range("B6").Select
ActiveSheet.Paste
Application.CutCopyMode = False
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.MergeCells = False
End With
Sheets("Feuil1").Select
Range("F2").Select
Selection.Copy
Sheets("Facture (2)").Select
Range("B8").Select
ActiveSheet.Paste
Application.CutCopyMode = False
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.MergeCells = False
End With
Sheets("Feuil1").Select
Range("G2").Select
Selection.Copy
Sheets("Facture (2)").Select
Range("B9").Select
ActiveSheet.Paste
Application.CutCopyMode = False
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.MergeCells = False
End With
Sheets("Feuil1").Select
End Sub

Merci à l'avance !

galopin01
 Posté le 19/11/2012 à 08:34 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

danestpo a écrit :

SVP, que faire pour que cette macro prenne les infos de la 2ème ou 3ème ligne pour les copier dans les cellules de la facture

Bonjour,


Malheureusement ce n'est pas aussi simple qu'il y parait. Tout d'abord il faut dire qu'une macro enregistrée doit aussitôt être élaguée (on dit optimisée) afin d'ôter les bribes inutiles.

Sinon tu te retrouverais très rapidement envahi par des km d'un fouilli inextricable et qui ralentiraient considérablement tout le bouzin.

De plus l'espace imparti à VBA se retrouverait vite saturé et tu serais rapidement bloqué.

Pour te donner une vague idée, j'ai élagué ton code. Voici ce que ça donne :

Sub Facture()
Sheets("Feuil1").Activate
With Sheets("Facture (2)")
Range("A2").Copy .Range("B2")
Range("B2").Copy .Range("B3")
Range("C2").Copy .Range("B4")
Range("D2").Copy .Range("B5")
Range("E2").Copy .Range("B6")
Range("F2").Copy .Range("B8")
Range("G2").Copy .Range("B9")
Application.CutCopyMode = False
End With
End Sub

Enfin il n'est pas possible de prévoir si c'est la 2ème, 3 ou n.ièmeligne que tu veux copier.

VBA ne peux pas détecter ce que tu veux copier. Il faut bien lui donner cette information d'une manière ou d'une autre.

C'est la raison pour laquelle une facture fait (en général) très peu appel à VBA

Regarde un peu mon modèle, tu verras que les zones "Clients" et "produit" sont remplies via des listes de validation en faisant appel à des formules qui utilisent des "Références Clients" et des "Références produits".

La partie VBA concerne essentiellement la numérotation des factures. L'archivage des factures et la remise à zéro de la facture après archivage.

A+

danestpo
 Posté le 19/11/2012 à 13:54 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci encore galopin01 ! Je rends hommage à tes talents en programmation. Cela me fascine de voir comment tu as optimisée ma macro !

Pour la faire fonctionner avec d'autres lignes, je les coupes puis les colle en haut de la liste. Je me demande maintenant s'il est possible de créer une macro pour cela ou de modifier ma macro Facture pour y arriver.

Je vais faire ma part en travaillant là-dessus et reviendrai plus tard.

Merci encore !

danestpo
 Posté le 19/11/2012 à 14:46 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

J'ai créé une macro que j'ai nommé "déplacer". Elle prend la 5ième ligne et la déplace à la 2ième ligne.

Est-il possible de modifier cette macro pour qu'elle prenne la ligne que je vais sélectionner au besoin au lieu de prendre toujours la 5ième ?

Sub déplacer()
Rows("5:5").Select
Selection.Cut
Rows("2:2").Select
Selection.Insert Shift:=xlDown
End Sub

Ce n'est pas que je tienne à faire les choses toutes croches en n'utilisant pas les modèles que tu m'as envoyé. Je suis en apprentissage en travaillant les limites des macros.



Modifié par danestpo le 19/11/2012 14:47
galopin01
 Posté le 19/11/2012 à 16:44 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

No problème :

Sub deplacer()
Dim i%
i = ActiveCell.Row
Rows(i).Cut
Rows(2).Insert Shift:=xlDown
End Sub

A+

danestpo
 Posté le 19/11/2012 à 18:21 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Je viens d'essayer cette dernière macro et elle fonctionne parfaitement.

Merci beaucoup !

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
Mini PC NiPoGi H1 (Ryzen 7 6800HU, 16 Go RAM, SSD 512 Go, Radeon 680M, Windows 11 Pro)
333,48 € 429 € -22%
@Amazon
SSD Orico S500-Pro 512 Go SATA
25,99 € 35 € -26%
@Amazon
Batterie portable Ugreen Nexode 140W 25 000 mAh (1xUSB C 100W PD, 1x USB C 45W PD, 1xUSB A 18W)
58,57 € 99,99 € -41%
@Amazon Espagne
Ultrabook Asus VivoBook S15 (FullHD OLED, Ryzen 5 7520U, 16 Go RAM, SSD 512 Go, Windows 11)
529,99 € 699,99 € -24%
@Cdiscount
Faitout Tefal Duetto (inox, 24 cm, 4.7L, couvercle en verre filrant, induction, four)
32,49 € 50,99 € -36%
@Amazon
Mini PC ACEMAGICIAN Vista V1 (Alder Lake N97, 16 Go RAM, SSD 256 Go, Windows 11)
150,41 € 179,99 € -16%
@Amazon

Sujets relatifs
creer une facture avec word et excel
créer des étiquettes avec excel et word 2000
facture a partir de word
Créer un lien entre excel et word
Excel ou Word ? créer un papier cadrillé
Créer un index des fichiers Word et Excel
créer étiquettes à partir d'un fichier excel
Excel vers Word
impossible d'ouvrir microsoft excel et word
Word excel starter 2010
Plus de sujets relatifs à Créer facture sur Word à partir de commandes Excel
 > Tous les forums > Forum Bureautique