Facturation Excel

adrianolms

XLDnaute Nouveau
Bonjour à tous,

Je suis nouveau sur le forum et plutôt novice en VBA.

Je désire créer un classeur de facturation/devis complet. J'ai pour le moment bien avancé grâce aux tuto et au forum, mais il me reste 2 problèmes que je n'arrive pas a résoudre.

Sur la feuille menu principal du doc joint, je remplie l'ensemble des données, y compris l'ajout et la suppression de pages pour le devis/facture via les boutons. Or j'aimerais que lorsque j'ajoute une page (dans la feuille document), un sous total du montant HT de la première page soit indiqué en bas de cette page puis reporté en haut de la seconde. Or je n'arrive pas a le coder.

J'ai aussi pour projet d'affecter une macro a chacun des boutons dans la colonne liste d'impression de la première feuille afin d'imprimer directement par exemple les conditions de vente qui seront présentes dans la feuille du même nom au dos de la dernière page du devis. Cela vous semble-t-il possible en créant une macro ou cela dépend-t-il de l'imprimante ?

Merci d'avance pour vos réponses !
 

Pièces jointes

  • Devis_Facturation.xlsm
    55.3 KB · Affichages: 92

adrianolms

XLDnaute Nouveau
Re : Facturation Excel

Bonjour Pascal, Merci pour ta réponse.

J'ai finalement opté pour 3 feuilles différentes selon le nombre de page et tout marche nickel.

En revanche, pour l'impression cela se corse. Comme j'ai pu le dire, j'aimerai que les conditions générale de vente soient imprimées au verso de la dernière page du devis/facture. Pour ma feuille devis_1page pas de soucis, j'ai trouvé comment faire sur le forum. En revanche dès que je passe à 2 ou 3 pages je ne sais pas comment faire. Lors de l'impression 2 pages, j'aimerais que la première soit uniquement recto avec la première page du devis et que la 2nde soit recto verso avec au recto la fin du devis et au verso les conditions générale de vente (qui ne font qu'une page). Même schéma pour la feuille 3 pages. Cela vous semble-t-il faisable avec un bouton pour lancer chacune des impressions?

Bonne fin de 14 juillet,

Adriano
 

grisan29

XLDnaute Accro
Re : Facturation Excel

re
et si ta dernière page fini le devis ou facture sur moitié, je vais de toute façon te laisser entre les mains de Paritec où d'autres car moi je ne pourrai suivre car je serai absent le reste de la semaine et semaine prochaine

Pascal
 
Dernière édition:

grisan29

XLDnaute Accro
Re : Facturation Excel

bonsoir adriano
tu n'a pas répondu a ma question de départ
et si ta dernière page fini le devis ou facture sur moitié

j'ai ce code qui effectue un changement de page automatiquement dès qyu'un certain nombre de lignes est écrites
Code:
Sub ChangementPage(NoLigne As Long)
With Sheets("facture")
    'copie des données de fin et de début de page
    [Modèle!A1:P13].Copy
    'insertion de la zone copiée (il va falloir ajouter la ligne d'entêtes
    .Cells(NoLigne, 1).Insert Shift:=xlDown
    'insertion du saut de page
    .HPageBreaks.Add before:=.Cells(NoLigne + 4, 1)
    'positionnement des formules de tête de page
    .Cells(NoLigne + 9, "H").FormulaR1C1 = "=R[-11]C-1"
    .Cells(NoLigne + 9, "J").FormulaR1C1 = "=R[-11]C"
    .Cells(NoLigne + 9, "K").FormulaR1C1 = "=R[-11]C"
    .Cells(NoLigne + 8, "A") = .[D1]
    .Cells(NoLigne + 8, "C") = .[D2]
    .Cells(NoLigne + 11, "G").FormulaR1C1 = "=SUM(R[-2]C:R[-1]C)"
    .Cells(NoLigne + 11, "J").FormulaR1C1 = "=SUM(R[-2]C:R[-1]C)"
    .Cells(NoLigne + 11, "K").FormulaR1C1 = "=SUM(R[-2]C:R[-1]C)"
    'formatage cellule
    .Range(.Cells(NoLigne + 8, "A"), .Cells(NoLigne + 8, "C")).Font.Size = 16
    .Range(.Cells(NoLigne + 8, "A"), .Cells(NoLigne + 8, "C")).Font.Bold = True
    .Cells(NoLigne + 8, "A").HorizontalAlignment = xlRight
    .Cells(NoLigne + 8, "C").HorizontalAlignment = xlLeft
End With
End Sub
et qui est déchenché par
Code:
'calcul de la valeur de la variable lig
With Sheets("facture")
    lig = .Range("I65536").End(xlUp).Row
' est-ce que lig représente la dernière ligne d'une page ?
'56 représente le nombre de lignes de la première page
'et 80 le nombre de ligne des autres pages selon le modèle fourni.
'il y a sans doute lieu de modifier cette dernière valeur.
If (lig - 56) Mod 80 = 0 Then
    'si page pleine, changement de page
    ChangementPage lig + 3
    lig = lig + 14
'si B19 est vide, c'est la première ligne à utiliser
ElseIf [I12] = "" Then
   lig = 12
Else
   'sinon, on prend la première ligne vide
   lig = .Range("I65536").End(xlUp)(2).Row
End If

Pascal
 
Dernière édition:

adrianolms

XLDnaute Nouveau
Re : Facturation Excel

Bonjour Pascal, le forum,

Je n'avais pas bien saisi ta question. Etant donné que je suis passé sur un fichier ou j'ai un onglet (feuille excel) suivant le nombre de pages (de la facture ou du devis), ma dernière page ne peut pas être qu'a moitié remplie. Il y aura du vide, mais obligatoirement le total en bas.

Je te joins le fichier.

Merci et bonne journée

Adriano
 

Pièces jointes

  • DEVIS FACTURE version bis.xlsm
    88 KB · Affichages: 52

grisan29

XLDnaute Accro
Re : Facturation Excel

Bonjour adriano

j'ai télécharger ton fichier, mais comment veux rentrer des articles dessus tes devis ou factures car il n'y a pas de base de données , même bidons mais conforme serait un plus pour t'aider, avec le nombre de colonne qu'il te faut
ce n'est pas prévu que je sois la mais changement de programme

en plus ton fichier est quasi vide et tu dit pas ou tu en es, ta Sheets("Document") est où

je pensait que le cas où une demi feuille serait trop juste pour tes conditions générales

Pascal
 
Dernière édition:

Discussions similaires

  • Question
Microsoft 365 Boutons
Réponses
28
Affichages
610
  • Question
Microsoft 365 excel
Réponses
13
Affichages
466

Statistiques des forums

Discussions
312 428
Messages
2 088 345
Membres
103 821
dernier inscrit
Lorient56