XL 2016 Ecriture comptables

yann77610

XLDnaute Nouveau
Bonsoir à tous,


Je suis comptable et je dois intégrer automatiquement des écritures comptables à partir d’un fichier excel reçu des dépenses et recettes de ma cliente avec des centaines de lignes à la suite, exemple de ligne ci-dessous.


DateN° compteIntituléTTCTVAHT
03.01.20627000PrlV Cotis Compte à composer2,14


Je souhaiterai en partant de l’exemple de ligne ci-dessus arriver au résultat ci-dessous afin d’intégrer le fichier retraité dans le logiciel comptable. Je n’arrive pas à rajouter/insérer « une « ligne de compte « 512 » entre les lignes du fichier d’origine de ma cliente, c’est-à-dire que pour chaque ligne de dépense, il faudra rajouter une ligne de compte « 512 banque » en dessous. Je n’ai aucune base en vba ou autre. Peut-être que quelqu’un pourrait m’aider ?


N° compteIntituléDébitCrédit
03.01.20627000PrlV Cotis Compte à composer2,14
03.01.20512000PrlV Cotis Compte à composer 2,14





Le même problème s’il y’a de la TVA dans le fichier d’origine, je n’arrive pas à rajouter/insérer « deux » lignes en dessous de la ligne du fichier d’origine. Ci-dessous la ligne en question du fichier d’origine pour une dépense avec TVA.

DateN° compteIntituléTTCTVAHT
03.01.20626100PayPal pour OVH50,628,4442,18


Ci-après le fichier que j’espère obtenir avec une ligne rajoutée pour la TVA en compte « 44566 » et une ligne en compte « 512 » pour le montant TTC.

DateN° compteIntituléDébitCrédit
03.01.20626100PayPal pour OVH42,18
03.01.20445660PayPal pour OVH8,44
03.01.20512000PayPal pour OVH 50,62

Je ne sais pas si je suis claire, en tout cas si une âme charitable pouvait m’aider… Merci.
 

Dudu2

XLDnaute Barbatruc
J'avoue être complètement dans le bleu avec PowerQuery que j'ai installé sur mon Excel 2016 pour autant que je me souvienne.
Par exemple, comment simplement mettre à jour le tableau résultat, même ça, ça m'échappe !
1618767922444.png
 

Deionfire

XLDnaute Nouveau
Bonjour à tous,

Je suis nouveau dans le milieu de la comptabilité et j'arrive dans une entreprise où chaque écriture comptable doit-être saisie manuellement sur le progiciel de comptabilité. J'aimerai alors pouvoir importer les écritures comptables déjà présente sur Excel vers Sage (le progiciel de compta).

Cependant, le tableur Excel que je possède ne contient qu'une seule ligne par écriture compta, et est donc sous la forme suivante:


JourCodeIntituléDébitCrédit
1​
123​
HHH
666​
2​
434​
GGG
777​
6​
422​
FFF
888​

J'aimerai alors automatiser le fait de créer une nouvelle ligne et d'inverser débit et crédit pour chaque nouvelle ligne toute en recopiant les autres cellules. Cependant, je suis dans l'impasse et je n'arrive pas à créer cette manœuvre.

Je ne sais pas si mon problème est clair ou même si quelqu'un a la réponse à mon problème, mais je vous remercie par avance si vous prenez le temps de me répondre
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Deionfire, chris,

bienvenue sur le site XLD ! :)

je te propose le fichier ci-dessous.

tu peux voir que "Feuil2" est vide ; va sur "Feuil1" ; fais Ctrl e ➯ travail effectué ! 😊 note bien que tu es sur "Feuil2" ; et "Feuil1" est restée inchangée ; ça te permet donc de revérifier tes données initiales.​

ça sera très rapide, même sur plusieurs milliers de lignes, car j'ai utilisé la méthode des Tableaux.

VB:
Option Explicit: Option Base 1

Sub Essai()
  If ActiveSheet.Name <> "Feuil1" Then Exit Sub
  Dim n&: n = Cells(Rows.Count, 1).End(3).Row: If n = 1 Then Exit Sub
  Dim T01, T02, k As Byte, i&, j&
  n = n - 1: T01 = [A2].Resize(n, 5): i = 2 * n: ReDim T02(5, i): j = 1
  For i = 1 To n
    For k = 1 To 5: T02(k, j) = T01(i, k): Next k: j = j + 1
    For k = 1 To 3: T02(k, j) = T01(i, k): Next k
    T02(4, j) = T01(i, 5): T02(5, j) = T01(i, 4): j = j + 1
  Next i
  Application.ScreenUpdating = 0: Worksheets("Feuil2").Select: Columns("A:E").ClearContents
  [A1] = "Jour": [B1] = "Code": [C1] = "Intitulé": [D1] = "Débit": [E1] = "Crédit"
  j = j - 1: [A2].Resize(j, 5) = Application.Transpose(T02)
End Sub

soan
 

Pièces jointes

  • Exo Deionfire.xlsm
    19.5 KB · Affichages: 15

soan

XLDnaute Barbatruc
Inactif
Bonsoir Deionfire,

autre version du fichier (avec 2 colonnes de plus), même utilisation. :)

VB:
Option Explicit: Option Base 1

Sub Essai()
  If ActiveSheet.Name <> "Feuil1" Then Exit Sub
  Dim n&: n = Cells(Rows.Count, 1).End(3).Row: If n = 1 Then Exit Sub
  Dim T01, T02, k As Byte, i&, j&
  n = n - 1: T01 = [A2].Resize(n, 7).Value2: i = 2 * n: ReDim T02(7, i): j = 1
  For i = 1 To n
    For k = 1 To 7: T02(k, j) = T01(i, k): Next k: j = j + 1
    For k = 1 To 5: T02(k, j) = T01(i, k): Next k
    T02(6, j) = T01(i, 7): T02(7, j) = T01(i, 6)
    T02(3, j) = "512000": T02(4, j) = Empty: j = j + 1
  Next i
  Application.ScreenUpdating = 0: Worksheets("Feuil2").Select: Columns("A:G").ClearContents
  [A1] = "Jour": [B1] = "Référence": [C1] = "N° compte": [D1] = "N° tiers"
  [E1] = "Libellé écriture": [F1] = "Débit": [G1] = "Crédit"
  j = j - 1: [A2].Resize(j, 7) = Application.Transpose(T02)
End Sub

soan
 

Pièces jointes

  • Exo Deionfire.xlsm
    20 KB · Affichages: 17
Dernière édition:

soan

XLDnaute Barbatruc
Inactif
Bonjour Deionfire,

explication courte de la 1ère partie du code VBA de mon post #25. :)

* on doit être sur "Feuil1" pour lancer la macro

* on quitte la sub si le tableau est vide (y'a aucune données)

* T01 contient toutes les données du tableau de "Feuil1"

* T02 sera le tableau résultat (avec un nombre de lignes double) ; attention : à cause du ReDim qui oblige à mettre la dimension variable des lignes en dernier, les dimensions de lignes et colonnes sont inversées ➯ c'est d'abord la colonne, puis la ligne !

* boucle i : de 1 à n : pour toutes les lignes du tableau initial

* boucle k : de 1 à 7 : suite à l'inversion mentionnée plus haut,
c'est des colonnes 1 à 7 (pas des lignes 1 à 7)

* boucle k : de 1 à 5 : des colonnes 1 à 5 ; c'est complété
dessous avec T02(6, j) et T02(7, j) (colonnes 6 et 7)

* on remplace le N° de compte répété par "512000" ;
1 colonne à droite, on efface le N° tiers répété.​

soan
 
Dernière édition:

Deionfire

XLDnaute Nouveau
Bonjour à tous,

Je travaille en ce moment sur une macro qui permettrait d'attribuer automatiquement un code selon le nom d'un client/fournisseur, mais je n'y arrive pas vraiment.
Je me permet de vous expliquer avec un exemple :
Si dans "Libellé" le nom du client n°1 apparaît alors attribuer le code de ce client dans la colonne "compte A", sinon chercher pour le client n°2, et cela pour plus de 900 clients.

Serait-il possible que vous m'aidiez s'il vous plaît ?
Je vous joins ici mon fichier au cas où vous accepteriez.

Merci d'avance,

Nicolas
 

Pièces jointes

  • Test Automatisation.xlsx
    10.7 KB · Affichages: 9

JHA

XLDnaute Barbatruc
Bonjour à tous,

Le mieux serait de créer ton propre poste.
A tout hasard, sans macro, avec des plages nommées, un début de piste avec ce que je comprends.


JHA
 

Pièces jointes

  • Test Automatisation.xlsx
    12.7 KB · Affichages: 16

Membres actuellement en ligne

Statistiques des forums

Discussions
315 127
Messages
2 116 534
Membres
112 770
dernier inscrit
vetosalah