Récapitulatif Factures automatique tous les trimestres

Bonjour le Forum,

J'ai un facturier ou je crée mes factures, et que j'envois dans un onglet mensuel (ex avril 2022, mai 2022, juin 2022...), pas de soucis pour cette étape...

je désirerais qu'un récap se fasse automatiquement tous les 3 mois :

janvier/février/mars

avril/mai/juin

juillet/août/septembre

octobre/nombre/décembre

Dans mon fichier ci-joint, vous trouverez la feuille trimestre-2 résultat (exemple de ce que je désire en recap...)

je vous remercie par avance pour aide dans mon projet.

OLi

22facture-recap.xlsm (103.96 Ko)

Bonsoir à tous,

Pourquoi créer un onglet mensuel ? Il serait peut-être intéressant d'alimenter une BDD récapitulative que vous pourriez analyser ensuite via des TCD (clients, mois, trimestre, etc....)

Bonjour JFL,

C'est à la demande du comptable, il désire un récap mensuel détaillé et un récap global par trimestre dans le format présenté dans mon fichier...

merci

Oli

Bonsoir de nouveau,

Peut-être que cela conviendra à votre comptable...... :

re,

Grand merci JFL pour ta solution TCD... elle tout a fait fonctionnel

J'aimerais également une solution en gardant la présentation de mon fichier...solution en VBA.

Merci d'avance

OLi

Bonjour à tous,

Je vous remercie de ce retour.

Pour l'option VBA, je passe la main aux spécialistes de la chose.

Bonjour à tous,

suite au dernier message de JFL, je fais appel au ténors du vba afin d'essayer de trouver une solution pour mon projet...

je vous en remercie par avance...

OLi

Sub Trimestre()
     Dim sh    As Worksheet, iAnnee, iTrimestre
     With Sheets("trimestre_Formulaire")
          .Range("A5:G26,F1").ClearContents     'effacer ces ranges
          iAnnee = .Range("K3").Value     'quelle année
          iTrimestre = .Range("K4").Value     'quel trimestre
          If WorksheetFunction.Median(2020, 2030, iAnnee) <> iAnnee Then MsgBox "mauvaise annee": Exit Sub
          If WorksheetFunction.Median(1, 4, iTrimestre) <> iTrimestre Then MsgBox "mauvaise trimestre": Exit Sub

          Mois = Evaluate("=text(column(a1:L1)*28,""[$-040C]mmmm"")")     'les 12 mois de l'année en français
          For i = 1 To 3
               speriode = speriode & IIf(speriode = "", "", " ") & Mois((iTrimestre - 1) * 3 + i)

               On Error Resume Next
               Set sh = Nothing
               s = Mois((iTrimestre - 1) * 3 + i) & " " & iAnnee
               Set sh = Sheets(s)     'teste si cette feuille existe
               If sh Is Nothing Then MsgBox "cette feuille n'existe pas !!!", vbCritical, s: Exit Sub
               On Error GoTo 0

               r = sh.Range("A" & Rows.Count).End(xlUp).Row     'dernier ligne de cette feuille
               Set c = .Range("A" & Rows.Count).End(xlUp).Offset(1)     'ligne suivante dans feuille trimestre
               If c.Row > 5 Then Set c = c.Offset(1)     'si c'est pas la ligne 5, ajouter une ligne supplémentaire
               If r > 4 Then c.Resize(r - 4, 7).Value = sh.Range("A5").Resize(r - 4, 7).Value     'copy range
          Next

          speriode = speriode & " " & iAnnee
          .Range("F1").Value = speriode

          On Error Resume Next
          Application.DisplayAlerts = False
          Sheets("trimestre " & iTrimestre & "_Résultat").Delete
          Err.Clear
          .Copy after:=Sheets(Sheets.Count)
          If Err.Number = 0 Then ActiveSheet.Name = "trimestre " & iTrimestre & "_Résultat"
          Application.Goto .Range("A1")
          On Error GoTo 0

     End With
End Sub

Bonjour BsAlv,

Je te remercie pour ta rapidité ton code qui fonctionne très bien...

J'ai juste une petite chose, quand le récap trimestriel pourrait dépasser une feuille, j'aimerais qu'une seconde suive avec la même présentation et le reste des données...elle sera suivie d'une signature...

Je te remercie déjà pour le temps consacré pour mon projet.

OLi

re,

la signature est peut-être mal compris.

Bonjour BsAlv,

Je te remercie, pour cette nouvelle version...exemple si j'ai plus de deux feuilles je dois intervenir au niveau de ces lignes :

 r = sh.Range("A" & Rows.Count).End(xlUp).Row     'dernier ligne de cette feuille

               If r > 4 Then
                    Set c = .Range("A" & Rows.Count).End(xlUp).Offset(1)     'ligne suivante dans feuille trimestre
                    If c.Row = 38 Then Set c = .Range("A37").End(xlUp).Offset(1)
                    If c.Row <> 35 And c.Row <> 5 Then Set c = c.Offset(1)     'si c'est pas la ligne 5, ajouter une ligne supplémentaire
                    If c.Row <= 27 Then
                         If c.Row < 27 Then c.Resize(Application.Min(27 - c.Row, r - 4), 7).Value = sh.Range("A5").Resize(r - 4, 7).Value     'copy range
                         If r - 4 > 27 - c.Row Then .Range("A38").Resize(r - 31 + c.Row, 7).Value = sh.Range("A5").Offset(27 - c.Row).Resize(r - 4, 7).Value     'copy range
                    Else
                         c.Resize(r - 4, 7).Value = sh.Range("A5").Resize(r - 4, 7).Value   'copy range
                    End If
               End If
          Next

je dois rajouter une ligne avec un if >54 pour une troisième feuille, ou il y a t il une possibilité de faire cela automatiquement en fonction du nombre de données...(pour une page, et ...autant de pages que de données)

Pour la signature, c'est top nickel

Merci d'avance

OLi

est-ce que vous avez besoin d'un subtotal à la fin de chaque page ?

re,

oui , cela ferait plaisir pour une meilleur lecture...

Merci

Oli

c'est fait pour 3 pages, mais c'est facile pour ajouter quelques en plus.

Si vous voulez plus ou moins de lignes par page, ajouter ou eliminer des lignes complètes au milieu de ce page, mais pas la première ou dernière ligne.

Après execution, vous voyez un "printpreview" et la feuille a sauvegardée comme PDF dans le même subdirectory

18facture-recap-1.xlsm (116.23 Ko)

Bonjour BsAlv,

Merci beaucoup pour cette dernière proposition, elle me convient parfaitement.

@+

OLi

re,

BsAlv,

Si je veux mettre une entête avec logo avant chaque tableau ?

Ici ok pour le 1er tableau, début du printarea, mais pour les autres tableaux...?

Peux-tu m'aider...

Merci

OLi

bonjour,

c'est vraiment pas compliqué, il faut juste le mettre dans le "header", mais je ne le sait pas expliquer parce que je connais pas le ribon d'excel en français.

La chose la plus difficile, c'est de dimensioner l'image à votre préférence. Avez-vous un idée du largeur et hauteur de votre logo (en cm) ?

re,

le logo, fait + ou - 3 cm en largeur et + ou - 5 en hauteur

Merci

OLi

Rechercher des sujets similaires à "recapitulatif factures automatique tous trimestres"