Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

regroupement et total vba

  • Initiateur de la discussion Initiateur de la discussion jmxlinux
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

jmxlinux

Guest
Re bonjour !
je souhaite faire en vba une requete regroupement basée sur une table comme l'exemple :
compte fournisseur montant
test1 four1 10
test2 four2 20
test3 four1 15
test4 four1 30

que je demanderai cette une requête ou code qui permet de regroupement. les compte par fournisseur et donne le montant total en bas de tous les opération de ce fournisseur par exemple

four1
compte montant
test1 10
test3 20
test4 30
total montant= 60
------le tableau suivant du fournisseur 2
four2
compte montant
test2 20
total montant= 20

quelle est la meilleur méthode de réaliser le cas ?
Merci pour votre réponse !
 
Re : regroupement et total vba

Bonjour et bienvenu sur le forum Jmxlinux,
Bonjour Catrice,

jmxlinux à dit:
quelle est la meilleur méthode de réaliser le cas ?

Ne connaissant pas tes attentes, tes connaissances en VBA, tes contraintes, je ne peux répondre pour toi!

L'idéal à mon avis, c'est d'utiliser une méthode qu'on maîtrise, ou qu'on est à même de comprendre, réparer et reproduire.

Toutes les méthodes proposées par Catrice sont excellente, fonctionnent, et réponde à ta question, pourtant elle n'a pas eu besoin de VBA 😀

Mais si tu veux absolument du VBA, voici ci-joint une solution en VBA.
Évidement en VBA aussi, il existe plusieurs solutions, mais faute de temps, j'en ai fais qu'une

Bonne après midi
 

Pièces jointes

Re : regroupement et total vba

merci Excel-lent et Catrice,
je demande une solution en vba par ce que je veux l'intègre dans un modèle.

la réponse de catrice fait le nécessaire mais comment on peux l'intègre sur un model a fin de récupère les donnes de la feuil 1 et 2 sur le même classeur ??

apres un petite recherche j'ai trouvé ce code qui permet de copier les donnes d'un enregistrement suivant un condition sur la cellule fournisseur ci dessous le code:


Sub regroupement()
j = 2 la 1er ligne contient l'entête
For i = 2 To 65536

If Application.ActiveWorkbook.ActiveSheet.Range("f" & i).Value = "1031059" Then un code fournisseur pour le test
Application.ActiveWorkbook.Worksheets("Feuil2").Range("A" & j & ":j" & j).Formula = Application.ActiveWorkbook.Worksheets("Feuil1").Range("A" & i & ":j" & i).Value
j = j + 1
End If
Next i
MsgBox "Vous avez copié " & j - 2 & " lignes.", , "Traitement terminé"
End Sub

comment je défini le code fournisseur (variable) pour appliquer cette boucle sur tous le fournisseurs qui sont dans la feuil1 ?
voir ci-joint le classeur
merci pour votre aide🙂
 

Pièces jointes

Dernière modification par un modérateur:
Re : regroupement et total vba


merci Excel-lent
 
Re : regroupement et total vba

Bonsoir Jmxlinux

(erreur de discussion)

A te lire

merci Excel-lent et Catrice,
je demande une solution en vba par ce que je veux l'intègre dans un modèle.

la réponse de catrice fait le nécessaire mais comment on peux l'intègre sur un model a fin de récupère les donnes de la feuil 1 et 2 sur le même classeur ??

apres un petite recherche j'ai trouvé ce code qui permet de copier les donnes d'un enregistrement suivant un condition sur la cellule fournisseur ci dessous le code:


Sub regroupement()
j = 2 la 1er ligne contient l'entête
For i = 2 To 65536

If Application.ActiveWorkbook.ActiveSheet.Range("f" & i).Value = "1031059" Then un code fournisseur pour le test
Application.ActiveWorkbook.Worksheets("Feuil2").Ra nge("A" & j & ":j" & j).Formula = Application.ActiveWorkbook.Worksheets("Feuil1").Ra nge("A" & i & ":j" & i).Value
j = j + 1
End If
Next i
MsgBox "Vous avez copié " & j - 2 & " lignes.", , "Traitement terminé"
End Sub

comment je défini le code fournisseur (variable) pour appliquer cette boucle sur tous le fournisseurs qui sont dans la feuil1 ?
voir ci-joint le classeur
merci pour votre aide
 

Pièces jointes

Re : regroupement et total vba

Bonsoir le fil,

jmxlinux à dit:
la réponse de catrice fait le nécessaire mais comment on peux l'intègre sur un model a fin de récupère les donnes de la feuil 1 et 2 sur le même classeur ??

A mon avis, il y a un problème de compréhension! Les solutions de Catrice, ainsi que la mienne te permette de trier tes données par fournisseur et de rajouter un total par fournisseur.

Mais c'est tout!!! A aucun moment nos solutions récupère les données d'une autre feuille!
car à aucun moment tu nous a parlé de plusieurs feuilles!


C'est vraiment très bien d'avoir fais toute ces recherches, d'avoir essayé de comprendre, et de vouloir l'adapter mais je crains qu'au final cette macro ne fasse pas tout à fait ce que tu veux!

L'idéal, peux-tu nous dire ce que tu veux que la macro fasse exactement?

Copier les données de la feuille 2 à la suite de la feuille 1, mais seulement pour les lignes qui ne figure pas déjà sur la feuille 1?

Est-ce que la boite de dialogue : "Vous avez copié x lignes." qui s'ouvre une fois la macro terminé t'intéresse, ou l'as-tu laissé là, ne sachant pas à quoi cela servait?

A te lire

Edition : bonsoir Catrice, on s'est croisé!!!
 
Re : regroupement et total vba

Bonsoir,
l'objectif c'est d'avoir une table pour chaque fournisseur qui contient tous le transaction dans la feuil 2 ?
j'ai réussit d'importer les données du fournisseur 1031059 comme dans l'exemple ci-joint.
maintenant je cherche a améliorer cette boucle a fin de traite tous les fournisseurs qui sont dans la feuil 1
concernant la boite de dialogue : "Vous avez copié x lignes." c'est juste pour l'information
merci
 
Re : regroupement et total vba

Re,
Bonsoir Excel-lent,

Tu fais un Données/Trier sur la colonne Fournisseur plus un sous total et ça devrait faire l'affaire...

Tu peux essayer ceci :

Sub Test()
With Sheets(2)
.Cells.ClearOutline
.Cells.Clear
Sheets(1).Range("A1").CurrentRegion.Copy .Range("A1")
.Range("A1").Sort Key1:=.Range("F2"), Order1:=xlAscending, Header:=xlYes
.Range("A1").Subtotal GroupBy:=6, Function:=xlSum, TotalList:=Array(6)
.Columns("A:F").EntireColumn.AutoFit
End With
End Sub


Voir le fichier joint
 

Pièces jointes

Dernière édition:
Re : regroupement et total vba

bonsoir et je vous remercie pour vos aides,😉
catrice,
j'ai essayé l'option des sous totaux mais ne touche pas l'objectif,
je vous explique le besoin pour comprendre pour quoi j'assiste d'utiliser une macro,

j'ai un fichier excel qui contient deux feuils , la 1er contient les données de plusieurs fournisseurs pour la période n, et la 2eme feuil contient les données de plusieurs fournisseurs pour la période n-1, (les fournisseurs sont pas forcements les mêmes dans les deux feuils) .
le besoin c'est de comparer les transactions de chaque fournisseur entre la période n et n-1 .
je ponce que maintenant est claire .

a mon avis la boucle que j'ai testé nous dirige vers le chemin.

😕maintenant je cherche le code vba qui capturer tous les codes fournisseur et de les stocker dans une mémoire temporaire et après le variable i vas prendre ces valeur stocké et traite chaque code fournisseur dans une table ,
l'exemple ci-joint donne une vue du fichier final .
merci encore 🙄
 

Pièces jointes

Dernière modification par un modérateur:
Re : regroupement et total vba

Bonsoir Jmxlinux,

C'est pas que je n'ai pas envie de t'aider, ni ...

Ton explication texte est très clair, mais ton exemple ci-joint ne correspond pas avec ce que tu nous dis! Je suis perdu et je ne crois pas être le seul!

Dans ton fichier il y a deux fois la période N (A1:F1 et I1:N1). A tout hasard, au cas ou il se serait agis d'une faute de frappe, j'ai regardé les colonnes dates, c'est les mêmes dates!!!

Où est l'année N-1? Pourquoi dans le tableau de droite étant identique à celui de gauche, sauf qu'il manque juste 2-3 lignes?

Le plus simple, peux-tu refaire ton fichier exemple ainsi :
-> onglet 1 : ton tableau d'origine de la période N (juste une dizaine de ligne nous suffit)
-> onglet 2 : ton tableau d'origine de la période N-1 (idem : 10 lignes c'est suffisant)
c'est bien ainsi qu'est bati ton vrai fichier?

-> onglet 3 : met nous le tableau final que tu veux obtenir. Tu veux les mêmes titres de colonnes? avec trois colonnes pour les montants au lieu d'une? Une pour N, une pour N-1, une pour la différence?

Bref, soit plus précis 😉

Car le VBA, comme tout programme c'est précis, donc si la question ne l'est pas, tu n'obtiendras jamais le résultat voulu.

Merci de nous aider à t'aider!

A demain soir

PS. : voici ci-joint comment j'ai compris ton truc. Il n'y a pas encore le code VBA, car ça m'emballe pas trop de risquer de travailler pour rien, je préfère attendre tes remarques.
 

Pièces jointes

Dernière édition:
Re : regroupement et total vba

bonjour,
dsl pour les erreurs de frape, ce qui concernant l'exemple excel c'est juste pour te montrer la position des tables et les totaux .
pour info les fournisseurs dans la feuil Année N et Année N-1 sont mélanges dans les tables .
le fichier ci-joint explique bien les deux feuils source et la résultat que je cherche.
je suis la pour tout infos.
merci 🙂
 

Pièces jointes

Re : regroupement et total vba

j'attends votre aide Excel-lent,
c'est tres urgent
merci😱
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

F
Réponses
6
Affichages
3 K
Francis200
F
D
Réponses
26
Affichages
4 K
S
Réponses
0
Affichages
2 K
S
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…