› Sviluppare funzionalita su Microsoft Office con VBA › Creare variabili con percorsi per spostarsi o ricercare in altri file
-
AutoreArticoli
-
Buon giorno a tutti,
Ho un file con delle macro che generano sui vari fogli excel, delle formule che vanno a cercare valori su altri file (=CERCA.VERT(...)) che possono su altre cartelle o altri server. Oppure ho altre macro che hanno la necessità di aprire e attivare altri file che sono sempre in altre cartelle o server.
Queste operazioni sono ripetute tantissime volte all'interno di una quantità enorme di macro.
Ogni volta devo aggiungere del codice, devo sempre aggiungere i percorsi di questi file.
Adesso avrei per giunta la necessità di spostare questi file, con quindi tutti i relativi percorsi.
A questo punto chiedo:
E' possibile fare in modo che all'apertura del file vengano attribuiti questi percorsi a delle variabili che vengano letti in qualsiasi punto del progetto?
In ogni punto del codice dove al momento è scritto il percorso andrei a mettere la variabile e a questo punto ogni volta dovessi avere la necessità di modificare i percorsi, sarebbe sufficiente farlo sulla variabile del percorso.
Al momento quello che sono riuscito a fare è stato di creare delle variabili pubbliche in una macro:
Public PercAnag
Public PercProd
Public PercGir
Public PercLaserSub Percorsi()
PercAnag = "C:\Users\dl\Documents\PRODUZIONE"
PercProd = "M:\DISEGNI STAMPE PRODUZIONE"
PercGir = "M:\LASER-GEO"
PercLaser = "X:\SCAMBIO\PRODUZIONE-SOLLECITI"
End Subperò all'inizio di ogni altra macro dovrei mettere:
Call Percorsi
per caricare i valori delle variabili.
Non si può fare in modo che queste variabili vengano caricate automaticamente una sola volta all'apertura del file e rimangano poi disponibili?
Spero di essere stato chiaro
grazie
Puoi fare così, le variabili le dichiari Global in un Modulo standard:
Option Explicit Global PercAnag As String Global PercProd As String Global PercGir As String Global PercLaser As Stringmentre le inizializzi all'avvio nel Modulo Questa_Cartella_Di_Lavoro (ThisWorkbook) con Private Sub Workbook_Open() ma se la chiami Private Sub Auto_Open() la puoi mettere insieme alla dichiarazione nel Modulo standard:
Option Explicit Private Sub Workbook_Open() PercAnag = "C:\Users\dl\Documents\PRODUZIONE" PercProd = "M:\DISEGNI STAMPE PRODUZIONE" PercGir = "M:\LASER-GEO" PercLaser = "X:\SCAMBIO\PRODUZIONE-SOLLECITI" End SubPerò fai molto attenzione a metterci il separatore finale \ da qualche parte, o qui o nelle altre macro prima del nome del file.
Funziona perfettamente, oltretutto nella stringa ho già messo direttamente oltre alla \ anche il nome file, così non devo fare più nulla.
Grazie
-
AutoreArticoli
