tri d'un tableau par date

Eclipto

XLDnaute Junior
BOnjour,

J'ai mis les explications sur le fichier
 

Pièces jointes

  • Classeur1.xls
    42.5 KB · Affichages: 97
  • Classeur1.xls
    42.5 KB · Affichages: 100
  • Classeur1.xls
    42.5 KB · Affichages: 93

pierrejean

XLDnaute Barbatruc
Re : tri d'un tableau par date

Re

Le mieux est de copier integralement la feuille dans le nouveau classeur
Sinon copier la macro du module de la feuille dans le module de la feuille concernée du nouveau classeur
Ensuite il faut transferer integralement les macros du module1 dans un module standard du nouveau classeur
 

Eclipto

XLDnaute Junior
Re : tri d'un tableau par date

Merci
ca marche...
Mais est il possible intégré ta macro dans celle-ci pour quelle s'applique en même temps si c'est possible...


Code:
Sub Infos()
'
' Infos Macro
'

'
    ActiveCell.FormulaR1C1 = _
        "=IF(ISERROR(INDEX(extract!R1C6:R1500C7,MATCH(SMALL(extract!R1C6:R1500C6,COLUMN()-2),extract!R1C6:R1500C6,0),2)),"""",INDEX(extract!R1C6:R1500C7,MATCH(SMALL(extract!R1C6:R1500C6,COLUMN()-2),extract!R1C6:R1500C6,0),2))"
    Range("C1").Select
    Selection.AutoFill Destination:=Range("C1:IV1"), Type:=xlFillDefault
    Range("C1:IV1").Select
  
    Rows("1:1").EntireRow.AutoFit
    Range("C2").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(ISERROR(LOOKUP(R[-1]C,extract!RC7:R[1500]C7,extract!RC14:R[1500]C14)),"""",LOOKUP(R[-1]C,extract!RC7:R[1498]C7,extract!RC14:R[1498]C14))"
    Range("C2").Select
    Selection.AutoFill Destination:=Range("C2:IV2"), Type:=xlFillDefault
    Range("C2:IV2").Select

    Range("C3").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(ISERROR(LOOKUP(R[-2]C,extract!R[-1]C7:R[1497]C7,extract!R[-1]C9:R[1497]C9)),"""",LOOKUP(R[-2]C,extract!R[-1]C7:R[1497]C7,extract!R[-1]C9:R[1497]C9))"
    Range("C3").Select
    Selection.AutoFill Destination:=Range("C3:IV3"), Type:=xlFillDefault
    Range("C3:IV3").Select
 
    Range("C4").Select
    ActiveCell.FormulaR1C1 = _
        "=SUMPRODUCT((extract!R2C13:R1500C13=R[-1]C1)*(extract!R2C7:R1500C7=R1C)*(((R[-1]C2=""S"")*extract!R2C30:R1500C30)+((R[-1]C2=""E"")*extract!R2C22:R1500C22)))"
    Range("C4").Select
    Selection.AutoFill Destination:=Range("C4:C109"), Type:=xlFillDefault
    Range("C4:C109").Select
    Selection.AutoFill Destination:=Range("C4:IV109"), Type:=xlFillDefault
    Range("C4:IV109").Select
 
Dernière édition:

Eclipto

XLDnaute Junior
Re : tri d'un tableau par date

Le fichier marche comme ca:

1) J'utilise la macro "vidé" sur l'onglet "liaison" (car les ordinateur sur lequel le fichier est utilisé sont lent)

2) Puis des données sont copier/coller dans l'onglet "extract", je lance la macro "ajouts" pour ajouter des colonnes et des calculs nécessaire pour exécuter la macro "infos".

3) Enfin je lance la macro "Infos", la première fois le fichier marche bien.

Le problème, c'est qu'après le premier essai si je relance la procédure l'onglet "liaison" bug.

Je pense que ca vient du tri car si j'affiche les lignes masquées que supprime les lignes de 110 à 187 que relance je refais les étapes 1 et 3 (l'étape 2 étant inutile l'onglet extract est déjà comme il devrait être) ça marche

C'est pour cela que je pense qu'en intégrant le tri dans la macro infos cela résoudrait le problème mais je n'arrive pas a le faire. dans le fichier ci-dessus il y a le code de pierrejean que j'ai intégré a mon fichier
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : tri d'un tableau par date

Re

le probleme est le suivant
Tes macros modifient la cellule A1 de la feuille Liaison et par consequent lancent la macro evenementielle
Private Sub Worksheet_Change(ByVal Target As Range)
laquelle trouve en A1 autre chose qu'une date et donc tousse
J'ai supprimé la modification de A1 feuille liaison dans la macro Ajouts
et reporté la macro
Private Sub Worksheet_Change(ByVal Target As Range)
en module 2 (devint tri() )
Vois si cela te convient
Il te reste tout de meme a mettre en A1 quelque chose de coherent !!!

Ps: Je te laise la paternité de tes macros (lol)
 

Pièces jointes

  • Histo_d.zip
    28.9 KB · Affichages: 23
Dernière édition:

Eclipto

XLDnaute Junior
Re : tri d'un tableau par date

pour la date en A1 c'est un report de la date en A1 dans l'onglet "extract" qui elle même est une formule car dans la colonne A de l'onglet "extract" la date n'a pas l'ordre reconnue par Excel. j'avais fait un report car ton tri avait besoin d'une date référence

"Infos"

1) copie cette formule en C1 est l'étire jusqu'à IV1

Code:
=SI(ESTERREUR(INDEX(extract!$F$1:$G$1500;EQUIV(PETITE.VALEUR(extract!$F$1:$F$1500;COLONNE()-2);extract!$F$1:$F$1500;0);2));"";INDEX(extract!$F$1:$G$1500;EQUIV(PETITE.VALEUR(extract!$F$1:$F$1500;COLONNE()-2);extract!$F$1:$F$1500;0);2))

2) copie cette formule en C2 est l'étire jusqu'à IV2

Code:
=SI(ESTERREUR(RECHERCHE(C1;extract!$G2:$G1502;extract!$N2:$N1502));"";RECHERCHE(C1;extract!$G2:$G1500;extract!$N2:$N1500))

3) copie cette formule en C3 est l'étire jusqu'à IV109

Code:
SOMMEPROD((extract!$M$2:$M$1500=$A4)*(extract!$G$2:$G$1500=C$1)*((($B4="S")*extract!$AD$2:$AD$1500)+(($B4="E")*extract!$V$2:$V$1500)))
 
Dernière édition:

Eclipto

XLDnaute Junior
Re : tri d'un tableau par date

Re

# 25
je croyais que la sequence etait
vidé ajouts Infos

#26
Tu pourrais essayer d'etre un peu plus precis S.T.P

Ligne 1 de quelle feuille ?
Quelle formule ?
Quelle macro ?

#25

Dans la version original du fichier quand je copie un nouveau tableau dans "extract" il manque les colonnes F/O/V/W/AD ainsi que les infos dedans et une modification de la colonne G. la macro "ajouts" est la pour les ajouter.
Si il n'y pas de modification dans l'onglet extract comme dans l'exemple pas besoin de l'utiliser.


#26

Désolé, dans l'onglet liaison quand tu applique la macro infos elle commence pas copier et étiré la ligne 1 hors actuellement ce n'est pas le cas si tu vis l'onglet liaison avec la macro.

la formule

Code:
=SI(ESTERREUR(INDEX(extract!$F$1:$G$1500;EQUIV(PETITE.VALEUR(extract!$F$1:$F$1500;COLONNE()-2);extract!$F$1:$F$1500;0);2));"";INDEX(extract!$F$1:$G$1500;EQUIV(PETITE.VALEUR(extract!$F$1:$F$1500;COLONNE()-2);extract!$F$1:$F$1500;0);2))

dans la macro infos

Code:
ActiveCell.FormulaR1C1 = _
        "=IF(ISERROR(INDEX(extract!R1C6:R1500C7,MATCH(SMALL(extract!R1C6:R1500C6,COLUMN()-2),extract!R1C6:R1500C6,0),2)),"""",INDEX(extract!R1C6:R1500C7,MATCH(SMALL(extract!R1C6:R1500C6,COLUMN()-2),extract!R1C6:R1500C6,0),2))"
    Range("C1").Select
    Selection.AutoFill Destination:=Range("C1:IV1"), Type:=xlFillDefault
    Range("C1:IV1").Select
 

Statistiques des forums

Discussions
312 559
Messages
2 089 602
Membres
104 224
dernier inscrit
Brilma