• Initiateur de la discussion Initiateur de la discussion olivierdeudeu
  • 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 !

O

olivierdeudeu

Guest
Bonjour,

Je possede un document excel qui récupere les données provenant d'une requete.
Ces données sont automatiquement triées par 'id'.
Avec l'id, j'ai egalement un libellé et un prix.

Actuellement à la fin de toutes mes lignes j'ai un montant total qui est calculé, et lorsque j'applique un filtre, le montant s'adapte bien à ce que je filtre.

Ce que j'aimerai c'est inserer à la fin de chaque serie d'id identique cette ligne montant total qui calcul le montant total des lignes qui ont l'id identique.

Je suis clair ? ce qui me permettrai de ne pas avoir besoin de trier par id, pour avoir les montants

Merci

Cordialement

Ci joint un fichier identique.
 

Pièces jointes

Re : tri par filtre...

c'est deja fait ca , et ca marche niquel, mais à a chaque fois je suis obligé de filter par id... imaginez s'il y a 250 ID... ca va etre long... et moi j'aimerai imprimer tout d'un coup
 
Re : tri par filtre...

Re,
Plus je relis...moins je comprends ta question
Pourquoi le fichier joint ne fait-il pas apparaitre les sous-totaux puisque tu dis que c'est déjà fait
Je ne vois pas la rapport avec l'impression, non évoqué dans ton premier message d'ailleurs
A+
kjin
 
Re : tri par filtre...

le fichier joint est un exemple... car j'aimerai reproduire la meme chose avec des données provenant d'une requete sql.
le resultat de la requete donne grossierement le meme resultat que le fichier joint.

ce que j'aimerai c'est inserer automatiquement les sous totaux... des l'ouverture du fichier, donc juste apres l'execution de la requete
 
Re : tri par filtre...

Bonsoir, kjin, olivierdeudeu,

Ce que j'aimerai c'est inserer à la fin de chaque serie d'id identique cette ligne montant total qui calcul le montant total des lignes qui ont l'id identique.
Pour faire celà il faut passer par du VBA.
Mais, si ton filtre change, est-ce qu'il faudra supprimer les lignes des anciens sous-total des "id"?

Edit: petite précision: Au fait, dans le fichier que tu as envoyé le filtre n'est pas actif alors est-ce que tu veux insérer les lignes avec le filtre actif ou non?
 
Dernière édition:
Re : tri par filtre...

Re,

dans ce cas, je te propose ce code.
Attention, du cout le sous total à la fin du tableau sera faux, mais je pense que tu connais la fonction SOMME.SI 😉

Code:
Sub test()
Dim I As Long, Lig As Long, LigDeb As Long
Application.ScreenUpdating = False
For I = [A65536].End(xlUp).Row To 2 Step -1
  If Range("A" & I + 1).Value <> Range("A" & I).Value Then Rows(I + 1).Insert
Next
Do
  Lig = [A2].End(xlDown).Row
  LigDeb = Application.CountIf(Range("A2", Range("A" & Lig)), Range("A" & Lig).Value)
  Range("C" & Lig + 1).FormulaLocal = "=SOMME(C" & Lig - LigDeb + 1 & ":C" & Lig & ")"
  Range("B" & Lig + 1).Value = [COLOR=Blue][B]"TOTAL:"[/B][/COLOR]
  Range("A" & Lig + 1).Value = "id" & Range("A" & Lig).Value
Loop Until Lig + 1 = [A65536].End(xlUp).Row
Application.ScreenUpdating = True

End Sub
Edit: légère modification dans le code (en bleu) + remarque "SOMME.SI"
 
Dernière édition:
Re : tri par filtre...

yes magique ! c'est exactement ca !
je vais essayer de maintenant de l'adapter a mon vrai fichier.
je te tiens au jus.

en tout cas merci !

juste un truc, tu peux expliquer un peu le fonctionnement du script ? car jm bien comprendre ;-)
 
Re : tri par filtre...

ok, c'est parfait j'ai trouvé !!!! et maintenant un peu d'esthétique, si je veux mettre une ligne d'espace au dessus et en dessous... colorier la ligne en rouge...

c'est possible ?


et puis un truc top serais de lancer la macro sur le clic d'un gros bouton 🙂
 
Dernière modification par un modérateur:
Re : tri par filtre...

Bonjour,

je veux mettre une ligne d'espace au dessus et en dessous... colorier la ligne en rouge...
Tu veux colorier la ligne indiquant le total je suppose:

Code:
Sub test()
Dim I As Long, Lig As Long, LigDeb As Long
Application.ScreenUpdating = False
For I = [A65536].End(xlUp).Row To 2 Step -1
  If Range("A" & I + 1).Value <> Range("A" & I).Value Then Rows(I + 1).Insert
Next
Lig = 2
Do
  Lig = Range("A" & Lig).End(xlDown).Row
  LigDeb = Application.CountIf(Range("A2", Range("A" & Lig)), Range("A" & Lig).Value)
  Range("I" & Lig + 1).FormulaLocal = "=SOMME(I" & Lig - LigDeb + 1 & ":I" & Lig & ")"
  Range("B" & Lig + 1).Value = "TOTAL:"
  Range("A" & Lig + 1).Value = "id" & Range("A" & Lig).Value
  Rows(Lig + 2).Insert: Rows(Lig + 1).Insert
'  Rows(Lig + 1).Interior.Color = vbRed: Rows(Lig + 3).Interior.Color = vbRed
  Rows(Lig + 2).Interior.Color = vbRed
  Lig = Lig + 4
Loop Until Lig - 2 = [A65536].End(xlUp).Row
Application.ScreenUpdating = True
End Sub

et puis un truc top serais de lancer la macro sur le clic d'un gros bouton 🙂
Tu crés un bouton via la boite à outils formulaire.
Dans la boite de dialogue qui s'est ouverte, tu choisis la macro "test" et tu clic "ok".
 
Re : tri par filtre...

yes, c'est parfait !

j'aimerai maintenant pouvoir proposer à l'utilisateur de saisir son identifiant ZEO, LHR, HRE (par exemple).
Dans ma requete, j'ai bien une condition de selection sur l utilisateur.


j'aimerai depuis excel, faire une inputbox pour saisir l'identifiant, et que ma requete s'adapte.

un grd merci d'avance, pour ta gentillesse ^^

Olivier D
 
- 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

Réponses
5
Affichages
565
Réponses
9
Affichages
703
Réponses
2
Affichages
462
Réponses
12
Affichages
961
Retour