Condividi:        

Cella con percorso file esterno

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Cella con percorso file esterno

Postdi BG66 » 15/05/17 18:05

Ciao a tutti,
per uno sviluppo ulteriore, riprendo un pezzo di un mio vecchio thread "Da formula a VBA" http://www.pc-facile.com/forum/viewtopic.php?f=26&t=108268&p=635665#p635665.

Partendo da:
Anthony47 ha scritto:In attesa di una soluzione piu' smart, torno al primo messaggio e propongo questa soluzione:
.........
B) .............
Ho diviso in due parti il relativo codice:
1) Una Sub Worksheet_Activate (da mettere ovviamente nel "modulo di classe" del foglio Produzione):
Codice: Seleziona tutto
Private Sub Worksheet_Activate()
Call AggPROD
End Sub

2) La macro che esegue realmente l'aggiornamento, da inserire in un Modulo Standard del vba:
Codice: Seleziona tutto
Sub AggPROD()
Dim LastB As Long
'
With ThisWorkbook.Sheets("PRODUZIONE")    '<<<
    LastB = .Cells(.Rows.Count, "B").End(xlUp).Row
    'Copia formule:
    .Range("M2:P2").Copy .Range(.Range("M3"), .Range("M" & LastB))
    'Copia valori:
    .Range(.Range("M3"), .Range("P" & LastB)).Copy
    .Range("M3").PasteSpecial xlPasteValues
End With
Application.CutCopyMode = False
Selection.Range("A1").Select
End Sub


Il motivo di questa complicazione e' che credo che avrai bisogno di lanciare la Sub AggPROD non solo all'attivazione del foglio Produzione ma anche in altre circostanze che non so individuare; il codice della Sub AggPROD potrebbe anche essere eseguito anche dall'interno di altri workbooks, sostituendo, in una "Sub AltraAggPROD" la riga
With ThisWorkbook.Sheets("PRODUZIONE") con
Codice: Seleziona tutto
With Workbooks("NomeFile.xls").Sheets("PRODUZIONE")


Spero che quanto proposto sia di qualche utilita'

Ciao

Vorrei un aiuto sull'ultima parte dell'indicazione di Anthony.
In pratica avrei effettivamente la necessità di lanciare la macro da un file esterno e soprattutto vorrei che il riferimento del percorso fosse prelevato da una cella specifica.

Ipotizziamo che nel foglio "Tg" del file "master.xlsm" oltre al pulsante della macro "Sub AggPROD() ci sia anche in P3 il percorso: "U:\Progetti Excel\scarti\T09_MAGGIO_2017.xls
come cambia:
Codice: Seleziona tutto
With Workbooks("T09_MAGGIO_2017.xls").Sheets("PRODUZIONE")


Spero di essere stato chiaro a sufficienza per aiutarmi.

Grazie
PS Aggiungo che il foglio "PRODUZIONE" è nascosto con pw e il file che lo contiene T09_MAGGIO_2017.xls è aperto x 24 ore al giorno per 5 gg.lavorativi.
BG66
Excel2010
Avatar utente
BG66
Utente Senior
 
Post: 320
Iscritto il: 20/08/16 07:44

Sponsor
 

Re: Cella con percorso file esterno

Postdi Anthony47 » 16/05/17 01:11

Spero di essere stato chiaro a sufficienza per aiutarmi
Eh eh, con un corto giro di parole di dico che non ho capito...

Ipotizziamo che nel foglio "Tg" del file "master.xlsm" oltre al pulsante della macro "Sub AggPROD() ci sia anche in P3 il percorso: "U:\Progetti Excel\scarti\T09_MAGGIO_2017.xls
come cambia:
Codice: Seleziona tutto
    With Workbooks("T09_MAGGIO_2017.xls").Sheets("PRODUZIONE")


Se devo leggere "Come cambia l'istruzione?" allora dico che l'istruzione non cambia, perche' il Workbook si riconosce dal suo nome (T09_MAGGIO_2017.xls) e non dal suo percorso sul disco.

Se Sheets("PRODUZIONE") e' nascosto non dovrebbero esserci problemi; se invece e' protetto allora Si; dovrai quindi sproteggerlo prima di avviare le copie (delle formule prima, dei valori poi)

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Cella con percorso file esterno

Postdi BG66 » 16/05/17 05:09

Ciao Anthony,
ci riprovo :undecided:
Vorrei che sia il percorso che il nome del file sorgente non fossero predefiniti nell'istruzione ma venissero "captati" andando a leggere quanto presente in P3 del file master.

Anthony47 ha scritto:

Se Sheets("PRODUZIONE") e' nascosto non dovrebbero esserci problemi; se invece e' protetto allora Si; dovrai quindi sproteggerlo prima di avviare le copie (delle formule prima, dei valori poi)
Ciao

Su questo pezzo penso di riuscire a proporre qualcosa.
BG66
Excel2010
Avatar utente
BG66
Utente Senior
 
Post: 320
Iscritto il: 20/08/16 07:44

Re: Cella con percorso file esterno

Postdi BG66 » 16/05/17 10:38

Ciao,
con la gestione pw, la macro è diventata:
Codice: Seleziona tutto
Sub AggPROD()
    Dim LastB As Long
    '
    Application.ScreenUpdating = False
    With ThisWorkbook.Sheets("PRODUZIONE")    '<<<
    ActiveWorkbook.Unprotect Password:=pippo
    Sheets("PRODUZIONE").Unprotect Password:=pippo
        LastB = .Cells(.Rows.Count, "B").End(xlUp).Row
        'Copia formule:
        .Range("M2:P2").Copy .Range(.Range("M3"), .Range("M" & LastB))
        'Copia valori:
        .Range(.Range("M3"), .Range("P" & LastB)).Copy
        .Range("M3").PasteSpecial xlPasteValues
    End With
    MsgBox "Operazione effettuata"
    ActiveWorkbook.Protect Password:=pippo
    Sheets("PRODUZIONE").Protect Password:=pippo
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
   
    'Selection.Range("A1").Select
    End Sub


Attendo solamente di capire se è fattibile a meno l'ultimo pezzo prima di [RISOLTO]:
BG66 ha scritto:Vorrei che sia il percorso che il nome del file sorgente non fossero predefiniti nell'istruzione ma venissero "captati" andando a leggere quanto presente in P3 del file master.


Grazie come al solito.
BG66
Excel2010
Avatar utente
BG66
Utente Senior
 
Post: 320
Iscritto il: 20/08/16 07:44

Re: Cella con percorso file esterno

Postdi Anthony47 » 16/05/17 20:45

Ho capito che ti interessa fare in modo che nella istruzione With Workbooks("T09_MAGGIO_2017.xls").Sheets("PRODUZIONE") il nome del workbook venga prelevato dal foglio TG cella P3, che contiene "Percorso e nome file"

Nell'ipotesi che il file master.xlsm sia quello in cui si trova la macro stessa allora sostituirai la riga suddetta con
Codice: Seleziona tutto
PnF = Split(" " & ThisWorkbook.Sheets("Tg").Range("P3").Value, "\", , vbTextCompare)
With Workbooks(PnF(UBound(PnF))).Sheets("PRODUZIONE")


Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Cella con percorso file esterno":


Chi c’è in linea

Visitano il forum: Nessuno e 27 ospiti