[Excel] Comment rassembler des series temp dans une table

Comment rassembler des series temp dans une table [Excel] - VB/VBA/VBS - Programmation

Marsh Posté le 26-01-2007 à 09:20:39    

Bonjour,
 
J'espere que quelqu'un pourra m'aider: je cherche a reclasser des series temporelles dans une meme table excel.
 
Exemple (simplifie):
Je pars de 3 tables:
Table1
Date           A
01/01/2007  A1
01/02/2007  A2
01/03/2007  A3
 
Table2
Date            B
01/02/2007   B2
01/03/2007   B3
01/04/2007   B4
 
Table3          
Date            C
01/01/2007   C1
01/03/2007   c3
01/04/2007   C4
 
Et je veux avoir:
Table             A    B    C
01/01/2007     A1        C1
01/02/2007     A2  B2
01/03/2007     A3  B3   C3
01/04/2007          B4    C4
 
Y-aurai-t-il une astuce Excel ou un pg VB pour executer ca?
 
Merci d'avance pour les reponses.

Reply

Marsh Posté le 26-01-2007 à 09:20:39   

Reply

Marsh Posté le 26-01-2007 à 10:38:17    

copier coller en vb ca devrait te suffire non ?

Reply

Marsh Posté le 26-01-2007 à 10:58:36    

En fait non, car j'ai des centaines de series a reclasser.

Reply

Marsh Posté le 26-01-2007 à 19:40:16    

ta combien de colonnes ?

Reply

Marsh Posté le 29-01-2007 à 13:19:45    

J'ai 100 series journalieres avec une historique jusqu'au 01/01/1995.

Reply

Marsh Posté le 29-01-2007 à 17:46:31    

tien j'ai fait un début, si ca peut t'aider
 
http://cjoint.com/?bDrTOrswZK

Reply

Marsh Posté le 30-01-2007 à 07:49:53    

Bonjour,
Pour kad2000:
peux-tu donner le nom de tes tables, le répertoire où elles sont rangées,
la récupération est-elle à faire une seule fois, ou périodiquement en ne prenant en compte que les nouvelles dates? Tu as bien une colonne date et une seule colonne d'information dans tes table1..2.?
Bonne journée
Cordialement


Message édité par seniorpapou le 30-01-2007 à 07:50:41
Reply

Marsh Posté le 30-01-2007 à 10:39:22    

Merci ingenieurcesi, je vai y jeter un oeil.
Pour seniorpapou, le nom de mes tables est tec1,tec2, tec3,... et dans chaque table j'ai une colonne valeur (nommee tec1, tec2...) et une colonne date. La recuperation ici n'est a faire qu'une seule fois.
En fait, si tu peux apporter une solution toute prete pour mon pb, ce serait genial, mais ce qui m'interesse surtout, c'est une macro generique que je puisse ensuite appliquer, car j'ai cette manip a faire sur d'autres fichiers aussi.
Merci

Reply

Marsh Posté le 30-01-2007 à 19:26:05    

Bonsoir,
à tester et améliorer
Sub cherc()
 
Application.ScreenUpdating = False
Set fs = Application.FileSearch
With fs
    .LookIn = "N:\mes telechargements\ingenieurcesi"
    .Filename = "tec*.xls"
    If .Execute(SortBy:=msoSortByFileName, _
            SortOrder:=msoSortOrderAscending) > 0 Then
         
        For i = 1 To .FoundFiles.Count
            Workbooks.Open Filename:=.FoundFiles(i)
         sonnom = ActiveWorkbook.Name
           
  Dim wkbsh1 As Worksheet
      Set wkbsh1 = Workbooks("hardware.xls" ).Sheets(1)
      Set wkbsh2 = ActiveSheet
       
      nbli = wkbsh2.Range("A65534" ).End(xlUp).Row
      For j = 2 To nbli
     
        With wkbsh1.Range("a2:a65534" )
       
         atrouver = wkbsh2.Cells(j, 1).Value
        Set c = .Find(atrouver, LookIn:=xlValues)
        If Not c Is Nothing Then
        ligneexiste = c.Row
        wkbsh1.Cells(ligneexiste, i + 1) = wkbsh2.Cells(j, 2).Value
         
             
        Else
        derligne = wkbsh1.Range("A65534" ).End(xlUp).Row + 1
         
            wkbsh1.Cells(derligne, 1) = wkbsh2.Cells(j, 1).Value
            wkbsh1.Cells(derligne, i + 1) = wkbsh2.Cells(j, 2).Value
        End If
        wkbsh1.Cells(1, i + 1) = Left(sonnom, Len(sonnom) - 4)
   
        End With
     
        Next j
   
        Workbooks(sonnom).Close savechanges:=False
 
 
     
        Next i
        wkbsh1.Activate
    Else
        MsgBox "pas de fichiers"
    End If
End With
Application.ScreenUpdating = True
 
End Sub
 
 
Je n'ai pas classé par date à la fin.
Cordialement


Message édité par seniorpapou le 30-01-2007 à 22:09:02
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed