La consultazione del forum è libera per tutti.
Per poter porre un quesito è invece necessario essere un utente registrato (clicca qui se non lo sei).
Tutti gli utenti che richiedono un supporto, come da REGOLAMENTO, sono caldamente invitati ad allegare un file di esempio con l'indicazione di quello che si desidera ottenere.
Buongiorno a tutti,
rieccomi ancora qui a cercare il Vostro cortese aiuto per questi annosi giorni lavorativi, tanto facili in excel, ma altrettanto ostici da tradurre in vba: questa volta pero' il problema e' diverso e vediamo se riesco a farmi capire.
La macro che sto per finire, ad un certo punto mi apre e mi tiene aperti due file, che chiameremo per semplicita' "file_appoggio" e "file_lavorazione".
In quel punto, e' attivo il "file_appoggio" e mi devo spostare sul "file_lavorazione" (da appoggio copio in lavorazione) che presenta un nome file con la prima parte fissa e la seconda parte con la data di due giorni lavorativi antecedenti ad oggi nel formato gg-mm-aaaa.
Durante la settimana, il seguente codice mi funziona benissimo senza alcun problema:
Dim Mydate As String Mydate = Format$(Now() - 2, "dd-mm-yyyy") Workbooks("FILE_LAVORAZIONE_" & Mydate & ".xls").Activate
Invece quando cerco di dirgli che al posto di "oggi-2" deve cercare "oggi-2" giorni lavorativi (per intenderci, quando lancio la macro il lunedi' mattina, il file_lavorazione ha la data del giovedi') si inchioda riconoscendomi la formula ma non più il file da attivare:
Dim Mydate As String Mydate = Format$(FormulaR1C1 = "=WorkDay(Now() -2)", "dd-mm-yyyy") Workbooks("FILE_LAVORAZIONE_" & Mydate & ".xls").Activate
...alla peggio avevo anche previsto di dirgli di attivare il "file_lavorazione_*" ma anche qui non riesco a fargli riconoscere il carattere jolly...
Grazie in anticipo per qualsiasi suggerimento possa essermi d'aiuto...anche magari con un altro metodo per spostarmi tra due file attivi senza per forza includerne il nome nella stringa di comando "workbooks" oppure "windows" (che uso piu' avanti)...
ciao
io con il vba ci bisticcio
ma perchè non crei la data su una cella e la usi come riferimento.
mi sembra più semplice
Ciao
Perchè tutto quel giro? Prova cosi:
MyDate = Format(WorksheetFunction.WorkDay(Now(), -2), "dd-mm-yyyy")
Ciao
Mario
@gianfranco55 ...si'...ci avevo pensato...ma il problema e' che non posso modificare il file_lavorazione perchè deriva da un'altra macro e per policy non posso toccarlo...dovrei metterla sul file_appoggio, dove invero già c'e', ma dovrei poi fargli fare tutto un giro pindarico nel nome file...
@marius44 ...GRAZIE!!! ...funziona alla grande! ...sapevo che mi stavo perdendo in un bicchier d'acqua...continuavo a girare i comandi senza riuscire a trovare la sintassi giusta...ora e' perfetta!