Microsoft 365 Macro pour aide facturation

l.et.lilou

XLDnaute Junior
Bonjour,

J'ai besoin de votre aide sur l'établissement d'une macro qui pourrait me faire gagner 1 journée chaque mois dans mon travail.
L'idée étant que je factures mes clients selon des tranches kilométriques avec des prix qui diffèrent selon les tranches.
J'ai réussi à automatiser une partie du fichier qui me donne le chiffre d'affaires à facturer.
Maintenant j'aimerais que via une macro, avoir un fichier "simple" qui en ressort, constitué de lignes de factures pour l'intégration automatique dans mon outil de facturation.

Je vous joins un template de mon fichier automatisé retravaillé (onglet "Facturation") et j'aimerais, via une macro, que le résultat donne ce qu'il y a dans l'onglet "Intégrat°".
Voici les caractéristiques :
- Intégration.Référence= Facturation.référence
- Intégration.Regroupmt = Facturation.Regroupt fac ?
- Intégration.Abonnement = toujours le texte "A2A"
- Intégration.Date = 1er jour du mois. Exemple : aujourd'hui nous sommes le 23/03/2023, mettre "01/03/2023", si nous sommes le 02/04/2023, mettre "01/04/2023"
- Intégration.libellés ligne = toujours le texte "livraisons effectuées "+tranche kilométrique permettant de ressortir le tarif + "Km"
- Intégration.Features = toujours le texte "Balances_lines"
- Intégration.Quantité = pour le 1er client, il va chercher la quantité remplie différent de 0
- Intégration.CAHT = pour le 1er client, il va chercher le montant associé à la quantité indiquée.

J'espère que vous pourrez m'aider....

Merci à vous !
 

Pièces jointes

  • test facturation.xlsx
    13.5 KB · Affichages: 14

AtTheOne

XLDnaute Accro
Supporter XLD
Bonjour à toutes & à tous,
bonjour @l.et.lilou

Préalableament j'ai transformé ta liste de facturation en un tableau structuré nommé "tb_Facturation" et j'ai adapté les entêtes de ce tableau (suffixes " km" et " €" pour les colonnes km et €)

Essaie cette macro (dans le module mdl_AtTheOne)
VB:
Sub Intégration()
   
     Dim Dateintégrat° As Date, Entête, tb, NbLgn As Long, i As Long, j As Integer, lgn As Long
     Dateintégrat° = DateSerial(Year(Date), Month(Date), 1)      'Date du début du mois courant
     Entête = [tb_facturation[#Headers]]                         'Entête du tableau structuré tb_facturation
     tb = [tb_facturation]                                       'Données du tableau tb_facturation
   
     'Nbre de lignes du tableau résultat (nbre de valeurs différentes de 0 dans la plage des km)
     NbLgn = WorksheetFunction.CountIf([tb_facturation[[0-2 km]:[35-40 km]]], ">0")
     ReDim Tbres(1 To NbLgn, 1 To 8)                             'Dimensionnement du tableau résultat

     lgn = 0
     For i = 1 To UBound(tb)                                     'Boucle sur les lignes du tableau de facturation
          For j = 7 To 43                                        'Boucle sur les différents kilométrages
               If tb(i, j) <> 0 Then
                    lgn = lgn + 1
                    Tbres(lgn, 1) = tb(i, 1)
                    Tbres(lgn, 2) = tb(i, 5)
                    Tbres(lgn, 3) = "A2A"
                    Tbres(lgn, 4) = Dateintégrat°
                    Tbres(lgn, 5) = "Livraisons effectuées " & Entête(1, j)
                    Tbres(lgn, 6) = "Balances_lines"
                    Tbres(lgn, 7) = tb(i, j)
                    Tbres(lgn, 8) = tb(i, j + 37)
               End If
          Next
     Next i
   
     With sh_intégrat°
          .Cells(2, 1).Resize(.Rows.Count - 1, .Columns.Count).ClearContents 'Nettoyage des anciennes lignes
          .Cells(2, 1).Resize(NbLgn, 8).Value = Tbres            'Collage de l'ensemble des résultats dans le tableau Intégrat°
     End With
   
End Sub
voir le fichier joint (bouton sur la feuille Intégrat°)
Bon courage
 

Pièces jointes

  • test facturation.xlsm
    25.5 KB · Affichages: 9

Discussions similaires

Statistiques des forums

Discussions
315 094
Messages
2 116 157
Membres
112 673
dernier inscrit
ìntellisoft