Ajouter des lignes si compte client détecté

Bonjour le forum

Aujourd'hui ca fait 1 semaine que je suis sur une macro qu'on me demande a chaque fois des modifications !

En faite j'ai un export de données a intégrer dans un logiciel comptable .

MAINTENANT je dois faire une macro que Selon le compte client détecté "706400" qui correspond a la TVA 10% et "445720" son HT 10% et " 706500" la TVA 20 % et son HT 20% "445722"qui se présente comme ceci sur tous mes dossiers

image

Sur ces lignes les deux comptes sont présents avec une dernière ligne "le nom du client"

et en gros ma macro doit détecté si un compte Tva est détecté (ou les deux ) il faut afficher le mot TVA 10% ou TVA 20% après le nom du client et si il y a les deux que ca dédouble la ligne du compte client comme ci-dessous

image

par contre quand cela dédouble la ligne pour la Tva 10% Ex: on fait la somme des comptes correspondant (706400 + 445720) en gros (3908.13 + 390.78 = 4298.91) pour la tva10et pour les 20% (706500 + 445722) qui est (142.58 + 28.51 = 171.09)

mais des fois il se pourrait que une seul compte apparait comme ci-dessous et cela doit affiché Tva 20% après le nom de facture mais sans dédoublé de ligne

image

ou pour les 10%

image

Voici le code d'un des collègues du forum qui ma énormément aidé que j'essaye d'adapter mais sans plus et un fichier avec des infos anonymes crée de toute pièces

7testmacrodoubletva.csv (751.00 Octets)
Sub MacroInsertion()
   Dim i As Integer, J As Integer      ' déclarer les variables

   Application.ScreenUpdating = False  ' geler temporairement l'affichage pour augmenter la rapidité d'exécution

   dlig = Cells(Rows.Count, "A").End(xlUp).Row  ' trouver la dernière ligne du tableau (basé sur la colonne A)

   For i = 2 To dlig    ' boucler de la 1re ligne de données jusqu'à la dernière

      If Cells(i, "C") = "445720" Then    ' si le numéro est trouvé en colonne C

            ' boucle pour trouver le numéro commençant par 35 sur les lignes plus basses
            For J = i To dlig

            If Cells(J, "C") Like "0*" Then    ' si trouvé en colonne C

               ' teste si les lignes (valeur de J et J+1) commencent par 35
               ' cela indiquerait que le traitement a déjà été fait, donc mettre fin au traitement
               If Cells(J, "C").Value = Cells(J + 1, "C").Value Then Exit For

               ' sinon, insérer une ligne
               Rows(J).Insert

               ' Copier la ligne en dessous (J+1) sur la ligne (valeur de J)
               Range("A" & J & ":G" & J).Value = Range("A" & J + 1 & ":G" & J + 1).Value

               ' remplacer le 20% par 10% dans le libellé de la colonne F
               Cells(J, "F") = Replace(Cells(J, "F"), "20%", "10%")

               ' additionner E 4 lignes au-dessus (7064400) avec E 2 lignes au-dessus (445720)
               ' puis multiplier par 0.1 (10%), écrire le résultat en E de 10%
               Cells(J, "D").Value = (CDbl(Cells(J - 4, "E").Value + CDbl(Cells(J - 2, "E").Value)))

               ' additionner E 3 lignes au-dessus (7064500) avec E 1 ligne au-dessus (445722)
               ' puis multiplier par 0.2 (20%), écrire le résultat en E de 20%
               Cells(J + 1, "D").Value = (CDbl(Cells(J - 3, "E").Value + CDbl(Cells(J - 1, "E").Value)))

               ' 1 ligne a été insérée, donc la dernière ligne a changé, on incrémente
               dlig = dlig + 1

               ' on sort de la 2e boucle pour retourner à la 1re afin de continuer sur les lignes suivantes
               Exit For

            End If   ' mettre fin à la 2e condition

         Next J      ' aller à la valeur du J suivante

      End If         ' mettre fin à la 1re condition

   Next i            ' aller à la valeur du i suivant pour continuer sur les lignes suivantes

End Sub              ' terminer la procédure

S'il vous plait HELP :/ :/ :/ :/

Bonjour

Pourquoi ce nouveau fil alors que l'autre est toujours en suspens

https://forum.excel-pratique.com/excel/generer-les-ecritures-comptables-en-filtrant-certaines-donnee...

Bonjour

@78Chris, le post cité n'est plus en suspend normalement

Si quelqu'un pourrait m'aider s'il vous plait?

Bonjour

J'ai du mal à suivre : la question semble identique ou très proche de l'autre post où a priori la solution te convient.

Peux-tu préciser par rapport à l'autre fil ce qu'il faut modifier. On doit pouvoir adopter les mêmes principes...

EDIT : demande cross postée donc bonne continuation...

Bonjour :)

La différences avec l'autre c'est que la je dois absolument faire en vba une automatisation

j'arrive a extraire les données mais je n'arrive pas a initialisé une macro qui selon le compte client 706500 ou 706400 qui correspond une tva 20 ou 10 ou meme les deux comme ci dessus ( mon fichier se présente comme ca )

test macro gml

il faudrait que ca m'écris le taux de tva correspondant dans la ligne du nom du client comme ceci tout en calculant la somme des montant des tva

EX le compte 706400 est la tva 10% et le compte 445720 est son HT donc da la ligne qui se dédouble "0CLEMENT' la colonne crédit s'affiche 4298.91 et de meme pour les 20%

les comptes 706500 et 445722 s'additionne donnant 171.09 et affichant la tva correspondant dans le libellé

test macro gml 2png

et il se peut aussi que qu'une seule tva s'affiche pour un client

ex comme ci-dessus qui fais la même procédure que dessus

test macro gml 3

RE

Je croyais que tu avais compris que PowerQuery automatise tout autant que VBA mais manifestement ce ne n'est pas le cas...

Ouai je sais mais j'ai du mal a prendre la mains sur Power query pourtant ca a l'air simple

@DragZ

Je vous invite à relire la charte du forum [A LIRE AVANT DE POSTER]

  • Ne postez pas la même question sur un autre forum pour éviter de faire perdre bêtement du temps aux membres sur un problème qui peut être déjà résolu sur l'autre forum. L'inverse est également valable, si vous avez déjà posé votre question sur un autre forum, ne créez pas un doublon sur ce forum (à moins d'avoir clôturé le sujet sur l'autre forum).

Je clôture donc le sujet ici

Merci de votre compréhension

Rechercher des sujets similaires à "ajouter lignes compte client detecte"