[VBA-E]Simplifier avec des instances
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:
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:
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 ?