Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Balance : Lister-Doublons-Somme

10 réponses
Avatar
Sunburn
Bonjour,
je voudrais faire une balance "modifiée" ou "interractive", je ne sais pas
trop comment m'expliquer.

Donc, voilà, j'au dans mon onglet "BAL", une balance qui a cette
architecture (commence colonne A, ligne 3) :
COMPTE / LIBELLE / DEBIT N / CREDIT N / DEBIT N-1 / CREDIT N-1

J'ai dans des autres onglets "OD1", "OD2" et "OD", des zones de saisie
d'écriture.
(le format est le suivant : de C12 à F161)
COMPTE / COMPTE AUXILIAIRE / DEBIT N / CREDIT N

Je voudrais faire un onglet "BAL-DEF", en fait une somme de mes onglets
"BAL", "OD1", "OD2", et "OD3", selon le critère du COMPTE.
ce qui me complique, c'est que les comptes sont en "BAl", là ça me va, mais
il peut y avoir des nouveaux comptes en "OD1" ou "OD2" ou "OD3".

Donc je dois lister tous les COMPTE de ces onglets sur mon onglet "BAL-DEF",
supprimer les doublons, mettre le LIBELLE de l'onglet "BAL" et ensuite faire
le total de mon DEBIT et mon CREDIT....

Donc, j'ai besoin de votre aide, afin de maximiser ma macro.

Je commence juste, donc si vous avez des pistes de réflexion pour mon
problème, je vous en serais super reconnaissant.

Merci.
YANN

10 réponses

Avatar
Daniel.C
Bonjour.
Ca serait sympa d'avoir un classeur exemple, histoire de ne pas perdre
de temps à en constituer un... En attendant regarde le classeur suivant
qui a une problématique semblable (récapitulation sur l'onglet "Year")
http://www.cijoint.fr/cjlink.php?file=cj200901/cij9IWWpH4.xls
Cordialement.
Daniel

Bonjour,
je voudrais faire une balance "modifiée" ou "interractive", je ne sais pas
trop comment m'expliquer.

Donc, voilà, j'au dans mon onglet "BAL", une balance qui a cette
architecture (commence colonne A, ligne 3) :
COMPTE / LIBELLE / DEBIT N / CREDIT N / DEBIT N-1 / CREDIT N-1

J'ai dans des autres onglets "OD1", "OD2" et "OD", des zones de saisie
d'écriture.
(le format est le suivant : de C12 à F161)
COMPTE / COMPTE AUXILIAIRE / DEBIT N / CREDIT N

Je voudrais faire un onglet "BAL-DEF", en fait une somme de mes onglets
"BAL", "OD1", "OD2", et "OD3", selon le critère du COMPTE.
ce qui me complique, c'est que les comptes sont en "BAl", là ça me va, mais
il peut y avoir des nouveaux comptes en "OD1" ou "OD2" ou "OD3".

Donc je dois lister tous les COMPTE de ces onglets sur mon onglet "BAL-DEF",
supprimer les doublons, mettre le LIBELLE de l'onglet "BAL" et ensuite faire
le total de mon DEBIT et mon CREDIT....

Donc, j'ai besoin de votre aide, afin de maximiser ma macro.

Je commence juste, donc si vous avez des pistes de réflexion pour mon
problème, je vous en serais super reconnaissant.

Merci.
YANN


Avatar
Sunburn
re,
euh oui, excusez-moi.
voici un modele de que j'ai.
http://cjoint.com/?bslRvDFu7t

c'est donc dans Bal2 que je voudrais cumuler tous.
Merci. je regarde le fichier que tu m'as envoyé.

YANN

"Daniel.C" a écrit :

Bonjour.
Ca serait sympa d'avoir un classeur exemple, histoire de ne pas perdre
de temps à en constituer un... En attendant regarde le classeur suivant
qui a une problématique semblable (récapitulation sur l'onglet "Year")
http://www.cijoint.fr/cjlink.php?file=cj200901/cij9IWWpH4.xls
Cordialement.
Daniel

> Bonjour,
> je voudrais faire une balance "modifiée" ou "interractive", je ne sais pas
> trop comment m'expliquer.
>
> Donc, voilà, j'au dans mon onglet "BAL", une balance qui a cette
> architecture (commence colonne A, ligne 3) :
> COMPTE / LIBELLE / DEBIT N / CREDIT N / DEBIT N-1 / CREDIT N-1
>
> J'ai dans des autres onglets "OD1", "OD2" et "OD", des zones de saisie
> d'écriture.
> (le format est le suivant : de C12 à F161)
> COMPTE / COMPTE AUXILIAIRE / DEBIT N / CREDIT N
>
> Je voudrais faire un onglet "BAL-DEF", en fait une somme de mes onglets
> "BAL", "OD1", "OD2", et "OD3", selon le critère du COMPTE.
> ce qui me complique, c'est que les comptes sont en "BAl", là ça me va, mais
> il peut y avoir des nouveaux comptes en "OD1" ou "OD2" ou "OD3".
>
> Donc je dois lister tous les COMPTE de ces onglets sur mon onglet "BAL-DEF",
> supprimer les doublons, mettre le LIBELLE de l'onglet "BAL" et ensuite faire
> le total de mon DEBIT et mon CREDIT....
>
> Donc, j'ai besoin de votre aide, afin de maximiser ma macro.
>
> Je commence juste, donc si vous avez des pistes de réflexion pour mon
> problème, je vous en serais super reconnaissant.
>
> Merci.
> YANN





Avatar
Sunburn
Re,
j'ai regardé le fichier que tu m'as donné.
Le truc, c'est que moi, mes champs sont différents, on pourrait faire le
cumul des GA, mais pas avec Balances, car pas le meme format.
Je continue de chercher.
merci.
YANN


"Daniel.C" a écrit :

Bonjour.
Ca serait sympa d'avoir un classeur exemple, histoire de ne pas perdre
de temps à en constituer un... En attendant regarde le classeur suivant
qui a une problématique semblable (récapitulation sur l'onglet "Year")
http://www.cijoint.fr/cjlink.php?file=cj200901/cij9IWWpH4.xls
Cordialement.
Daniel

> Bonjour,
> je voudrais faire une balance "modifiée" ou "interractive", je ne sais pas
> trop comment m'expliquer.
>
> Donc, voilà, j'au dans mon onglet "BAL", une balance qui a cette
> architecture (commence colonne A, ligne 3) :
> COMPTE / LIBELLE / DEBIT N / CREDIT N / DEBIT N-1 / CREDIT N-1
>
> J'ai dans des autres onglets "OD1", "OD2" et "OD", des zones de saisie
> d'écriture.
> (le format est le suivant : de C12 à F161)
> COMPTE / COMPTE AUXILIAIRE / DEBIT N / CREDIT N
>
> Je voudrais faire un onglet "BAL-DEF", en fait une somme de mes onglets
> "BAL", "OD1", "OD2", et "OD3", selon le critère du COMPTE.
> ce qui me complique, c'est que les comptes sont en "BAl", là ça me va, mais
> il peut y avoir des nouveaux comptes en "OD1" ou "OD2" ou "OD3".
>
> Donc je dois lister tous les COMPTE de ces onglets sur mon onglet "BAL-DEF",
> supprimer les doublons, mettre le LIBELLE de l'onglet "BAL" et ensuite faire
> le total de mon DEBIT et mon CREDIT....
>
> Donc, j'ai besoin de votre aide, afin de maximiser ma macro.
>
> Je commence juste, donc si vous avez des pistes de réflexion pour mon
> problème, je vous en serais super reconnaissant.
>
> Merci.
> YANN





Avatar
FFO
Salut à toi

Ton exemple n'est pas trés représentatif
Tu nous parles d'Onglet "OD1", "OD2" et "OD" qui n'y figure pas
Dur dur de les imaginer !!!!
De plus tu souhaites dans l'onglet Bal cumuler le tout sans doublon
Si il ya doublon doit on mettre une seule ligne en faisant la somme des
doublons pour les DEBIT/CREDIT ou se cantonner à ne considérer que l'un
d'entre eux a supposer qu'ils soient rigoureusement identiques toutes
colonnes confondus
Un exemple précis avec l'ensemble des Onglets doublon et sans doublon et ce
que tu souhaites ramener en Onglet Bal2

Merci pour tes précisions
Avatar
Sunburn
re,
ok, je sais, là pas cool, j'ai fais mon explication, et après j'ai mis un
lien vite fait.
revoilà un vrai tableau.
http://cjoint.com/?bsoo1fqqCW

dans mes explications : "xx" -> onglet [xx] -> colonne

donc, en "Bal2", je voudrais mes numéro de comptes sans doublons en [A], en
[B] le libellé de "Balance", en [C] et [D] le cumul de mes onglets
"Balances", "GA10", "GA11", et "GA12", et en [E] et [F] le report de l'onglet
"Balances".

Bien sur, je voudrais une somme sur les DEBIT et CREDIT pour les colonnes
[C] et [D] pour les numéros de comptes identiques.

j'ai mis le 164600 comme exemple sur "Bal2". il y 22000 de "Balances" et
2000 de "GA10"
on peut utiliser les colonnes H à la dernière de la feuille "Bal2" pour
faire des calculs intermédiaires si besoin.

Merci
YANN
Avatar
FFO
Rebonjour à toi

Sur ce lien ton document avec ma proposition

http://www.cijoint.fr/cjlink.php?file=cj200901/cijbCa4tzN.xls

Onglet "Bal2" active le bouton "Traitement"

Fais des esssais et dis moi !!!!

Le code :


If Sheets("Bal2").Range("A3") <> "" Then
Sheets("Bal2").Range("A3", "F" &
Sheets("Bal2").Range("A65535").End(xlUp).Row).Clear
End If
Sheets("Balances").Range("A3", "F" &
Sheets("Balances").Range("A65535").End(xlUp).Row).Copy
Sheets("Bal2").Range("A65535").End(xlUp).Offset(1, 0)
Départ = Sheets("Bal2").Range("A65535").End(xlUp).Offset(1, 0).Row
For i = 1 To Sheets.Count
If Sheets(i).Name Like "GA*" Then
If Sheets(i).Range("C12") <> "" Then
Sheets(i).Range("C12", "F" & Sheets(i).Range("C65535").End(xlUp).Row).Copy
Sheets("Bal2").Range("A65535").End(xlUp).Offset(1, 0)
End If
End If
Next
Sheets("Bal2").Range("B" & Départ, "B" &
Sheets("Bal2").Range("B65535").End(xlUp).Row).Clear
Sheets("Bal2").Range("A3", "F" &
Sheets("Bal2").Range("A65535").End(xlUp).Row).Interior.ColorIndex = xlNone
Sheets("Bal2").Range("A3", "F" &
Sheets("Bal2").Range("A65535").End(xlUp).Row).Sort Key1:=Range("A3"),
Order1:=xlAscending
i = 3
Do While Range("A" & i).Row < Range("A65535").End(xlUp).Offset(1, 0).Row
If Range("B" & i) <> "" Then
Ligne = i
End If
If Range("B" & i) = "" And Range("A" & i) = Range("A" & Ligne) Then
Range("C" & Ligne) = Range("C" & Ligne) + Range("C" & i)
Range("D" & Ligne) = Range("D" & Ligne) + Range("D" & i)
Range("B" & i).EntireRow.ClearContents
End If
If Range("B" & i) = "" And Range("A" & i) <> Range("A" & Ligne) Then
Range("B" & i).EntireRow.ClearContents
End If
i = i + 1
Loop
Sheets("Bal2").Range("A3", "F" &
Sheets("Bal2").Range("A65535").End(xlUp).Row).Sort Key1:=Range("A3"),
Order1:=xlAscending
Sheets("Bal2").Range("A" &
Sheets("Bal2").Range("A65535").End(xlUp).Offset(1, 0).Row,
"A65535").EntireRow.Clear


Je ne ramène de tous les onglets dans l'onglet "Bal2" que les comptes
présent dans l'Onglet "Balances" car les autres n'auraient pas de libellé
puisque celui-ci est pris selon tes directives de cette onglet

Si ce n'est pas celà donnes moi des précisions pour ces cas

Donne moi des nouvelles !!!!
Avatar
Sunburn
Re bonjour,
en fait, c'est presque ça.
J'ai besoin de tous les comptes, ceux de "Balances", mais aussi les nouveaux
qui existent sur les "GA" et pas sur "Balances".

De plus, il y a un petit soucis, la dernière ligne 791000 n'est pas prise en
compte dans la manip.

Pour se vérifier, Total colonne C = total colonne D et total colonne E =
total colonne F.

De plus, est-il possible d'avoir un seul montant, en C ou en D.
exemple : 164600 = uniquement 20 000 en colonne D (22.000 - 2.000)

je te redonne le fichier, sur free
http://dl.free.fr/j1WO46sxL

En Fait, je pige pas pourquoi le fichier prend 1.70 Mo ???? ça fait super
lourd ???
c'est du à cause de quoi ?

Merci beaucoup de l'aide que tu m'apportes, c'est extra.
YANN

"FFO" a écrit :

Je ne ramène de tous les onglets dans l'onglet "Bal2" que les comptes
présent dans l'Onglet "Balances" car les autres n'auraient pas de libellé
puisque celui-ci est pris selon tes directives de cette onglet

Si ce n'est pas celà donnes moi des précisions pour ces cas

Donne moi des nouvelles !!!!



Avatar
FFO
Rebonjour à ntoi

Si tu souhaites récupérer les nouveaux compte qui ne sont pas dans l'onglet
"Balance" quid des libellés ?????

je te rappelle tes conditions :

"donc, en "Bal2", je voudrais mes numéro de comptes sans doublons en [A], en
[B] le libellé de "Balance", en [C] et [D] le cumul de mes onglets
"Balances", "GA10", "GA11", et "GA12", et en [E] et [F] le report de l'onglet
"Balances". "

Merci de préciser
Avatar
FFO
Rebonjour à toi

Sur ce lien ton document avec les corrections appropriées :

http://www.cijoint.fr/cjlink.php?file=cj200901/cijkkWvYBa.xls

"J'ai besoin de tous les comptes, ceux de "Balances", mais aussi les nouveaux
qui existent sur les "GA" et pas sur "Balances". "

C'est fait hors mis les libellés pour lesquels tu ne m'as donné aucunne
réponse


"De plus, il y a un petit soucis, la dernière ligne 791000 n'est pas prise en
compte dans la manip."

Petite coquille dans le code que j'ai corrigé

"Pour se vérifier, Total colonne C = total colonne D et total colonne E =
total colonne F. "

Vérifié pour les colonne E et F
Différence de 29,08 pour les colonnes C et D que je retrouve si manuellement
je fais la somme de tous les crédits et de tous les débits
Je pense qu'il y a un souci sur tes données qui enjendre cette différence
A toi de voir !!!!

"En Fait, je pige pas pourquoi le fichier prend 1.70 Mo ???? ça fait super
lourd ???
c'est du à cause de quoi ?"

C'est la présence dans l'onglet Bal2 des 65536 lignes engendré par mon code
J'ai apporté la modification adéquat et ton fichier ne fais plus que 276 Ko


J'ai mis dans l'onglet "Bal2" denière ligne la somme par colonne C D E F

Vérifies et fais des essais

Tiens moi informé !!!!
Avatar
Sunburn
Rebonjour FFO,
désolé pour le retard de la réponse.
Je t'écris là, et sur un nouveau post, pour up.

je remet ton classeur
http://www.cijoint.fr/cjlink.php?file=cj200901/cijkkWvYBa.xls

Donc, ouais, ça me va bien.
Par contre, tu ne défini pas les pages précisement.
en effet, je vais intégrer ces feuilles dans un classeur avec pas mal de
feuilles. Donc, il faudrait pouvoir nommer les feuilles sur lesquelles on
effectue les calculs, soit "GA10", "GA11", "GA12".
j'ai modifié comme ça, tu peux me dire si je suis pas trop mauvais ?? :

Merci d'avance.

----
Sub Traitement()
'calcul de la balance en temps réel
If Sheets("Bal2").Range("A3") <> "" Then
Sheets("Bal2").Range("A3", "F" &
Sheets("Bal2").Range("A65535").End(xlUp).Row).Clear
End If
Sheets("GA10").Range("A3", "F" &
Sheets("GA10").Range("A65535").End(xlUp).Row).Copy
Sheets("Bal2").Range("A65535").End(xlUp).Offset(1, 0)
Départ = Sheets("Bal2").Range("A65535").End(xlUp).Offset(1, 0).Row
For Each I In Sheets(Array("GA11", "GA12", "GA14"))
'If Sheets(I).Name Like "GA*" Then
If Sheets(I).Range("C12") <> "" Then
Sheets(I).Range("C12", "F" & Sheets(I).Range("C65535").End(xlUp).Row).Copy
Sheets("Bal2").Range("A65535").End(xlUp).Offset(1, 0)
End If
End If
Next
Sheets("Bal2").Range("B" & Départ, "B" &
Sheets("Bal2").Range("B65535").End(xlUp).Row).Offset(1, 0).Clear
Sheets("Bal2").Range("A3", "F" &
Sheets("Bal2").Range("A65535").End(xlUp).Row).Interior.ColorIndex = xlNone
Sheets("Bal2").Range("A3", "F" &
Sheets("Bal2").Range("A65535").End(xlUp).Row).Sort Key1:=Range("A3"),
Order1:=xlAscending
I = 3
Ligne = 2
Do While Range("A" & I).Row < Range("A65535").End(xlUp).Offset(1, 0).Row
If Range("A" & I) <> Range("A" & I - 1) And Range("A" & I) <> Range("A" &
Ligne) Then
Ligne = I
End If
A = Range("A" & I)
B = Range("A" & Ligne)
If Range("A" & I) = Range("A" & Ligne) And I > Ligne Then
Range("C" & Ligne) = Range("C" & Ligne) + Range("C" & I)
Range("D" & Ligne) = Range("D" & Ligne) + Range("D" & I)
Range("B" & I).EntireRow.ClearContents
End If
I = I + 1
Loop
Sheets("Bal2").Range("A3", "F" &
Sheets("Bal2").Range("A65535").End(xlUp).Row).Sort Key1:=Range("A3"),
Order1:=xlAscending
Sheets("Bal2").Range("A" &
Sheets("Bal2").Range("A65535").End(xlUp).Offset(1, 0).Row,
"A65535").EntireRow.Delete
'
End Sub
-------