Extraire une partition de données d'une colonne à partir d'une date

gregsk

XLDnaute Nouveau
Bonjour à tous,

Bon j'ai l'impression que mon problème est un peu compliqué... J'espère que je vais réussir à l'exposer clairement.

Ma feuille excel présente les cotations boursières quotidiennes de 38 entreprises du CAC 40 du 1/01/2004 au 31/12/2004.
En colonne, apparaissent donc les 38 entreprises et en ligne, la date.
Sur la ligne en dessous des intitulés des entreprises, une date précise (qui correspond à la publication du CA du 1er trimestre pour la petite histoire).

J'aimerais trouver une formule qui me permette de collecter l'ensemble des cotations comprises entre 70 jours avant la date de publication et 45 jours après la date de publication (soit 115 jours en tout). LA difficulté réside dans le fait que la date de publication varie pour chaque entreprise évidemment. J'ai plusieurs années à faire ainsi donc je me vois mal le faire à la main.

Si quelqu'un pouvait m'apporter son aide, j'en serais très heureux.

Merci d'avance.

Je mets en copie le fichier dont je me sers.

(P.S. Afin de pouvoir joindre mon fichier, j'ai du supprimer les données de certaines entreprises)
 

Pièces jointes

  • HELP.xls
    47 KB · Affichages: 74
  • HELP.xls
    47 KB · Affichages: 88
  • HELP.xls
    47 KB · Affichages: 85

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Extraire une partition de données d'une colonne à partir d'une date

Bonjour,

Essai pour une entreprise avec le filtre élaboré:

Code:
Sub essai()
For Each c In [B1:E1]
  [K1] = c
  [G2] = c.Offset(1, 0)
  [A1:E1000].AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=[H1:H2], _
      CopyToRange:=[J1:K1], Unique:=False
  Set dt = Sheets("sélection").[A:A].Find(what:=[J2])
  Set soc = Sheets("sélection").[1:1].Find(what:=[K1])
  [K2:K100].Copy Sheets("sélection").Cells(dt.Row, soc.Column)
Next c
End Sub

JB
Formation Excel VBA JB
 

Pièces jointes

  • HELP.zip
    37.4 KB · Affichages: 53
  • HELP.zip
    37.4 KB · Affichages: 66
  • HELP.zip
    37.4 KB · Affichages: 57
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
Re : Extraire une partition de données d'une colonne à partir d'une date

Si tu veux le résultat dans le deuxième onglet, tu mets la formule ci-dessous dans la cellule B2 du deuxième onglet et ensuite tu fais un "copier" de la cellule B2 puis un "coller" dans toutes les cellules nécessaires du tableau dans ce deuxième onglet.

=SI(ET(données!$A3>=(données!B$2-70);données!$A3<=(données!B$2+44));données!B3;"")


[edit]
Arf !! :( C'est pas bon ce que j'ai dit ! :(
Ca ne peut fonctionner que si tu as le même tableau dans les deux onglets.
[/edit]
 
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
Re : Extraire une partition de données d'une colonne à partir d'une date

Content pour toi si ça fonctionne, mais attention, il faut que les colonnes et les lignes soient bien identiques.
Par exemple, avec les tableaux que tu avais envoyés, ça ne pouvait pas fonctionner car une même compagnie n'était pas dans la même colonne dans les deux tableaux.


Sinon tu peux essayer la formule suivante à copier en B2 du tableau dans le deuxième onlglet, puis copier/coller dans toutes les cellules de ce tableau :

=SI(ESTERREUR(EQUIV(B$1;données!$B$1:$E$1;0));"";SI(ET(données!$A3>=(DECALER(données!$A$2:$E$2;0;EQUIV(B$1;données!$B$1:$E$1;0);1;1)-70);données!$A3<=(DECALER(données!$A$2:$E$2;0;EQUIV(B$1;données!$B$1:$E$1;0);1;1)+44));DECALER(données!$A$3:$E$264;LIGNE()-2;EQUIV(B$1;données!$B$1:$E$1;0);1;1);""))
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 505
Messages
2 089 070
Membres
104 020
dernier inscrit
Mzghal