Sum IF depuis 2 feuilles
Bonjour,
Je suis débutant en VBA et je dois réaliser une somme SI depuis un bouton VBA.
Le logiciel comptable doit permettre de faire la somme des montants du débit et du crédit de la balance comptable résumé par numéro de compte.
La feuille Grand Livre recense toutes les opérations enregistrées donc il est possible d'avoir 3 fois le compte 101 Capital avec des montants.
La feuille Balance servirait de synthèse, donc la somme de tous les débits et tous les crédits de chaque compte, permettant d'aboutir à un solde (débit-crédit).
Votre aide serait précieuse car je suis bloqué depuis 3 jours et je n'ai malheureusement pas les compétences (encore...) pour le faire
Cordialement.
Simon
Bonjour,
Pourquoi vouloir passer par du VBA, Excel propose une gamme de formules suffisante pour résoudre ce problème.
Il est préférable dans un premier temps de convertir le tableau de la feuille "Grand Livre" en tableau structuré, ce qui délimite la longueur du tableau.
Par la suite, écrire la formule pour les débits en C2 de la feuille "Balance":
=SOMMEPROD((Tableau1[Compte]*1=$A2)*(Tableau1[Libéllé]=$B2)*(Tableau1[Débit]))puis celle des crédits:
=SOMMEPROD((Tableau1[Compte]*1=$A3)*(Tableau1[Libéllé]=$B3)*(Tableau1[Crédit]))et faire la soustraction pour le solde.
Voici ce que ça donne:
Cdlt
Bonjour,
Nous avons un projet d'école à realiser exclusivement sur VBA. J'en conviens en 30 secondes avec les formules classiques c'est plié. 😁
Du coup je dois écrire du code 😉 et je reste bloqué pour l'instant
Alors ceci
Sub Debit_Credit()
Dim f1 As Worksheet, f2 As Worksheet
Dim DerLig_f1 As Long, DerLig_f2 As Long
Application.ScreenUpdating = False
Set f1 = Sheets("Grand_Livre")
Set f2 = Sheets("Balance")
DerLig_f1 = f1.Range("A" & Rows.Count).End(xlUp).Row
DerLig_f2 = f2.Range("A" & Rows.Count).End(xlUp).Row
f2.Range("C2:C" & DerLig_f2).FormulaR1C1 = "=SUMPRODUCT((" & f1.Name & "!R2C4:R" & DerLig_f1 & "C4*1=RC1)*(" & f1.Name & "!R2C5:R" & DerLig_f1 & "C5=RC2)*(" & f1.Name & "!R2C6:R" & DerLig_f1 & "C6))"
f2.Range("D2:D" & DerLig_f2).FormulaR1C1 = "=SUMPRODUCT((" & f1.Name & "!R2C4:R" & DerLig_f1 & "C4*1=RC1)*(" & f1.Name & "!R2C5:R" & DerLig_f1 & "C5=RC2)*(" & f1.Name & "!R2C7:R" & DerLig_f1 & "C7))"
f2.Range("E2:E" & DerLig_f2).FormulaR1C1 = "=RC[-2]-RC[-1]"
f2.Range("C2:E" & DerLig_f2).Value = f2.Range("C2:E" & DerLig_f2).Value
Set f1 = Nothing
Set f2 = Nothing
End Sub
Cdlt