Somme des lignes en contrepartie
Bonjour le Forum
j'ai un journal de caisse qui présente en colonne
D: le Nº de compte
E: les libellés des comptes
F: les montants en débit
G: les montants en crédit
je souhaite avec une formule faire de façon dynamique sur la colonne G des montants des lignes en débit en fonction du nº de compte en fonction de 2 cas:
1- le montant du compte "571100" est inscrit en Débit alors la contrepartie est égale au montant du compte équivalent en Crédit
exemple:
Colonne D: 571100 (montant colonne F).
Colonne D: 104200 (montant colonne G): ce montant est égale au montant en colonne F
2- les montants en colonne Débit sont différents du compte "571100" et peuvent concerner plusieurs lignes. La contrepartie des sommes portées au débit doit se faire pour le compte "571100"
exemple:
D: 614000
D: 658800
D: 618000 (etc)
C: 571100 (somme équivalent au montant des lignes correspondantes au différents débit)
j'espère n'avoir pas été trop long!
voir fichier joint
Merci d'avance pour vos différentes aides.
Bien cordialement
Bonjour,
Je n'ai pas ouvert le fichier mais voici un essai (que j'adapterai éventuellement si besoin) avec une macro qui se déclenche au double-clic sur une des cellules de A à G. On reprend les infos de la ligne précédente, on change le numéro de compte (j'ai supposé que le libellé de compte s'obtenait par formule), on calcule la différence entre les débits et les crédits et on reporte au bon endroit (enfin normalement) :
'CODE A PLACER DANS LE MODULE DE LA FEUILLE CONCERNEE
private sub worksheet_beforedoubleclick(byval target as range, cancel as boolean)
set r = intersect(target, range("A:G"))
if not r is nothing and target.row > 1 then call Solder(target.row)
end sub
'CODE A PLACER DANS UN MODULE NORMAL
sub solder(ligne as long)
with activesheet
if application.sum(.columns(7)) = application.sum(.columns(6)) then exit sub
if application.sum(.range("F:G").rows(ligne-1)) = 0 then exit sub
if application.countblank(.range("A:G").rows(ligne - 1)) > 2 then exit sub
if msgbox("Solder l'écriture ?", vbyesno) <> vbyes then exit sub
t = .range("A:G").rows(ligne-1).formula
t(1, 4) = 571100
t(1, 6) = application.max(application.sum(.columns(7)) - application.sum(.columns(6)),0)
t(1, 7) = application.max(application.sum(.columns(6)) - application.sum(.columns(7)),0)
.range("A:G").rows(ligne).formula = t
end with
end subCdlt,