Ho due versioni di un "Excel-Tool", cioè un foglio di calcolo con un sacco di codice vba. Diciamo, questo strumento è utilizzato per monitorare due strutture. Entrambe le strutture differiscono per aspetti minori.
Questo significa che ho numeri magici in entrambe le versioni per impostare gli intervalli corretti per ogni funzione nei fogli di calcolo.
Ho refactored il vba per isolare i numeri magici. Ho separato la logica aziendale in un modulo e i numeri magici per intervalli in un secondo modulo. Ora posso riutilizzare il modulo logico in entrambe le versioni e devo solo mantenere un modulo logico e non devo tenere sincronizzati due file. Questo è un grande miglioramento.
Ma sembra che non ho finito. Voglio avere solo un masterfile (excel + moduli vba importati) da distribuire e un qualche tipo di file di configurazione per memorizzare i numeri magici per la struttura attuale.
Qualcuno ha esperienza con questo concetto? Esiste un primer o anche una soluzione pronta per la configurazione di un programma vba?
2015-04-29 Modifica:
Non volevo inserire il codice in primo luogo, ma permettimi di chiarire attraverso i numeri.
Diciamo che dobbiamo strutture, ognuna con un numero di macchine. L'intera attività riguarda la generazione di grafici delle prestazioni della struttura. I dati non elaborati per ogni struttura (e ogni macchina) hanno lo stesso formato, ma il numero di macchine varia tra le strutture.
Ho una funzione vba per creare grafici standardizzati. Questa funzione viene chiamata per ogni macchina con una serie di intervalli, che punta ai dati non elaborati.
Per facilitiy 1 potrebbe essere:
Set Inputdata(0) = Sheet1.Ranges("A2:A20")
Set Inputdata(1) = Sheet1.Ranges("B2:B20")
Set newChart = ChartCreator("Facility 1", Inputdata)
E per l'impianto 2:
Set Inputdata(0) = Sheet1.Ranges("A2:A25")
Set Inputdata(1) = Sheet1.Ranges("B2:B25")
Set Inputdata(2) = Sheet1.Ranges("C2:C25")
Set newChart = ChartCreator("Facility 2", Inputdata)
Ho separato la logica, il ChartCreator, ma ho ancora quei numeri. Poiché i dati di Sheet1 sono generati da una query SQL, qualcosa di simile sta succedendo lì.
Se usassi il suggerimento di James, avrei un altro foglio con la configurazione. Devo ancora mantenere due file excel con differenze in un foglio di configurazione.
Ma quello che voglio è avere un foglio Excel che possa passare ad entrambe le strutture e aggiungere qualcosa come un file ini per archiviare i dati specifici. Quindi posso semplicemente mantenere una copia generica del file excel per me per aggiungere nuove cose o effettuare correzioni di bug e quindi posso solo inviare una nuova versione di questo in entrambe le strutture e non pensare alla configurazione.