Moderatori: Anthony47, Flash30005
Sub Maxi1()
' 1a - Seleziona file
Scegli:
FullNome = Application.GetOpenFilename(Filefilter:="Excel Files (*.xls), *.xls,Tutti (*.*),*.*", Title:="Seleziona file")
' 1b - Segnala file scelto e Azione
Mess = ">>Selezionato " & FullNome & vbCrLf & ">>Foglio di destinazione: " & AWN & vbCrLf & ">> SI per Confermare; NO per Cambiare; CANCEL per abortire"
scelta = MsgBox(Prompt:=Mess, Buttons:=vbYesNoCancel)
If scelta = 2 Then GoTo Esci 'Cancel
If scelta = 7 Then GoTo Scegli 'NO = Riseleziona
'2 - quale e' il link attuale
MatrLinks = ActiveWorkbook.LinkSources(xlExcelLinks)
If IsEmpty(MatrLinks) Then GoTo Esci
MsgBox (MatrLinks(1))
' 2b - Segnala Link corrente e nuovo e scelta Azione
Mess = "Vuoi sostituire >> " & MatrLinks(1) & vbCrLf & " Con >> " & Range("D1").Value & vbCrLf & ">> SI per Confermare; NO per Cambiare; CANCEL per abortire"
scelta = MsgBox(Prompt:=Mess, Buttons:=vbYesNoCancel)
If scelta = 2 Then GoTo Esci 'Cancel
If scelta = 7 Then GoTo Scegli 'NO = Riseleziona
'3 - Cambia il link
ActiveWorkbook.ChangeLink Name:=MatrLinks(1), NewName:= _
FullNome, Type:= _
xlExcelLinks
Esci:
End Sub
Sub Maxi1()
' 1a - Seleziona file
Scegli:
FullNome = Application.GetOpenFilename(Filefilter:="Excel Files (*.xls), *.xls,Tutti (*.*),*.*", Title:="Seleziona file")
' 1b - Segnala file scelto e Azione
Mess = ">>Selezionato " & FullNome & vbCrLf & ">> SI per Confermare; NO per Cambiare; CANCEL per abortire"
scelta = MsgBox(Prompt:=Mess, Buttons:=vbYesNoCancel)
If scelta = 2 Then GoTo Esci 'Cancel
If scelta = 7 Then GoTo Scegli 'NO = Riseleziona
'2 - quale e' il link attuale
MatrLinks = ActiveWorkbook.LinkSources(xlExcelLinks)
If IsEmpty(MatrLinks) Then GoTo Esci
'MsgBox (MatrLinks(1))
' 2b - Segnala Link corrente e nuovo e scelta Azione
Mess = "Vuoi sostituire >> " & MatrLinks(1) & vbCrLf & " Con >> " & FullNome & vbCrLf & ">> SI per Confermare; NO per Cambiare; CANCEL per abortire"
scelta = MsgBox(Prompt:=Mess, Buttons:=vbYesNoCancel)
If scelta = 2 Then GoTo Esci 'Cancel
If scelta = 7 Then GoTo Scegli 'NO = Riseleziona
'3 - Cambia il link
ActiveWorkbook.ChangeLink Name:=MatrLinks(1), NewName:= _
FullNome, Type:= _
xlExcelLinks
Esci:
End Sub
Era già tutto previsto?
Fantastico! Ma tanto x capire, questa “Selezione foglio” è gestita dalla Sezione ‘3 della tua Macro oppure è una caratteristica gestita direttamente ed “automaticamente” da Excel?Anthony47 ha scritto:Nel caso che il nuovo file abbia solo un foglio, o abbia piu’ fogli di cui uno ha lo stesso nome di quello inserito nel link attuale, allora l’ operazione di relink si completa subito; se invece ci sono piu’ fogli e manca quello del link attuale, l’ operazione si completa solo dopo aver scelto, nella finestra che si apre “Selezione foglio”, quale foglio del nuovo file si vuole utilizzare.
maxi ha scritto:Dovrei inserire un “filtro” nella Macro che la faccia funzionare solo se la DATA (es. 12/10/06) contenuta nella cella A2 (la posizione è sempre la stessa) di uno qualsiasi dei fogli delle cartelle di lavoro che uso come base-dati (ad es. “QUERY_test_data.xls”) è inferiore rispetto ad alla DATA (es. 31/12/06) presente nella cella A1 del foglio di lavoro ‘Config’ appartenente alla cartella di lavoro che contiene tutte le formule e all’interno della quale viene eseguita la Macro (nel caso specifico sarebbe il foglio ‘Config’ della cartella di lavoro “Prova_Link_esterni.xls”.
Siccome la Macro dovrò associarla ad un pulsante che creerò nel foglio ‘Config’della cartelle di lavoro “Prova_Link_esterni.xls”, se fosse possibile sarebbe utile che al click di tale pulsante, nel caso la data contenuta nella cella A2 sopra menzionata fosse maggiore (es. 01/01/07 > 31/12/06) di quella contenuta nella cella A1 sopra menzionata, la macro NON venga eseguita, nel senso che la parte delle formule relativa al riferimento esterno NON dovrà aggiornarsi (non servono avvisi di nessun tipo, basta che la macro non funzioni).
E’ fattibile?
ActiveSheet.Protect Password:="PasswordSegreta"
ActiveSheet.Unprotect Password:="PasswordSegreta"
Anthony47 ha scritto:Per quanto riguarda le verifiche, potresti farle in un’ altra macro, quella attivata dal pulsante, e solo se la verifica e’ Ok esegui l’ istruzione Call Maxi1 che esegue la macro che ti ho passato.
Torna a Applicazioni Office Windows
Inserire add.in nella barra di avvio veloce in excel 2003 Autore: Ricky0185 |
Forum: Applicazioni Office Windows Risposte: 4 |
Excel: problema con date se devo unirle a testi Autore: valle1975 |
Forum: Applicazioni Office Windows Risposte: 7 |
Visitano il forum: Nessuno e 22 ospiti