Recopie automatique ligne entiere cpte banque sur comptes charges ou produi
@Adrienjane
attention : lis d'abord mon post précédent, puis celui-ci.
* feuille "Produits" : 1 seul compte, aucune opération ; feuille "Charges" : idem
* feuille "Banque" : fais Ctrl e ; cette fois, ça a reporté dans les comptes Charges et Produits uniquement les 3 opérations de décembre du compte Banque !
dans le code VBA, j'ai modifié uniquement la sub LitCpteBq() (de Module1) :
Private Sub LitCpteBq()
Dim lg1&, car1 As String * 1, a0%, m0 As Byte, a1%, m1 As Byte
With Cells(dl(0), 2) 'date de la dernière opération du compte Banque
If IsDate(.Value) Then a0 = Year(.Value): m0 = Month(.Value)
End With
If a0 = 0 Then Exit Sub 'sortie sub si y'avait pas une date correcte
For lg1 = 5 To dl(0)
Set code = Cells(lg1, 1)
If code <> "" Then
a1 = 0: m1 = 0 'à chaque tour de boucle, valeur initiale : 0
With Cells(lg1, 2) 'date de l'opération lue sur la ligne lg1
If IsDate(.Value) Then a1 = Year(.Value): m1 = Month(.Value)
End With
If a1 = a0 And m1 = m0 Then 'on va écrire l'opération seulement
'si son année et son mois sont ceux de la dernière opération du
'compte Banque ; le test de l'année est obligatoire pour éviter
'les opérations des années précédentes (même si mois idem)
car1 = Left$(code, 1): cp = 0
Select Case car1
Case 6: shd = "Charges": cp = 1: c1 = &HFF: c2 = &H99CCFF
Case 7: shd = "Produits": cp = 2: c1 = &H808000: c2 = &HFFFFCC
Case Else: shd = "#Err!"
End Select
If cp > 0 Then ÉcritOp
End If
End If
Next lg1
End Sublis bien tous les commentaires verts que j'ai ajoutés !
c'est ton dernier fichier, avec tes 8 opérations bancaires ; j'ai déjà mis à jour la sub LitCpteBq() ; le report dans les comptes va être fait pour janvier (une seule opération ; donc un seul compte mouvementé en feuille "Produits", et rien en feuille "Charges").
si tu fais Ctrl e une seule fois par mois, après avoir saisi toutes les opérations du mois, tout devrait être ok.
dhany
Merci Dhany,
Je vais retenir cette proposition.
Pour m'exercer je vais reprendre 2018 (exercice que je viens d'arrêter(30 écritures c'est peu.......)
Comment puis je procéder pour le control e ? ci c'est possible... sinon application en 2019.
Encore une fois merci, tu m'as permis de franchir un pas de plus dans ma connaissance d'Excel, connaissance basique qui s'arrête
à "SOMME SI)
En 2019 il va m'être confié une autre Compta un peu plus complexe (2 comptes bancaires !) et + d'écritures !
Avec mon amitié
Adrienjane
Merci encore Dhany. J'ai maintenant la solution que je vais tenter de mettre en pratique lors du prochain projet.
Si besoin je me permettrais de te recontacter (si ça ne te gêne pas).
Amitiés
Adrienjane
Bonjour Adrienjane,
tu a écrit :Si besoin je me permettrai de te recontacter (si ça ne te gêne pas).
non, y'a pas de souci ; je t'aiderai plus tard avec plaisir, si j'en ai le temps et que c'est dans mes compétences, car j'sais pas tout faire.
tu a écrit :En 2019 il va m'être confié une autre Compta un peu plus complexe (2 comptes bancaires !) et + d'écritures !
d'un autre côté, c'est peut-être l'occasion d'investir dans un vrai logiciel de compta ?
en principe, l'aide intégrée du logiciel explique très bien la marche à suivre, pour toutes les étapes nécessaires.
dhany
Bonjour Dhany.
Excuse moi de te déranger une nouvelle fois.
Dans mon nouveau projet j'ai 60 codes . Cette liste n'est pas reconnue.
Peux-tu me dire la modif à apporter à ton application précédente ?
Merci
Amitiés
Adrienjane
Bonjour Adrienjane,
c'est difficile de te répondre sans fichier ; peux-tu le joindre ? (mais sans données confidentielles).
dhany
@Adrienjane
1) ça crée de nouveaux comptes, oui ; mais j'aurais dû te dire qu'il faut au minimum 1 compte de charges déjà présent ET aussi un compte de produits déjà présent.
2) j'ai dû faire quelques modifs dans le code VBA des 2 modules, alors dans ton vrai fichier, pour chaque module, supprime entièrement le code VBA, puis fais un copier / coller du nouveau code VBA.
3) sur les 2 feuilles banque "CA" et "BNP", colonne "CODE", à partir de la cellule A5 et dessous : format de nombre : Texte
4) feuille "CA", tu as fait une erreur de date en B13 : j'ai remplacé 18/01/1900 par 18/05/2018.
5) comme c'était prévu dès le départ, le code VBA fait un report des écritures dans les comptes de charges (6*) et produits (7*) ; donc ça ne fait rien pour un autre compte ➯ c'est normal que ça ne reporte pas les écritures pour le code 513 ; et le code 512 sera ignoré aussi ; idem si tu utilises un compte de virements internes tel que 58.
6) tu as écrit : « Dans mon nouveau projet j'ai 60 codes. Cette liste n'est pas reconnue. » ; en fait, si des opérations ne sont pas reportées dans certains comptes, c'est soit à cause du point 5) : le code ne commence ni par 6, ni par 7 ; soit à cause de cette convention : pour éviter de devoir effacer les écritures d'un compte banque avant exécution de la macro, on avait choisi de prendre en compte uniquement les écritures du dernier mois ; et ce dernier mois est celui de la dernière opération du compte banque ; ainsi, même si on est en février 2019, c'est pas les opérations de février 2019, mais les 2 opérations d'octobre 2018 (feuille CA).
7) vu ce qui précède, il faut saisir toutes les écritures de janvier 2018 pour les 2 comptes banque, puis faire Ctrl e ; puis idem pour les écritures de février 2018 ; puis idem pour les écritures de mars 2018 ; etc... ; je l'ai fait pour toi ; d'où le résultat du fichier joint :
dhany
Bonjour Dhany
Merci, c'est parfait.
J'admire ton travail
Toute mon amitié
Adrienjane

