Condividi:        

Navigatore

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

Navigatore

Postdi wallace&gromit » 22/03/16 09:19

Ciao, questa è una domanda tosta: vorrei creare un programmino che chiamerei "navigatore", e che dovrebbe avere qualche funzionalità che mancano a explorer.

Per prima cosa spiego come organizzo ora i miei dati:
Per ogni mia attività creo una cartella in un percorso predefinito del server aziendale.
La ramificazione dei dati è piuttosto complessa, visto che varie attività possono essere raggruppate in "sovra-cartelle". Ogni volta che faccio un'operazione nuova (aprire un foglio di calcolo, uno di testo, uno di grafica, inserire immagini, creare pdf da questi fogli, ecc.) devo ripercorrere tutta la trafila di cartelle e sotto-cartelle.
Per abbreviare il tutto, per i mandati ricorrenti, creo un collegamento nel mio PC sotto Desktop/preferiti. In questo modo la ricerca del percorso avviene più rapidamente.

Cosa dovrebbe fare il navigatore?
Mi immagino un programmino che si avvia automaticamente (non deve però aprire un'istanza di un software esistente come excel, perché voglio potere aprire e chiudere excel indipendentemente).
Il navigatore mi chiede il percorso della cartella attiva nel server e crea automaticamente un collegamento nei preferiti. In più registra in una banca dati la data e l'ora di inizio e il nome della cartella aperta.
Quando finisco di lavorarci registra l'ora di chiusura e cancella il collegamento.

In questo modo, da una parte ho sempre l'accesso al percorso attivo e dall'altra registro le mie attività, in modo da potere compilare facilmente il mio rapporto di lavoro giornaliero, sapendo esattamente per quanto tempo ho lavorato su un determinato mandato (al lordo delle pause e del tempo speso su PC-facile :lol: :lol: :lol: ).

Scusate le tante parole, ma spero di essermi spiegato con chiarezza.
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2180
Iscritto il: 16/01/12 14:21

Sponsor
 

Re: Navigatore

Postdi Anthony47 » 23/03/16 14:37

Humm...
Semplificando mi pare che ti servirebbe un automatismo per inserire tra i Favoriti un percorso a tua scelta, con log in un file di data/ora di attivazione; e questo probabilmente si puo' fare, mi immagino tramite una maschera che ti aiuta a scegliere l'operazione da fare (Aggiungere o Togliere un link) e a scegliere il percorso da inserire.
Per quanto riguarda la seconda parte, credo che nessun automatismo capisca quand'e' che tu smetta di lavorarci; quindi dovrebbe toccare a te ritornare sulla maschera dell'automatismo e dichiarare la fine dell'attivita'.
Se e' in linea con quello che ti serve vedremo cosa/come fare.

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

Re: Navigatore

Postdi wallace&gromit » 23/03/16 17:13

Esatto!
sì prevedo che anche la fine del lavoro sia dichiarata manualmente nella maschera.
Eventualmente in due modi: - "nuovo lavoro" che cancella automaticamente il collegamento attivo e crea il nuovo collegamento, tiene nota dell'orario di chiusura e dello stesso orario per l'apertura del nuovo lavoro.
- "fine lavoro", cancella ogni collegamento e segna l'orario di chiusura del lavoro attivo, magari abbinato al messaggio "buon happy hour" :lol: .

Tutto questo sarebbe davvero geniale!
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2180
Iscritto il: 16/01/12 14:21

Re: Navigatore

Postdi Anthony47 » 25/03/16 21:17

Dopo un piccolo intervento a un occhio in questi giorni sono stato poco al pc, e nei prossimi giorni i postumi dell'intervento piu' impegni familiari "di stagione" mi terranno ancora lontano.
Quindi ti metto a disposizione quello che ho preparato, anche se incompleto.

Questo include:
1) il seguente codice da inserire all'interno del tuo Personal.xlsm. Se non hai un Personal, lo puoi creare avviando e fermando subito la registrazione di una nuova macro e facendo la scelta "Memorizza macro in: Cartella macro personale"; ti ritroverai cosi' nel vba un "VbaProject (Personal.xlsm)"
a) Questa va in un Modulo Standard:
Codice: Seleziona tutto
Sub NewXL()
Dim XlApp As Object, DirDocs As String, CkF
'
    Set wshshell = CreateObject("WScript.Shell")
    DirDocs = wshshell.SpecialFolders("MyDocuments")
    Set wshshell = Nothing
CkF = FileStatus(DirDocs & "\4WnG_ADD-FAVORITE.xlsm")
If CkF = 0 Then
    Set XlApp = CreateObject("Excel.Application")
    XlApp.Visible = True
    XlApp.WindowState = xlNormal
    XlApp.Width = 200
    XlApp.Height = 200
    XlApp.Workbooks.Open (DirDocs & "\4WnG_ADD-FAVORITE.xlsm")
End If
End Sub


Function FileStatus(filename As String) As Variant
'Check file status; codice di ritorno:
'0=file libero, 70=file occupato, 53=file non esiste
'76=path non esiste
'altri errori: da indagare
'
    Dim filenum As Integer, errnum As Integer
'
    On Error Resume Next   ' Turn error checking off.
    filenum = FreeFile()   ' Get a free file number.
    ' Attempt to open the file and lock it.
    Open filename For Input Lock Read As #filenum
    Close filenum          ' Close the file.
    errnum = Err           ' Save the error number that occurred.
    On Error GoTo 0        ' Turn error checking back on.
FileStatus = errnum
End Function

b) Questo va in ThisWorkbook:
Codice: Seleziona tutto
Private Sub Workbook_Open()
Call NewXL
End Sub


2) Un file 4WnG_ADD-FAVORITE.xlsm da inserire nella tua cartella Documenti, che puoi scaricare qui:
https://www.dropbox.com/s/6vs22mrl7veo4 ... .xlsm?dl=0

All'apertura di Excel (vedi codice inserito in Personal-ThisWorkbook) verra' creata una nuova instanza di Excel e al suo interno sara' aperto il file 4WnG_ADD-FAVORITE.xlsm.
La seconda instanza di Excel lavorera' in una finestra di piccole dimensioni, che sara' subito coperta da una form che ha questo aspetto:
Immagine
free image upload
-nel TextBox saranno elencati eventuali Link preferiti aggiunti con questa procedura
-il tasto Nuovo Link consente di aggiungere un link; se pero' sono gia' presenti dei link il nuovo link sara' inserito solo previa cancellazione del link precedente.
-il tasto Cancella link elimina il link inserito
-il tasto Refresh Elenco in realta' e' superfluo perche' l'elenco nel TextBox viene aggiornato a ogni cambiamento.
-il tasto Nascondi dovrebbe nascondere la sessione Excel di cui parliamo e restituire il focus all'applicazione Excel principale, ma per ora non funziona e (per quanto detto in preambolo) sicuramente non funzionera' per parecchi giorni e non e' detto che lo realizzeremo (vedi "postambolo", piu' in avanti).
-il tasto Cancella tutti i link a chiudi e' la chiusura del lavoro: salvataggio del file, chiusura della sessione Excel.
I link inseriti in questo modo saranno preceduti dal prefisso "AA_", ed e' questa la chiave usata per individuale i link personali inseriti.
Quando un nuovo link viene inserito, in Foglio1 del file viene creata una riga col nome del Link e l'orario di apertura. Alla sua chiusura verra' aggiunta l'ora di rimozione e il tempo di permanenza (visualizzato come hh:mm). Il file contiene un tot di record che sono stati generati durante il collaudo.

Operativamente al momento tocca a te individuare e attivare la sessione XL principale per fare il tuo lavoro, come pure tornare alla seconda sessione XL per terminare i link ed eventualmente inserirne uno nuovo.

Credo che questo sia l'80% di quanto richiesto; non so se il rimanente 20% saro' in grado di realizzarlo, anche perche' mi viene il dubbio che lo stesso risultato si potrebbe ottenere lavorando con icone posizionate sulla Quick Access Bar, o tramite una scheda personalizzata da aggiungere sulla barra multifunzione, lasciando tutto il codice e la userform all'interno di Personal. Ti chiedo di fare una pensata su queste ultime ipotesi.

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

Re: Navigatore

Postdi wallace&gromit » 26/03/16 11:56

Haha, ci hai messo pure l'happy hour!!!

mi sembra che ti sottovaluti: hai già fatto ben più dell'80% e il tasto "nascondi" funziona egregiamente!
mi va benissimo di dovere azionare manualmente la prossima mossa, che in buona parte dei casi non sarà comunque in excel, quindi non mi serve il focus su excel!

il paio di cosettine che vorrei modificare sono:
- accedere facilmente al log di apertura e chiusura
- già che c'è la possibilità di avere un elenco di link, riuscire a distinguere quello attivo dagli altri (p. es. AA_ e AB_) e registrare la disattivazione più che la chiusura.

Sono cose che posso provare a fare da solo, quindi per il momento ti faccio i miei migliori auguri di pronta guarigione e di felice Pasqua e mille ringraziamenti per tutto quello che fai su questo forum.
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2180
Iscritto il: 16/01/12 14:21

Re: Navigatore

Postdi Anthony47 » 29/03/16 22:53

Ho reso disponibile allo stesso link una versione aggiornata del file 4WnG_ADD-FAVORITE.xlsm
La modifica piu' importante e' che ora puoi aprire dalla sessione principale di Excel il file per accedere al foglio con la history; le altre modifiche sono visibili all'interno del foglio Memo.
Insomma, dopo aver avviato Excel devi usare "Cancella tutti i Link e chiudi" per chiudere la seconda sessione di Excel e liberare il file; poi puoi usare File /Apri dalla sessione principale; in questo modo la userform non si avviera' e potrai consultare /elaborare la tabella della history.
Non ho capito cosa intendi per "riuscire a distinguere quello attivo dagli altri": il file e la sua form consentono di inserire 1 solo "preferito personale" alla volta, che sara' identificato come "AA_Link". Se invece vorresti tenere inserire piu' di 1 "preferito personale" allora bisogna cambiare un paio di approcci.

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

Re: Navigatore

Postdi wallace&gromit » 30/03/16 20:14

ottima la modifica che mi permette di accedere alla history, va benissimo così.
Per quanto riguarda uno o più link hai ragione: io avevo sempre parlato di un solo link, però mi sono "ingolosito" vedendo che hai intitolato il riquardo al plurale e che avevi inserito il tasto "chiudi tutti i link". A quel punto pensavo che si potessero vedere più link contemporaneamente e decretarne uno attivo per il conteggio del tempo. Ma questo non appartiene più al 100% di quello che volevo bensì dal 150% in su! direi che per il momento devo entrare nella fase di sperimentazione prima di vedere i prossimi passi (in questi giorni ero sempre fuori ufficio e non ho ancora potuto provarlo in modo concreto.
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2180
Iscritto il: 16/01/12 14:21

Re: Navigatore

Postdi wallace&gromit » 08/04/16 13:46

Ho testato la macro per qualche settimana e funziona veramente bene, ma come già detto in una risposta precedente, sono diventato goloso!.
Pensavo di riuscire a fare questa implementazione:
prima di cancellare il link esistente, per sostituirlo con uno nuovo, volevo copiarlo in una cartella che ho creato nei miei preferiti e che si chiama "Old". L'intento è di potere accedere rapidamente alla lista dei link usati di recente, in modo da riattivarli.
Ho provato a modificare di conseguenza la parte di macro dove viene cancellato il link esistente. Ovviamente non ci sono riuscito :oops:
Ecco il mio goffo tentativo:

Codice: Seleziona tutto
Sub DelLink2()
Dim myCLnk As String, LnkPAth

Set WSShell = CreateObject("WScript.Shell")
LnkPAth = Environ("UserProfile") & "\Links\"
LnkPAth2 = Environ("UserProfile") & "\Links\Old\"       '<<<<< mia aggiunta

Set WSShell = Nothing

myCLnk = Dir(LnkPAth & "AA_*")
Do
myEsito = False
    If myCLnk <> "" Then
   
    Set myLink2 = WSShell.CreateShortcut(LnkPAth & myCLink)         '<<<<< mia aggiunta
    myLink2.Save                                                    '<<<<< mia aggiunta
       
        Call TrackEnd2(myCLnk)
       
        If myEsito Then Kill LnkPAth & myCLnk

       
    Else
        Exit Do
    End If
    DoEvents
    myCLnk = Dir
Loop
Call LinkList2


End Sub
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2180
Iscritto il: 16/01/12 14:21

Re: Navigatore

Postdi Anthony47 » 08/04/16 14:34

La mia proposta e' di inserire un combobox in cui vengono visualizzati e possono essere scelti i link gia' creati, derivando questo elenco dalla lista dei valori unici della colonna A di History; cosicche' la scelta e' o Scegli da combobox oppure il pulsante Nuovo link.

Questo comporta anche l'aggiunta di una ulteriore colonna su History, contenente il path del link; diciamo colonna H.

Che ne dici?
Avatar utente
Anthony47
Moderatore
 
Post: 19479
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Navigatore

Postdi wallace&gromit » 08/04/16 14:51

Sarebbe fantastico, se si potesse limitare la lista del dropbox a link utilizzati durante l'ultima settimana (nel senso 7 giorni in dietro da oggi), che si aggiorna mano a mano.
Altrimenti col tempo la lista diverrebbe troppo lunga e poco pratica.
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2180
Iscritto il: 16/01/12 14:21

Re: Navigatore

Postdi Anthony47 » 11/04/16 00:33

In allegato la nuova versione del file:
https://www.dropbox.com/s/6vs22mrl7veo4 ... .xlsm?dl=0

Sostituisce in toto il precedente (rinomina il vecchio come _Old-V1 prima di copiare questo nuovo file in Documents).

Nella userform di inserimento dei Preferiti ora c'e' un combobox che consente di scegliere un "Recente", il cui path viene scritto in colonna H del foglio History.
Solo quelli che hanno la colonna H compilata sono considerati "Recenti"; quindi se hai gia' una History (sul file precedente) che vuoi mantenere ti bastera' copiare le colonne A:D e incollarle nel nuovo file, e ovviamente cancellare il contenuto della colonna H del mio file.
All'interno del codice viene posto il vincolo degli ultimi 10 gg e max 30 voci da inserire nel combobox.
Per semplificare la ricerca di un Recente si puo' scrivere qualcosa nel combobox e l'elenco sara' filtrato con le sole voci che includono quella stringa; stringhe che non ammettono nessun risultato vengono cancellate al volo.

Rimane la possibilita' di inserire un Preferito tramite la scelta del path nel filesystem del pc.

Buon testing...
Avatar utente
Anthony47
Moderatore
 
Post: 19479
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Navigatore

Postdi wallace&gromit » 11/04/16 13:57

Fortissimo!
ho fatto ancora alcuni piccoli ritocchi "cosmetici" e mi sembra che vada alla grande.
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2180
Iscritto il: 16/01/12 14:21

Re: Navigatore

Postdi wallace&gromit » 29/08/16 10:26

Ciao Anthony,
dopo qualche mese di utilizzo posso dire che il programmino è davvero comodo.

A malincuore ho rinunciato al messaggio dell'happy hour, perché ho visto che mi succede di chiudere tutto più frequentemente di quanto prevedevo e diventava un po' pesante.

Per contro ho fatto un restyling del menu di base e ho aggiunto una pivot per elaborare lo storico dei dati.

Funziona tutto perfettamente a parte le dimensioni della finestra:
- se parto sempre aprendo una nuova sessione di excel non c'è problema.
- se voglio aprire un file da explorer e navigator è l'unica istanza aperta, allora nasce un problemino, perché la finestrella è ridotta
analogamente a quella del programmino stesso. A quel punto mi tocca allargarla a mano.

La domanda è la seguente: è possibile in qualche modo impedire ad excel di memorizzare le dimensioni ridotte delle finestre di navigator e ad ogni nuova apertura di file (anche da explorer) mostrare una finestra dalle dimensioni grandi, come memorizzato nelle celle K3:N3 del foglio History di Navigator?


Il file navigator.xlsm aggiornato è qui:
http://www.filedropper.com/10navigator

Il codice del personal.xlsb è solo poco modificato ed è qui:
Codice: Seleziona tutto
Sub NewXL()
Dim XlApp As Object, DirDocs As String, CkF
'
    Set wshshell = CreateObject("WScript.Shell")
    DirDocs = wshshell.SpecialFolders("MyDocuments")
    Set wshshell = Nothing
 
   
CkF = FileStatus(DirDocs & "\1.0Navigator.xlsm")
Select Case Cfk
Case 0
    pippo = MsgBox("Vuoi aprire Navigator?", vbYesNo)
        If pippo = vbNo Then
        Exit Sub
        End If
    Set XlApp = CreateObject("Excel.Application")
    XlApp.Visible = True
    XlApp.WindowState = xlNormal
    XlApp.Workbooks.Open (DirDocs & "\1.0Navigator.xlsm")
   
End Select



End Sub


Function FileStatus(filename As String) As Variant
'Check file status; codice di ritorno:
'0=file libero, 70=file occupato, 53=file non esiste
'76=path non esiste
'altri errori: da indagare
'
    Dim filenum As Integer, errnum As Integer
'
    On Error Resume Next   ' Turn error checking off.
    filenum = FreeFile()   ' Get a free file number.
    ' Attempt to open the file and lock it.
    Open filename For Input Lock Read As #filenum
    Close filenum          ' Close the file.
    errnum = Err           ' Save the error number that occurred.
    On Error GoTo 0        ' Turn error checking back on.
FileStatus = errnum
End Function

Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2180
Iscritto il: 16/01/12 14:21

Re: Navigatore

Postdi Anthony47 » 30/08/16 01:59

Si, l' happy hour si puo' eliminare...
Non conosco i criteri con cui Windows apre una finestra di una applicazione, quindi non so come variarne il comportamento.
Nella Private Sub TERMINAcb_Click di 1.0Navigator c'e' un Application.Quit; subito prima inserisci
Codice: Seleziona tutto
    Application.WindowState = xlMaximized
In questo modo la finestra di Excel dovrebbe essere predisposta per essere successivamente aperta a tutto schermo.

Ci sei andato vicino anche con With ActiveWindow / .WindowState = xlNormal /etc etc; solo che invece di ActiveWindow avresti dovuto usare Application.

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

Re: Navigatore

Postdi wallace&gromit » 30/08/16 11:06

purtroppo questo non risolve il mio problema:
dopo la chiusura di navigator ero già a posto.
Io vorrei che, quando navigator è l'unica istanza di excel aperta e io voglio aprire un nuovo file facendo doppio clic su explorer, questo si apre alle dimensioni normali e non quelle ridotte in cui si trova attualmente.
Come detto, se invece di fare doppio clic io lancio il programma di base excel tutto funziona correttamente, pur essendoci aperto navigator.
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2180
Iscritto il: 16/01/12 14:21

Re: Navigatore

Postdi Anthony47 » 31/08/16 00:24

C'e' qualcosa che mi sfugge... Ma il file Navigator non era fatto per essere aperto e chiuso, cioe' non rimanere aperto durante il lavoro normale? Navigator viene aperto in una seconda sessione di Excel, che anche lei dovrebbe chiudersi alla chiusura di Navigator.
Devo rivangare il passato...
Avatar utente
Anthony47
Moderatore
 
Post: 19479
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Navigatore

Postdi wallace&gromit » 31/08/16 07:36

No, non sarebbe pratico doverlo aprire ogni volta.
Rimane attivo in un angolino dello schermo, considera che in media farò una ventina di cambi di link al giorno, spesso riprendendo uno precedentemente chiuso.
Una soluzione possibile sarebbe quella di avere anche la finestra principale di excel sempre aperta, magari minimizzata sulla barra degli strumenti, però succede spesso di chiudere tutto il programma invece del solo file in uso.
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2180
Iscritto il: 16/01/12 14:21

Re: Navigatore

Postdi wallace&gromit » 05/05/17 11:06

Ho ancora un piccolo problema con questa macro: quando il nome selezionato è lungo più di una riga vedo solamente la seconda e il cursore si trova a capo su una terza riga vuota.
Allora, già un po' di tempo fa, avevo inserito due volte il comando sendkeys up, in modo da riportarmi all'inizio del testo e vedere la scritta completa.
Per un bel po' è funzionato senza problemi. Da qualche mese è entrato in conflitto con il tasto NumLock, che si disattiva in modo aleatorio (ho letto in rete che questo è possibile). Ora l'ho disattivato, come si vede nel codice, e sembra provvisoriamente risolto.

La domanda è: c'è la possibilità di riportarsi con il cursore all'inizio di una combobox senza usare il comando sendkeys?
Codice: Seleziona tutto
Private Sub UserForm_Activate()
Debug.Print "Via>>>>"
Me.Label2.Caption = "La form consente di Aggiungere o Eliminare voci " & vbCrLf & _
    "all'interno dei preferiti di Windows"
Call LinkList
myCol1 = RGB(200, 200, 180)
myCol2 = RGB(200, 180, 200)
Me.BackColor = myCol1
Me.Label1.BackColor = myCol1
Me.Label2.BackColor = myCol1
Me.Frame1.BackColor = myCol2
Me.Label4.BackColor = myCol2
Me.Label5.BackColor = myCol2
Me.Label6.BackColor = myCol2
notN = True
Me.ComboBox1.Text = " ": Me.ComboBox1.Text = ""
DoEvents
notN = False
Me.TextBox1.SetFocus
'SendKeys "{up}" 'aggiunto marco forse conflitto con NumLock?
'SendKeys "{up}" 'aggiunto marco
End Sub
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2180
Iscritto il: 16/01/12 14:21

Re: Navigatore

Postdi Anthony47 » 05/05/17 12:26

Sono in difficolta' a riprodurre il fenomeno di cui parli, mi alleghi uno screenshot per capire meglio?
Avatar utente
Anthony47
Moderatore
 
Post: 19479
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Navigatore

Postdi wallace&gromit » 05/05/17 15:16

Forse hai sotto mano una versione più vecchia del file, che avevi preparato tu. Poi io ho fatto delle modifiche (penso non sostanziali)

Ecco quello che vedo:
Immaginedes photoscertificity.com

Quello che dovrei vedere
ImmagineHébergeur d'imagescertificity.com
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2180
Iscritto il: 16/01/12 14:21

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "Navigatore":

Navigatore Waze su Android
Autore: nikita75
Forum: Discussioni
Risposte: 2
aggiornamento navigatore
Autore: micro78
Forum: Forum off-topic
Risposte: 0

Chi c’è in linea

Visitano il forum: Anthony47, Raffaele53, raimea e 14 ospiti

cron