Macro avec création de ligne automatique

Bonjour, Et merci d’avance de votre soutien :slight_smile:
Afin d’intégrer mes factures en comptabilité, j’aurais besoin d’une macro qui me crée des lignes en fonction des données de la ligne précédente
l’export excel de l’ERP me donne une ligne avec : date / num facture / nom client / compte client / compte produit / HT / TVA / TTC

mais en compta je dois intégrer 3 lignes spécifiques par facture comprenant
1 : date - num facture - nom client - compte client / TTC
2 : date - num facture - compte TVA (donnée fixe) - TVA (ligne 2 est une ligne conditionnelle a créer si montant TVA <>0)
3 : date - num facture - compte produit - HT

Je n’ai jamais fais de macro et je suis complètement perdue, je ne sais pas du tout comment m’y prendre ni par ou commencer.
Je vous remercie de votre aide
Carole

export comptable.xlsx (15,7 Ko)
fichier avec exemple sur 2 lignes de factures, le nombre étant aléaoire chaque semaine

Bonjour,

Pareil pour nous, il nous faut un fichier Excel. :smile:
Cordialement

1 « J'aime »

export comptable.xlsx (15,7 Ko)
merci de votre réactivité
voici un exemple sur 2 factures - le nombre de facture étant aléatoire d’une semaine à l’autre.
j’espère être claire.
bonne journée

1 « J'aime »

Re,
D’où vient l’TVA : 445719 ?
Cordialement

re,
c’est une donnée fixe, c’est le compte comptable pour la TVA

j’ai omis aussi une case libellé qui doit revenir sur les 3 lignes en comptabilité et qui est composée du numéro de facture suivi d’un espace et suivi du nom de client

pour l’instant je fait un excel avec des liens hypertexte (1 onglet pour les données client TTC, 1 onglet pour le HT, et un pour la tva) – enfin je copie / colle ces 3 onglets dans une nouvelle feuille suivi d’un tri sur le numéro de facture

Je vous remercie beaucoup et ne voudrait pas prendre tout votre temps, n’hésitez pas a me dire si c’est compliqué.

1 « J'aime »
Sub ERP()
     Dim aA, aOut
     With Sheets("Feuil1")
          aA = .Range("A3:A" & .Range("A" & Rows.Count).End(xlUp).Row).Resize(, 9).Value2
          ReDim aOut(1 To UBound(aA) * 3, 1 To 9)
          For i = 1 To UBound(aA)
               For j = 0 To 2
                    aOut(i * 3 - j, 1) = aA(i, 1)     'date
                    aOut(i * 3 - j, 2) = aA(i, 2)     'facture
               Next
               aOut(i * 3 - 2, 3) = aA(i, 3)     'nom
               aOut(i * 3 - 2, 4) = aA(i, 4)     'cpte client
               aOut(i * 3 - 2, 9) = aA(i, 9)     'ttc
               aOut(i * 3 - 1, 6) = 445719   'cpt tva
               aOut(i * 3 - 1, 8) = -aA(i, 8)     'tva
               aOut(i * 3, 5) = aA(i, 5)     'cmpt comta
               aOut(i * 3, 7) = -aA(i, 7)    '-ht
          Next
          
          .Range("K" & Rows.Count).End(xlUp).Offset(2).Resize(UBound(aOut), UBound(aOut, 2)).Value = aOut
     
     End With
End Sub
[export comptable (2).xlsm|attachment](upload://tVYGJtcPOe1GRXFkjJkog5lDjMm.xlsm) (23,1 Ko)
une macro "erp" avec raccourci CTRL+SHIFT(Maj)+E
2 « J'aime »

je re remercie du fond du coeur
c’est merveilleux !!!
trop bien
(je n’ai pas réussi a télécharger le fichier que tu me joint mais j’ai copié collé le code dans une macro ERP et ouvert le mode développeur)
merci merci merci :slight_smile:

1 « J'aime »

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.