Bonjour,

Pour des raisons de souplesse et de lecture de mon programme j'ai instancie toutes les worksheets que j'utilise dans mon code dans une procedure a part (comme ca si les noms changent, et ils vont changer, une seule procedure a modifier). Les chemins viennent de Application.GetOpenFilename.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Sub subSetFilesAndSheets()
 
''''open file and set workbooks
Set wbModel = Workbooks.Open(ModelPath, 0, True)
    ChDir WorkingFolder
    ProgressForm.lblOpenModel.Caption = "Done"
    ProgressForm.Repaint
Set wbLogistic = Workbooks.Open(LogisticPath, 0, True)
    ProgressForm.lblOpenLogistic.Caption = "Done"
    ProgressForm.Repaint
Set wbQuality = Workbooks.Open(QualityPath, 0, True)
    ProgressForm.lblOpenQuality.Caption = "Done"
    ProgressForm.Repaint
Set wbPurchasing = Workbooks.Open(PurchasingPath, 0, True)
    ProgressForm.lblOpenPurchasing.Caption = "Done"
    ProgressForm.Repaint
 
''''set model sheets
Set wsModelSynthesis = wbModel.Sheets("Synthesis")
Set wsModelLogistic = wbModel.Sheets("Logistics")
Set wsModelQuality = wbModel.Sheets("Quality")
Set wsModelPurchasing = wbModel.Sheets("Purchasing")
 
''''set program sheets
Set wsNoQuality = ThisWorkbook.Sheets("No quality data")
Set wsNoPurchasing = ThisWorkbook.Sheets("No purchasing data")
Set wsTempPurchasing = ThisWorkbook.Sheets("Temp purchasing data")
 
''''set sources sheets
Set wsSourceLogistic = wbLogistic.Sheets("Analiza")
 
Set wsSourceENCR = wbQuality.Sheets("ENCR per supplier per month")
Set wsSourceDPM = wbQuality.Sheets("DPM (e) per supplier")
Set wsSourceQA = wbQuality.Sheets("Quality Alert per supplier")
 
Set wsSourcePurchasing = wbPurchasing.Sheets("Sheet1")
 
End Sub
Comme vous voyez il y en a plein, ce que je voudrais faire c'est me passer des wb et plus generalement simplifier le programme. Or, une fois les fichiers ouverts (avec ou sans affectation des wb) si je fais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
set ws = workbooks(Chemin).Sheets("Ma sheet")
ca ne marche pas parce qu'Excel attend le nom du fichier et pas le chemin.

Des conseils pour simplifier tout ca ?