Condividi:        

Definire tempi di inizio e fine test

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

Definire tempi di inizio e fine test

Postdi BG66 » 14/01/21 12:22

Ciao a tutti.
Mi sono impelagato nell'ennesimo progetto più grande di me (Anthony dixit :lol: )!!
In pratica vorrei rendere automatico un modulo attualmente cartaceo.
Il discente prima di iniziare l'unità didattica (es. UD_SP00) schiaccia il pulsante start e fissa la data nel campo corrispondente della colonna C e l'orario di inizio nella colonna D
Terminato il corso schiaccia STOP e compila l'ultimo campo quello della colonna E.

Dal punto di vista "utilizzatore" è a vostro avviso meglio avere i tasti START e STOP per ogni riga delle unità didattiche o avete una soluzione più razionale?
https://www.dropbox.com/scl/fi/jid1hiohjuzj2aqemru9h/TempiAutomatici-Forum.xlsm?dl=0&rlkey=74x8i1wc8ikwvnuetdxx61d2f

Grazie per l'aiuto.
Gene
BG66
Excel2010
Avatar utente
BG66
Utente Senior
 
Post: 323
Iscritto il: 20/08/16 07:44

Sponsor
 

Re: Definire tempi di inizio e fine test

Postdi Anthony47 » 14/01/21 15:11

Mah, io direi che e' piu' semplice creare e gestire un foglio con pochi controlli, piuttosto che uno con tanti.
Ad esempio non mi dispiacerebbe l'ipotesi che l'utente seleziona il corso, e il pulsante Start viene posizionato su quella riga; il pulsante Stop potrebbe seguire la stessa sorte.

Oppure, invece dei pulsanti, usi ad esempio il doppioclick sulla colonna C /E; magari aiutandoti col "Messaggio di Input" della convalida per suggerire all'utente cosa fare.

Mi pare che hai chiesto solo come la pensiamo, quindi posso fermarmi qui.

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

Re: Definire tempi di inizio e fine test

Postdi BG66 » 14/01/21 15:41

Ciao Anthony
...Infatti dopo il suggerimento avrei chiesto se potevi darmi una mano... ;) .
Il corso è diviso in singole unità didattiche che fornisco cartacee ma potremmo anche pensare di farle aprire come pdf da excel per agganciare la tua proposta ( "la più semplice mi sembra quella del doppio clic")?
Anthony47 ha scritto:Ad esempio non mi dispiacerebbe l'ipotesi che l'utente seleziona il corso, e il pulsante Start viene posizionato su quella riga; il pulsante Stop potrebbe seguire la stessa sorte.
Oppure, invece dei pulsanti, usi ad esempio il doppioclick sulla colonna C /E; magari aiutandoti col "Messaggio di Input" della convalida per suggerire all'utente cosa fare.



Grazie se puoi.
Gene
BG66
Excel2010
Avatar utente
BG66
Utente Senior
 
Post: 323
Iscritto il: 20/08/16 07:44

Re: Definire tempi di inizio e fine test

Postdi Anthony47 » 14/01/21 23:55

Puoi usare le api di sistema per chiedere a Windows di aprire un file usando l'applicazione di default per quel tipo di file.
Se scegli di lavorare col doppioclick, allora apri il "modulo vba del foglio su cui lavori" e prova inserendo questo codice:
Codice: Seleziona tutto
#If VBA7 Then                           'OBBLIGATORIAMENTE IN TESTA AL MODULO
   Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
        ByVal hwnd As LongPtr, ByVal lpOperation As String, ByVal lpFile As String, _
        ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPtr
#Else
   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
#End If

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    ftopen = ThisWorkbook.Path & Application.PathSeparator & Cells(Target.Row, "B").Value
    lngX = ShellExecute(vbNull, "Open", ftopen, "", "", vbMaximizedFocus)
End Sub

La parte dichiarativa deve trovarsi obbligatoriamente in testa al Modulo, prima di qualsiasi Macro.

Il codice della Worksheet_BeforeDoubleClick (nell'esempio) chiedera' a windows di aprire il file che si trova nella stessa directory del workbook e il cui nome sia scritto in colonna B della riga "doppiocliccata".
Adatta tu la macro ai tuoi bisogni, es comporre il nome file partendo da una diversa directory, o aggiungere automaticamente data/ora di inizio, o controllare che quel corso non sia gia' stato svolto, o...

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

Re: Definire tempi di inizio e fine test

Postdi BG66 » 15/01/21 07:28

Ciao Anthony,
in realtà è proprio questo il problema. Non ho trovato spunti nel forum e su internet per fare il primo pezzo:
Anthony47 ha scritto:aggiungere automaticamente data/ora di inizio,....

mentre sono "in corso" sul punto:
Anthony47 ha scritto:o controllare che quel corso non sia gia' stato svolto


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

Re: Definire tempi di inizio e fine test

Postdi Anthony47 » 15/01/21 11:02

Cosi', a spanne:
Codice: Seleziona tutto
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 3 Then
    If Target.Value = "" Then
        Cancel = True
        Target.Value = Date
        Target.Offset(0, 1).Value = Time
        ftopen = ThisWorkbook.Path & Application.PathSeparator & Cells(Target.Row, "B").Value
        lngX = ShellExecute(vbNull, "Open", ftopen, "", "", vbMaximizedFocus)
    Else
        MsgBox ("Il corso e' stato gia' inziato; operazione abortita")
        Exit Sub
    End If
ElseIf Target.Column = 5 Then
    'se click in colonna 5
    '...
Else
    'se click in colonne diverse da C e E
    '...
End If
End Sub

In questo esempio, se l'utente fa doppioclick su colonna C il codice controlla se Data di inizio sia vuota; se Sì allora scrive data e ora di inizio, poi apre il file. Se No allora un msg avvisa e la macro termina.
Pero' e' ovvio che quella delineata e' una gestione minimale...
Forse e' bene chiedere all'utente se veramente vuole cominciare il corso XYZ che come oggetto ha 123456, durata presunta xx ore/gg/mesi.
Forse bisogna anche prevedere che l'utente voglia interrompere il corso e riprenderlo in una fase successiva, quindi dargli nuovamente l'accesso al file che aveva gia' cominciato a consultare.

Insomma devi rendere la macro piu' articolata, aderente alle modalita' operative che il progettista e il cliente intendono realizzare.

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

Re: Definire tempi di inizio e fine test

Postdi BG66 » 15/01/21 12:59

Ciao Anthony,
il file è ad uso interno quindi deve servire a dimostrare, in caso di controllo, l'effettivo e indiscutibile svolgimento del corso.
In breve grazie del tuo solito aiuto ed inizio ad adattare la tua indicazione.
Gene
BG66
Excel2010
Avatar utente
BG66
Utente Senior
 
Post: 323
Iscritto il: 20/08/16 07:44


Torna a Applicazioni Office Windows


Topic correlati a "Definire tempi di inizio e fine test":


Chi c’è in linea

Visitano il forum: Nessuno e 12 ospiti