Consolidation

Consolidation - VB/VBA/VBS - Programmation

Marsh Posté le 03-09-2007 à 10:41:35    

Salut,
 
j'ai les chiffres de 3 sites S1 S2 et S3 à consolider.
J'ai une copie du meme workbook pour chacun de ces sites.
 
apparemment l'outil Consolidate d'Excel ca a l'air d'etre plus qu'une prise de tete qu'autre chose, j'essayais de pondre une macro pour faire ca:
 
J'avais fait ca: est ce que je suis sur la bonne voie, ou y'a une autre méthode plus simple?
merchi  :bounce:  

Code :
  1. Sub consolider()
  2. Dim S1, S2, S3 As String
  3. Dim Sites, Pages As Variant
  4. Dim NumCol, NumLigne As Integer
  5. Path = "H:\My Documents\2007\"
  6. S1 = Path & "S1 2007.xls"
  7. S2 = Path & "S2 2007.xls"
  8. S3 = Path & "S3 2007.xls"
  9. Sites = Array("S1", "S2", "S3" )
  10. Pages = Array("W1","W2" )
  11. For NumCol = 3 To 14
  12.     For NumLigne = 14 To 30
  13.         For Each P In Pages
  14.         Sheets(P).Select
  15.         Cells(NumLigne, NumCol).Select
  16.         ActiveCell.FormulaR1C1 = "=SUM("
  17.             For Each S In Sites
  18.                 ActiveCell.FormulaR1C1 = "'" & S & "]" & P & "!R" & NumLigne & "C" & NumCol & " )"
  19.             Next E
  20.         Next P
  21.     Next NumLigne
  22. Next NumCol
  23. End Sub


Reply

Marsh Posté le 03-09-2007 à 10:41:35   

Reply

Marsh Posté le 04-09-2007 à 10:08:05    

For Each P In Pages
    For NumCol = 3 To 14
        For NumLigne = 14 To 30
                Cells(NumLigne, NumCol).Select
                For Each E In Entites
                    temp = Workbooks(E).Sheets(P).Cells(NumLigne, NumCol)
                    MsgBox (Workbooks(E).Sheets(P).Cells(NumLigne, NumCol))
                    ActiveCell.FormulaR1C1 = ActiveCell.FormulaR1C1 + temp
                Next E
        Next NumLigne
    Next NumCol
 Next P
 
 
Finalement j'ai fait ca: le seul souci que j'ai c'est, si le fichier qui correspond à E n'est pas ouvert, il me sort une erreur. Qu'est ce que je dois rajouter pour qu'il ne fasse pas ca?

Reply

Sujets relatifs:

Leave a Replay

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