Fusion balances comptables

Oliver77

XLDnaute Occasionnel
Bonjour,
J'utilise une macro (cf. bas de message) trouvée sur le site de Boisgontiers Jacques. J'ai inversé les onglets pour avoir en premier le libellé des comptes de l'exercice n.
Elle fonctionne très bien (Merci M. Boisgontiers).
Mon souci est que je ne veux pas récupérer les comptes dont le montant est à "0" sur les 2 exercices.
Je précise que j'ai les N° de comptes dans la colonne A, en B les libellés, et en C les montants.

Merci, par avance.
Oliver77.

Set onglet1 = Sheets("BalanceN")
Set onglet2 = Sheets("BalanceN_1")
Sheets("Balances").[A2:G1500].ClearContents
Range(onglet1.[A2], onglet1.[A65000].End(xlUp).Offset(0, 2)).Copy Sheets("Balances").[A2]
For Each c In Range(onglet2.[A2], onglet2.[A65000].End(xlUp))
p = Application.Match(c, [A:A], 0)
If IsError(p) Then
[A65000].End(xlUp).Offset(1, 0) = c
[A65000].End(xlUp).Offset(0, 1) = c.Offset(0, 1)
[A65000].End(xlUp).Offset(0, 3) = c.Offset(0, 2)
Else
[A1].Offset(p - 1, 3) = c.Offset(0, 2)
End If
Next c
 

Oliver77

XLDnaute Occasionnel
Re : Fusion balances comptables

Re-bonjour Rep,

J'aimerai automatiser dans ma page "BalanceConso" 3 totaux en précisant total 1, total 2, total 3. J'ai fais un exemple dans le fichier que je joins actuellement.

Le total 1 <=> comptes commençant par les chiffres 1 à 5 ;
Le total 2 <=> comptes commençant par les chiffres 6 à 7 ;
Le total <=> somme de toute la liste.

Merci par avance.
 

Pièces jointes

  • Dossier Révision.xls
    220 KB · Affichages: 165
  • Dossier Révision.xls
    220 KB · Affichages: 187
  • Dossier Révision.xls
    220 KB · Affichages: 180

Rep

XLDnaute Junior
Re : Fusion balances comptables

Bonsoir,

Le plus simple est d'utiliser un calcul matriciel:

Dans la case correspondant à la somme des comptes de bilan :

Code:
=SOMME((C2:C21)*(GAUCHE(A2:A21;1)="1"))+SOMME((C2:C21)*(GAUCHE(A2:A21;1)="2"))+SOMME((C2:C21)*(GAUCHE(A2:A21;1)="3"))+SOMME((C2:C21)*(GAUCHE(A2:A21;1)="4"))+SOMME((C2:C21)*(GAUCHE(A2:A21;1)="5"))

Et dans la case correspondant à la somme des comptes de résultat :

Code:
=SOMME((C2:C21)*(GAUCHE(A2:A21;1)="6"))+SOMME((C2:C21)*(GAUCHE(A2:A21;1)="7"))

Attention : il faut valider les formules matricielles en appuyant sur CTRL + SHIFT + ENTREE. Pour vérifier, lorsque tu sélectionnes la cellule, la formule doit apparaître entre des accolades.

Bonne soirée
 

Oliver77

XLDnaute Occasionnel
Re : Fusion balances comptables

Bonjour Rep,

C'est génial, bien qu'ayant connaissance de l'existence des formules matricielles je ne savais pas qu'elles pouvaient rendre de si grands services. En VBA, cela donne quoi ?
J'ai testé l'enregistreur de macro mais comment faire lorsqu'on ne connait pas le nombre de lignes ?

En tout cas je te remercie grandement pour ton aide.

Oliver77

Cordialement,
 

Oliver77

XLDnaute Occasionnel
Calcul matriciel avec vba

Bonjour,

Je pratique VBA depuis 1 mois et je souhaite faire la somme d'une colonne avec conditions. J'ai tenté l'enregistreur de macro mais la formule matricielle s'arrête à la ligne 21. Comment faire quand on ne connais pas le nombre de lignes ?

Dans l'attente de vous lire,
Cordialement,
Oliver77.
 

Pièces jointes

  • Fichier exemple.xls
    218.5 KB · Affichages: 171
  • Fichier exemple.xls
    218.5 KB · Affichages: 154
  • Fichier exemple.xls
    218.5 KB · Affichages: 155

Oliver77

XLDnaute Occasionnel
Re : Fusion balances comptables

Bonjour,

Je n'ai toujours pas trouvé comment faire avec VBA mais mes recherches avances.
Pour la formule matricielle de Rep (merci encore), j'ai trouvé plus simple :

- pour les comptes de 1 à 5
SOMMEPROD((GAUCHE(A2:A455;1)<"6")*(C2:C455))

- pour les comptes de 6 à 7
SOMMEPROD((GAUCHE(A2:A455;1)>="6")*(C2:C455))

Il faut toutefois s'assurer qu'il n'y ait pas de comptes commençant par un "0" ou un "9" (exemple : balance CCMX).

Je souhaite mettre une formule qui marche lorsqu'on ne connait pas le nombre de ligne.
Comme vous pouvez le voir dans ma formule ma liste va jusqu'à la ligne "455".

Je retourne à la tâche,
Oliver77.
:confused:
 
Dernière édition:

Tibo

XLDnaute Barbatruc
Re : Fusion balances comptables

Bonjour,

Peut-être avec cette formule qui s'adapte au nombre de lignes de ta balance :

Pour les comptes des classes 1 à 5 :

Code:
=SOMMEPROD((GAUCHE(DECALER(A2;;;NBVAL(A:A)-1))*1<6)*(GAUCHE(DECALER(A2;;;NBVAL(A:A)-1))<>"0")*(DECALER(C2;;;NBVAL(A:A)-1)))
Pour les comptes des classes 6 et 7 :

Code:
=SOMMEPROD((GAUCHE(DECALER(A2;;;NBVAL(A:A)-1))*1>5)*(GAUCHE(DECALER(A2;;;NBVAL(A:A)-1))<>"9")*(DECALER(C2;;;NBVAL(A:A)-1)))
Je te laisse tester

@+
 

Oliver77

XLDnaute Occasionnel
Re : Fusion balances comptables

Bonjour Tibo,

Je te remercie pour de m'avoir orienté sur cette piste.
C'est la première fois que j'ai l'occasion d'utiliser la fonction "DECALER" et ta formule fonctionne à merveille.
Je regarde ce que ça donne en VBA et je re-plonge sur le forum.

Cordialement,
Oliver77.
 

Modeste

XLDnaute Barbatruc
Re : Fusion balances comptables

Bonsoir le fil, salut Tibo :)

Une procédure supplémentaire pour les calculs par types de comptes. J'ai créé une procédure à part, mais il faudrait sans doute regrouper celle-ci et ta procédure Total_Colonne ... tu verras bien!

Je me suis permis de modifier légèrement la procédure Tri: suppression des .Select (pas nécessaires) + inversion du sens de la boucle (pour supprimer des lignes, il vaut mieux commencer par la fin et "remonter") ... à tester avant d'adopter :rolleyes:

Bonne soirée,
 

Pièces jointes

  • Balance comptable (oliver77).xls
    94 KB · Affichages: 191

Oliver77

XLDnaute Occasionnel
Re : Fusion balances comptables

Bonsoir,

Merci beaucoup pour vos réponses.
Pour la procédure TRI, j'avais constaté qu'elle n'était pas efficace sur de plus grands fichiers.
Je l'avais donc abandonnée pour utiliser la mienne (je reconnais que la mienne était longue voire "pompeuse").
Modeste et Bebere, je cours tester vos suggestions et vous tiens informés.

En tout cas, MERCI encore.
Oliver.
 

Oliver77

XLDnaute Occasionnel
Re : Fusion balances comptables

Re-bonsoir,

Je teste actuellement vos procédures et elles ont l'air de fonctionner.
Modeste, j'ai pris un peu de temps à comprendre (parceque je n'avais pas bien lu) que les procédures étaient liées.
Je vais donc les regrouper et continuer à faire d'autres tests.

Merci encore,
Oliver.
 

Tulko

XLDnaute Nouveau
Re : Fusion balances comptables

Bonjour à tous,

Etant novice dans la programmation VBA, j'ai tenté en vain de comprendre les macro que vous avez élaboré.
J'en ai compris certaine mais pas toute même après avoir chercher sur le net, c'est pourquoi je me tourne vers vous car je m'arrache les cheveux.


Mon problème est assez similaire à celui de Olivier.
Une balance N sur la feuille 1.
Une balance N-1 sur la feuille 2.
Le comparatif des deux sur la feuille 3.

Premier problème, ma balance est composée de quatre colonnes :
A = Compte
B = Libellés
C = Débit
D = Crédit

Du coup, les macro d'Olivier ne fonctionnent plus :'(
Voici un exemple du résultat que j'aimerai obtenir.

Deuxième problème, j'aimerai exploiter la balance conso.
je recherche quelque chose qui me donne le résultat suivant :

"Sur la feuille Classe 1, va chercher tous les comptes qui commencent par 1 (ou tous les comptes compris entre ... et ...) et les insère en dessous de la cellule selectionnée"
"Sur la feuille Classe 2, ....."
(Le choix des comptes par feuille doit être facilement paramétrable)

Au final, les seules actions que j'aurai à effectuer sur ce fichier seront :

1) copie de la balance N-1
2) copie de la balance N
3) Activation de la Macro en cliquant sur un bouton sur la feuille balance conso

J'ai laissé les macro d'Olivier au cas ou, si ça peut vous aider.

Par avance merci, je reste à votre disposition si je ne suis pas clair.

Cordialement,

Tulko
 

Pièces jointes

  • Dossier Révision Tulko.xls
    201.5 KB · Affichages: 58

Discussions similaires

Statistiques des forums

Discussions
312 228
Messages
2 086 420
Membres
103 205
dernier inscrit
zch