Condividi:        

Visualizzare dati specific da file esterno in userform

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

Visualizzare dati specific da file esterno in userform

Postdi BG66 » 22/07/19 13:19

Ciao a tutti.
In pratica i tanti files di excel che girano in azienda si concludono regolarmente con non mi ricordo come si usa... :evil:
Stavo pensando di creare un file master esempio allegato:Archivio centrale Info.xlsx ->https://www.dropbox.com/s/11tx24v29xmq5q5/Archivio%20centrale%20Info.xlsx?dl=0 ) contenente le spiegazioni per ognuno di loro ( la discriminante è il nome del foglio di lavoro).
Poi per ogni file (esempio allegato:Gestione Corsi.xlsm -> https://www.dropbox.com/s/2p2p2w32qgc11yt/Gestione%20Corsi.xlsm?dl=0) creare una immagine che apra una userform che pesca le informazioni da "Archivio centrale Info.xlsx".

E' una follia da cattiva digestione post-pranzo o ha un senso?

Grazie in anticipo
Gene
BG66
Excel2010
Avatar utente
BG66
Utente Senior
 
Post: 320
Iscritto il: 20/08/16 07:44

Sponsor
 

Re: Visualizzare dati specific da file esterno in userform

Postdi Anthony47 » 23/07/19 01:29

Quello che devi farti e' l'idea di come potrebbe essere, come renderlo disponibile da oggi in avanti, come eventualmente aggiornare i file gia' emessi per portarli alle stesse prestazioni.
Io per semplicita' vorrei ignorare l'uso di una userform, e punterei ad aprire un file pdf contenente le istruzioni.
Supponiamo che i pc degli utenti contengano un file Personal.xlsb; in un modulo standard del vba di questo file inseriamo questo codice:
Codice: Seleziona tutto
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
    (ByVal hwnd As Long, ByVal lpOperation As String, _
    ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, _
    ByVal nShowCmd As Long) As Long

Sub OpenHelp()
Dim hDir As String, mySplit
'
hDir = "C:\PROVA\"          '<<< La directory che conterra' i file di help, con \ finale
mySplit = Split(ActiveWorkbook.Name, ".", , vbTextCompare)

myhf = hDir & Replace(ActiveWorkbook.Name, "." & mySplit(UBound(mySplit)), "", , , vbTextCompare) & "-" & ActiveSheet.Name & ".pdf"
On Error GoTo BBeep
  lngx = ShellExecute(vbNull, "Open", myhf, "", "", vbNormalFocus)
Exit Sub
BBeep:
Beep
End Sub
L'istruzione Declare deve trovarsi rigorosamente in testa al modulo.

La Sub OpenHelp si occupera', quando lanciata, di aprire tramite l'applicazione di default un file pdf che si trova nella directory dichiarata in hDir e avente nome file pari a ActiveWorkbookName-ActiveSheetName.pdf
Il mio codice non controlla se nel nome foglio ci siano caratteri non compatibili con la struttura del filesystem; se procedi in questo modo devi quindi irrobustirlo.

Volendo facilitare il lancio di questa macro potresti valutare la possibilita' di personalizzare la Barra di Accesso Rapida (BAR) dei pc degli utenti, per inserire una icona che avvii automaticamente l'esecuzione della macro Personal.xlsb!OpenHelp

La personalizzazione della BAR e' descritta qui: viewtopic.php?f=26&t=103893&p=647679#p647679

Con la stessa procedura e' possibile creare un file NomeFile.ExportedUI che contiene la configurazione del "ribbon" e della BAR; se quel file viene "importato" su un altro pc viene automaticamente replicata la personalizzazione.

Spero ci sia qualche spunto utile

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

Re: Visualizzare dati specific da file esterno in userform

Postdi BG66 » 23/07/19 06:17

Ciao Anthony,
il ns. IT Manager neanche sotto tortura mi farebbe mettere mani ai vari PC aziendali soprattutto quelli in Stabilimento.
Quindi ho iniziato a ragionare su un file excel di appoggio (al momento i miei files NON sono visti come un pericolo :lol: !!).

Quello che devi farti e' l'idea di come potrebbe essere, come renderlo disponibile da oggi in avanti, come eventualmente aggiornare i file gia' emessi per portarli alle stesse prestazioni.

Tenuto conto che il 99% dei files è su partizioni specifiche per reparto ( es. la lettera I è assegnata al reparto 1, la G al reparto 2, etc), pensavo di semplificarmi il tutto con il ragionamento enunciato all'apertura di questo thread.

Io per semplicita' vorrei ignorare l'uso di una userform, e punterei ad aprire un file pdf contenente le istruzioni.

L'idea del pdf potrebbe essere efficace ma dovrebbe comunque "girare da excel" per quanto espresso al punto IT Manager !!
Ma il fatto che in Rete, non vi è nulla su come creare una "userform dinamica" rispetto al puntamento su files esterni, mi pungolava abbastanza. E, come tu ben sai, ho una predisposizione naturale ad infilarsi in cose che non so fare ... :oops: ....

Quindi se tu dici che è fattibile fare in modo che una userform, indipendentemente in quale file è contenuta e sempre uguale a se stessa, recuperi dei dati specifici da un file esterno, io continuerei a lavorare su questa idea.

Attendo tue.
Gene
BG66
Excel2010
Avatar utente
BG66
Utente Senior
 
Post: 320
Iscritto il: 20/08/16 07:44

Re: Visualizzare dati specific da file esterno in userform

Postdi Anthony47 » 23/07/19 16:01

Mi sembra di capire che hai sotto il tuo controllo i file che vengono usati sui singoli Pc, cioe' basta che sostituisci sul server la versione del file e questa diventa eseguibile sui vari pc. Se e' cosi' allora la distribuzione agli utenti e' gia' risolta.

Ora qualche considerazione in ordine sparso:
-La personalizzazione della BAR e' solo un modo per semplificare l'avvio di una macro, indipendentemente da cosa fa la macro.

-Una userform puo' benissimo attingere dati da un file al momento non aperto; deve pero' prima aprirlo, ma col vba si fa senza problemi.

-Pero' se hai un workbook che vuoi usare come Help allora secondo me e' piu' semplice che la richiesta di Help (nel mio suggerimento, la macro Sub OpenHelp eventualmente lanciata tramite la personalizzazione della BAR) ti apra direttamente in sola lettura il workbook di help e qui fai partire (con Workbook_Open) una userform.

-Ma e' ancora piu' semplice che l'help sia su un worksheet di quel file (quale e' il vantaggio di una userform?), quindi la workbook_open deve solo attivare il foglio giusto in funzione del file /foglio chiamante.

-Ma e' ancora piu' semplice che la richiesta di help apra un file pdf come avevo proposto (ed e' anche piu' semplice commutare tra il pdf di help e il foglio di lavoro).

-Infine lo sai che puoi associare una personalizzazione a un workbook? Cioe' quando rilasci un file puoi associargli una specifica interfaccia utente (vedi punto C della procedura di personalizzazione)

La mia idea e' quindi di mettere in linea una nuova versione di file contenente la macro che avvia la richiesta di help, magari contenente una BAR personalizzata per facilitare il suo lancio; che la macro apra un workbook di help (con userform o solo con worksheets) o apra un file pdf lo devi scegliere tu, magari insieme ai tuoi utenti.

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

Re: Visualizzare dati specifici da file esterno in userform

Postdi BG66 » 23/07/19 22:29

Ciao Anthony,
spero di aver capito appieno il tuo post precedente e quindi che le risposte sembrino o siano logiche.
Punti salienti:
1) Come detto i miei files excel (e le relative macro) non sono visti come una minaccia.
2) Le dotazioni hardware in azienda differiscono tantissimo tra i vari uffici e tra i diversi reparti produttivi stessi (ad esempio, per policy, in alcuni settori,il software si limita a sistema operativo e Microsoft Excel escludendo anche il semplice Adobe Reader).
3) L'uso della userform era solo per "beltà" estetica quindi nessun problema a rinunciarci per qualcosa di più funzionale.
4) Non conoscevo la possibilità di una BAR personalizzata o un'associazione personalizzata ad un workbook. E questo mi intriga ma non mi è chiaro se questa è legata imprescidibilmente alla presenza/modifica del file Personal.xlsb. Se cosi fosse, non potrei farlo senza prima passare per le armi il ns. IT Manager.
5) Nel mio ragionamento di base, la creazione di un file help "centralizzato" mi dovrebbe permettere una migliore gestione di questo aspetto che fino ad oggi ho trascurato.
Attendo tue.

Grazie mille.
Gene
BG66
Excel2010
Avatar utente
BG66
Utente Senior
 
Post: 320
Iscritto il: 20/08/16 07:44

Re: Visualizzare dati specific da file esterno in userform

Postdi Anthony47 » 24/07/19 01:14

Beh, se non hai un lettore per pdf devi necessariamente fermarti ad Excel.
Non credo che in una userform puoi far stare tante informazioni, piu' magari qualche figurina esplicativa; per questo non ne vedo l'utilita' (fermandomi quindi all'uso del foglio di lavoro con le istruzioni del caso; magari con una userform aperta in un angolo in modalita' vbModeless con i comandi per spostarsi dal foglio help al vero foglio di lavoro e per chiudere la pagina di help)

La personalizzazione della BAR + Ribbon viaggiano NEL workbook, cioe' non richiede la presenza di Personal.xxx.
In pratica dovresti creare una nuova versione del workbook, integrandoci la macro che gestisce l'help (apertura del file di help; selezione del foglio con le istruzioni). Poi esegui una personalizzazione della BAR specificando che la personalizzazione va applicata non a "Tutti i documenti (impostazione predefinita)" ma al "File Corrente".
Infine metti in linea sul server questa nuova versione e istruisci gli utenti.

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

Re: Visualizzare dati specific da file esterno in userform

Postdi BG66 » 24/07/19 05:16

Ciao.
nei prossimi giorni preparo qualcosa da sottoporti.

A presto.
BG66
Excel2010
Avatar utente
BG66
Utente Senior
 
Post: 320
Iscritto il: 20/08/16 07:44

Re: Visualizzare dati specific da file esterno in userform

Postdi Zer0Kelvin » 24/07/19 16:58

Ciao a tutti.
Mi intrufolo anch'io nella discussione.
L'idea della userform è di per sè fattibile, ma mi sembra solo un modo per complicarsi (abbastanza) la vita.
Dal momento che un file excel verrà comunque aperto, la soluzione più semplice sarebbe approntare un file con tanti fogli quanti sono i files che necessitano di help, col nome che possa essere ricavato dal file in uso.
La macro si occuperebbe, molto semplicemente, di aprire il file di help in sola lettura, lasciando visibile il solo foglio interessato.
[Win7,Office2010]
Condividere la conoscenza aumenta la ricchezza di tutti(Z0°K)
Dai ad un uomo un pesce e lo avrai sfamato per un giorno;insegnagli a pescare e lo avrai sfamato per sempre(Confucio)
Il sonno della ragione genera mostri(Francisco Goya)
Avatar utente
Zer0Kelvin
Utente Senior
 
Post: 388
Iscritto il: 08/04/12 11:23

Re: Visualizzare dati specific da file esterno in userform

Postdi Anthony47 » 25/07/19 00:05

Z0K ha scritto:Mi intrufolo anch'io nella discussione
Siamo un forum aperto a tutti, non una setta segreta riservata solo agli affratellati; quindi ben venga il tuo contributo.

Ne approfitto per condividere un approccio che ho qualche volta usato:
https://www.dropbox.com/s/apgmbkx9pmtbp ... .xlsm?dl=0

Su Foglio1 sono elencate una serie di operazioni, selezionabili tramite il filtro automatico; accanto ci sono le istruzioni scritte, eventuali screenshot e illustrazioni possono essere inseriti sulle colonne adiacenti.

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

Re: Visualizzare dati specific da file esterno in userform

Postdi BG66 » 25/07/19 05:34

Ciao a tutti,
siccome due indizi fanno una prova... ho deciso di abbandonare l'idea della userform ;)
e sono arrivato a questo:
Codice: Seleziona tutto
Sub ApriFileInLettura()
    Dim X As String
    Dim XX As String
    X = "C:\" & Range("B1").Value & "\" & Range("B2").Value & ".xlsx"
    XX = Range("B3").Value
    Workbooks.Open Filename:=X, ReadOnly:=True
    Sheets(XX).Activate

End Sub

Funziona ma oltre a mostrarmi il foglio corretto vi sono presenti anche gli altri fogli.
Come nasconderli durante la visualizzazione specifica?
https://www.dropbox.com/s/2p2p2w32qgc11yt/Gestione%20Corsi.xlsm?dl=0

PS Spero che la domanda non sia già presente e risolta negli spunti di Anthony che non ho ancora approfondito :oops:
Gene
BG66
Excel2010
Avatar utente
BG66
Utente Senior
 
Post: 320
Iscritto il: 20/08/16 07:44

Re: Visualizzare dati specific da file esterno in userform

Postdi Anthony47 » 26/07/19 00:02

Per lasciare visibile solo un foglio, inserisci nel file di help un "foglio 0" che chiami Help (mettici dentro qualche informazione pubblicitaria sullo sviluppatore); poi metti nel suo modulo ThisWorkbook questo codice:
Codice: Seleziona tutto
Private Sub Workbook_Open()
Sheets("Help").Visible = True
Sheets("Help").Range("A1").ClearContents
For i = 1 To ThisWorkbook.Worksheets.Count
    If Sheets(i).Name <> "Help" Then
        Sheets(i).Visible = False
    End If
Next i
End Sub
In questo modo all'apertura viene lasciato aperto solo il foglio Help, e la Sub ApriFileInLettura si deve occupare di rendere il foglio XX (quello che che contiene l'help appropriato) prima visibile e poi di attivarlo.

Vedo che hai intenzione di usare B1, B2 e B3 del foglio chiamante per percorso, nome file e nome foglio di help... Il mio suggerimento e' che definisci uno standard che potrebbe semplificarti la vita.
Es che il nome del file di help sia "HELP_NomeDelFileDaAiutare.xlsm", e che il nome del foglio sia "HELP_NomeDelFoglioDaAiutare"
Questo dovrebbe limitare l'impatto sui fogli di lavoro gia' distribuiti.

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

Re: Visualizzare dati specific da file esterno in userform

Postdi BG66 » 28/07/19 08:02

Ciao Anthony,
ho effettuato le integrazioni consigliatemi (Grazie).

In merito a questo punto ho un dubbio:
Anthony47 ha scritto:Vedo che hai intenzione di usare B1, B2 e B3 del foglio chiamante per percorso, nome file e nome foglio di help... Il mio suggerimento e' che definisci uno standard che potrebbe semplificarti la vita.
Es che il nome del file di help sia "HELP_NomeDelFileDaAiutare.xlsm", e che il nome del foglio sia "HELP_NomeDelFoglioDaAiutare"
Questo dovrebbe limitare l'impatto sui fogli di lavoro gia' distribuiti.


Il file master excel HELP (HELP_Info.xlsm)
contiene vari fogli di lavoro (HELP_NomeDelFoglioDaAiutare1, HELP_NomeDelFoglioDaAiutare2, etc)
a cui puntano i singoli file (NomeDelFoglioDaAiutare1.xlsm, NomeDelFoglioDaAiutare2.xlsm, etc) per aprire il corretto foglio d'aiuto e quindi non capisco come fare per usare il tuo suggerimento?

Gene
BG66
Excel2010
Avatar utente
BG66
Utente Senior
 
Post: 320
Iscritto il: 20/08/16 07:44

Re: Visualizzare dati specific da file esterno in userform

Postdi Anthony47 » 28/07/19 23:19

Io dico di fare tanti file "help" quanti sono i file da supportare, e ognuno contenente un foglio per ogni foglio di quel file da supportare. Ogni file di help si chiama (mettiamo) HELP_FileDaSupportare.xlsm; ogni foglio si chiama HELP_FoglioDaSupportare.
Se poi salvi questi file di help sulla stessa directory del file da supportare (sono file caricati su un drive di rete, vero? O non vero?) allora la macro potra' aprire il file e attivare il foglio con
Codice: Seleziona tutto
cWSh = ActiveSheet.Name
CWb = ActiveWorkbook.Name
On Error Resume Next
Workbooks.Open ActiveWorkbook.Path & "\" & "HELP_" & CWb
Workbooks("HELP_" & CWb).Activate
Sheets("HELP_" & cWSh).Visible = True
Sheets("HELP_" & cWSh).Activate
On Error GoTo 0

OnError consente di gestire casi in cui il file di help e' gia' aperto, o di file non trovato, o di foglio non presente; ovviamente si potrebbe fare una gestione piu' sofisticata, che ad esempio segnala se il file o il foglio non e' stato trovato.

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

Re: Visualizzare dati specific da file esterno in userform

Postdi BG66 » 31/07/19 20:30

[RISOLTO]
Ciao Anthony,
grazie per l'approfondimento.
Ora mi tutto più chiaro.
PS Confermo che i files sono su drive di rete.

A presto
Gene
BG66
Excel2010
Avatar utente
BG66
Utente Senior
 
Post: 320
Iscritto il: 20/08/16 07:44


Torna a Applicazioni Office Windows


Topic correlati a "Visualizzare dati specific da file esterno in userform":


Chi c’è in linea

Visitano il forum: Nessuno e 89 ospiti