Bonjour,
c’est mon premier message dans ce forum.
J’ai déjà fait 2, 3 macros mais on peut dire que je suis un grand débutant et je vais essayer d'être le plus clair possible.
Depuis un logiciel de gestion j'extrais un tableau avec mes factures clients et fournisseurs pour l'année en cours.
L'idée est de créer un onglet par mois avec deux tableaux, un avec les encaissements et l'autre avec les décaissements et ensuite d'y ajouter des formules de calculs divers.

J'en suis à la première étape, à savoir extraire les donner et les coller dans l'onglet du mois correspondant

Ci-dessous le code que j'ai fait pour janvier, un double "If" avec 2 conditions
- la date est-elle en janvier ?
- Si oui, si la valeur de la facture est positive, coller la ligne dans l'onglet encaissements JAN,
- sinon, coller la ligne dans l'onglet décaissements JAN_C

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
Dim Lig     As Long
  Dim Col     As String
  Dim ColG     As String
  Dim NbrLig  As Long
  Dim NumLig  As Long
 
 
  Col = "D"                 ' colonne de la donnée à tester
  ColG = "G"
  NumLig = 0
  With Sheets("Général")     ' feuille source
  NbrLig = .Cells(65536, Col).End(xlUp).Row
  For Lig = 1 To NbrLig
 
    If .Cells(Lig, Col).Value Like "*/01/*" Then
      If .Cells(Lig, ColG).Value > 0 Then
      Sheets("JAN").Activate ' feuille de destination
      .Cells(Lig, Col).EntireRow.Copy
      NumLig = NumLig + 1
      Cells(NumLig, 1).Select
      ActiveSheet.Paste
      Else
      Sheets("JAN_C").Activate ' feuille de destination
      .Cells(Lig, Col).EntireRow.Copy
      NumLig = NumLig + 1
      Cells(NumLig, 1).Select
      ActiveSheet.Paste
      End If
    End If
Le code fonctionne.
J'aimerais passer à l'étape suivante, à savoir faire la même chose mais dans un seul onglet avec à gauche les encaissements et à droite les décaissements.

- la date est-elle en janvier ?
- Si oui, si la valeur de la facture est positive, coller la ligne dans l'onglet JAN dans le tableau de gauche
- sinon, coller la ligne dans l'onglet JAN dans le tableau de droite

Il ne faut plus que je copie la ligne entière mais juste la partie qui m'intéresse (le tableau va des colonnes A à J)
Donc il faut que je modifie la ligne Cells(Lig, Col).EntireRow.Copy mais je n'ai pas réussi à faire quelque chose qui marche
Et pour coller le tableau des décaissements à droite, j'imagine qu'il faut jouer sur cette ligne de code mais idem pas encore réussi
Cells(NumLig, 1).Select
ActiveSheet.Paste


Merci d'avance pour votre aide !!!
Et puis si vous avez des critiques sur le code existant je prends aussi !
Bonne journée à tous/tes