Trier données utilisant une macro

Bonjour,

J'aimerais faire un trie a partir d'une macros.

En faite, j'aimerais a partir de la feuille "données" , insérer les données sur la feuille "resume" par rapport Ref et date. Il faut considérer que pour une même Ref et Date, il peut exister plusieurs durées, donc il faudrait insérer la somme de celles-ci. Il faudra utiliser une Macros. Considérer qu'il y aura plusieurs Ref. La date varie du 11/08/2012 au 07/10/2012.

Merci d'avance pour votre aide.

J'ajoute le fichier ci-joint pour que soit plus claire.

14questions.xlsx (12.34 Ko)

bonjour

en attendant le code une formule peut etre "macrotable"

=SOMMEPROD((donnees!$B$2:$B$13=B$2)*(donnees!$A$2:$A$13=$A3)*donnees!$C$2:$C$13)

cordialement

eventuellement

13calcul.zip (9.80 Ko)

Bonsoir,

Avant tout, je te remercie pour ton aide.

Le problème de la formule apparaît quand il y a plus de références, est-ce que vous sauriez une solution??

Merci d'avance.

bonojour

toujours en attendant une vrai solution ; je crois comprendre que tu ne veux pas que l'on voie la formule ;qui je le rapelle doit etre dupliquée sur l'ensemble du tableau

1) tu cliques sur le coin sup du tableau entre A et 1 pour mettre toute la feuille en selection

2) Format >>>cell>>>>protection

3) tu decoche "verroulillé"

4) tureviens sur ton tableau et tu selectionne la plage qui contient les resultats ( donc les formules)

5) tu retournes dans Format >>>cell >>>protection

6) tu coches verrouillé et masqué

7) tu reviens sur ta feuille et tu vas sur OUtils >>>>protection >>> ok

resultat : tes 3 lignes sont protegées (mais pas le reste de ta feuille) ; et on ne vois pas la formule

bien sur avec du vba en direct ce serait mieux ..............

cordialement

Bonjour

Voici un code qui sera déclenché à chaque fois que tu reviendras sur la page "resume"

Macro à placer dans le module de la feuille

Rien de compliqué, le plus embêtant c'était de trouver la bonne formule

Option Explicit

Private Sub Worksheet_Activate()
Dim LigneDer As Long
Dim ColonneDer As Integer
Dim NblG As Long

  LigneDer = Range("A" & Rows.Count).End(xlUp).Row
  ColonneDer = Cells(2, Columns.Count).End(xlToLeft).Column
  NblG = Sheets("donnees").Range("A" & Rows.Count).End(xlUp).Row
  With Range(Range("B3"), Cells(LigneDer, ColonneDer))
    .Formula = "=SUMPRODUCT((donnees!$B$2:$B$" & NblG & "=B$2)*(donnees!$A$2:$A$" & NblG & "=$A3)*donnees!$C$2:$C$" & NblG & ")"
    .Value = .Value
  End With
End Sub

bonjour Banzai

heureusement que tu existes

j'ajoute que pour acceder au Module simplement

1) tu fais Alt et F11 les 2 touches en meme temps

2) dans la colonne de gauche (feuil1,feuil2...... work....) si il n'y a pas ecrit MODULE tu fais insersion >>>module

3) ceci fait ; tu cliques 2fois sur module (il deviendra gris)

6) et là tu colles ce que Banzai t'as magnifiquement concocté ;sans rien oublier

dites -moi que j'explique bien ; merci

cordialement

Bonjour

tulipe_3 a écrit :

dites -moi que j'explique bien ; merci

heuu comment dire tu t'es plante en étant gentil

'Tu as fais une légère erreur d'interprétation de ce que j'ai très mal dit" : C'est mieux comme ça non ?

Banzai64 a écrit :

Macro à placer dans le module de la feuille

Et tu indiques l'accès (la création) d'un module standard

Clic droit sur l'onglet de la page "resume" ---> Visualiser le code

Tu y colles la macro

re

ah !!!! quel C.. je fais bah oui because worksheet _activate ; c'est pas pour rien qu'elle est actvate ; n'est-ce pas ?

bon on dira que j'ai bien explqué quand meme pour un module standard mais que dans ce cas la pour le faire marcher il faut

soit creer une commande avec un bouton ou tout autre objet auquel on puisse affecter une macro ou encore passer par la commande executer

c'est bien ça :heureusement que tu existes ; futur moderateur??

cordialement

Rechercher des sujets similaires à "trier donnees utilisant macro"