Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Foglio per orari ingresso/uscita lavoro (Badge)

Ultimo Aggiornamento: 11/12/2019 19:20
Post: 1
Registrato il: 08/12/2019
Età: 50
Utente Junior
Excel 2011 per MAC
OFFLINE
08/12/2019 17:13

Buonasera a tutti, sono nuovo del forum ma leggendo qua e la ho visto che siete veramente cortesi e bravi nell'aiutare a trovare soluzioni ottimali......
Fino ad oggi ho sempre usato Excel solamente con le funzioni e mai ho utilizzato il linguaggio di programmazione Visual Basic Editor all'interno della sezione Macro......
Adesso devo creare un foglio di calcolo per gestire gli orari di ingresso/uscita di un gruppo di persone a lavoro pertanto ho capito che devo farlo con l'ausilio del Visual Basic Editor......
Cercherò di essere il più chiaro possibile:
1) Tutto il foglio dovrà essere protetto da scrittura ad eccezione delle celle dove ogni singola persona dovrà inserire la scritta "entrata" / "uscita" e magicamente nella cella accanto dovrà apparire l'orario in cui è stata effettuato l'inserimento..... appena scritto "entrata/uscita" anche quella cella si dovrà bloccare e non dovrà più essere modificata mentre si dovrà sbloccare quella successiva.
Per cercare di farmi capire meglio allego un file excel per rendere meglio l'ide di quello che dovrei fare.....
Io avevo fatto un prototipo cercando in giro che allego... l'ho chiamato badge il file.... ma sarebbe meglio fare con le indicazioni del file "dafare" sempre allegato.
Nel file Badge avevo usato questo:
Sub Macro1()
ActiveSheet.Unprotect "ahiahi"
ActiveCell.FormulaR1C1 = Now()
ActiveSheet.Protect "ahiahi", DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Grazie a tutti!!!😀
Post: 3.585
Registrato il: 03/04/2013
Utente Master
Excel 2000 - 2013
OFFLINE
08/12/2019 19:48

Buona sera, @paoloforumexcel;
il primo File allegato è protetto da Password quindi, al momento, non è utilizzabile.

Gli altri due File sembrano uguali e possono essere oggetto di analisi; per entrare nel File di ogni Collaboratore consiglio di utilizzare una Password all'apertura del File, in ogni caso considera che le Password in Excel non sono inviolabili.

@paoloforumexcel, scrive:


... Fino ad oggi ho sempre usato Excel solamente con le funzioni e mai ho utilizzato il linguaggio di programmazione Visual Basic Editor all'interno della sezione Macro ...


Questo mi preoccupa per eventuali aggiornamenti del Codice VBA.

In ogni caso, domani provo ad analizzare la tua richiesta con più attenzione; ti tengo aggiornato.

 

A disposizione.

Buona serta.

Giuseppe



Windows XP - Excel 2000
Windows 10 - Excel 2013
08/12/2019 21:12

Password 123 Tramite convalida immetti l'orario
Post: 1
Registrato il: 08/12/2019
Età: 50
Utente Junior
Excel 2011 per MAC
OFFLINE
09/12/2019 12:34

Buongiorno e grazie mille per le tempestive risposte.... Intanto volevo solo ringraziarvi e nel pomeriggio, quando da casa potrò aprire gli allegati, verificherò le soluzioni proposte e vi risponderò a tal proposito.
Post: 2
Registrato il: 08/12/2019
Età: 50
Utente Junior
Excel 2011 per MAC
OFFLINE
09/12/2019 15:48

Re:
ABCDEF@Excel, 08/12/2019 21.12:

Password 123 Tramite convalida immetti l'orario



Grazie mille, stavo verificando il funzionamento e mi sembra molto semplice, l'unico inconveniente che ho riscontrato è che se uno per errore invece di cliccare sulla convalida per errore digita dei caratteri appare la scritta "il valore immesso non è incluso nell'elenco dei valori richiesti" e poi a quel punto sia che uno clicchi su riprova o annulla accade che la cella "C" rimane vuota, viene bloccata e automaticamente accanto appare la data e l'orario..... e ovviamente si sblocca la cella sottostante...
La mia domanda è: è possibile fare in modo che se uno scrive nella cella non venga effettuata nessuna operazione e l'unica accettata sia quella della scelta tra entrata e uscita?

Per completezza di informazione la mia versione è: Excel 2011 per MAC Versione 14.0.0

Grazie mille


Post: 3
Registrato il: 08/12/2019
Età: 50
Utente Junior
Excel 2011 per MAC
OFFLINE
09/12/2019 16:43

Buonasera @GiuseppeMn,
ringraziandoti anticipatamente per l'aiuto vorrei chiederti se possibile alcune varianti alla procedura:

Ottimo il suggerimento di creare una password per Dip1, però vorrei un meccanismo un pochino più semplice e cioè:
quando si prova ad aprire il file lui può accettare solo 2 password, quella mia come amministratore che poi mi permetterà di fare tutto e quella di Dip1 che una volta inserita gli permetterà di entrare ma in automatico non dovrà fare nulla: sarà lui che scriverà/metterà entrata o uscita a sua scelta nell'unica cella non protetta e immediatamente il programma dovrà bloccare quella cella, scrivere giorno e ora nelle celle accanto e sbloccare quella sotto per un nuovo inserimento di entrata/uscita, infine fare un salvataggio senza però chiudere il file.

Ottimo anche in consiglio dell'orario GMT però a quel punto dove prende l'orario? da un server in rete e non più dal clock dell'orologio? potrebbe essere una cosa buona ma se non ci fosse internet in quel momento?

Ultima cosa, entrando nel tuo file non mi riconosce la password ADMIN quando provo ad accedere al codice VBA..... mentre in fase di apertura lo riconosce.

La versione che utilizzo è 14.0.0 Excel 2011 per MAC....... che mi sembra però abbia riconosciuto tutto della tua procedura, in alternativa ho un altro PC con win10 e Excel 2016 mi pare.....

Grazie mille per la disponibilità.
Post: 3.592
Registrato il: 03/04/2013
Utente Master
Excel 2000 - 2013
OFFLINE
09/12/2019 17:22

All'apertura la Password è univova; quindi Dip1, Dip2, Dip3 ecc ...
Dopo l'apertura il file può essere modificato liberamente solo da "ADMIN"
La Password d'accesso a VBA è proprio "ADMIN" e funziona.



Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 4
Registrato il: 08/12/2019
Età: 50
Utente Junior
Excel 2011 per MAC
OFFLINE
09/12/2019 17:57

GiuseppeMN, 09/12/2019 17.22:

All'apertura la Password è univova; quindi Dip1, Dip2, Dip3 ecc ...
Dopo l'apertura il file può essere modificato liberamente solo da "ADMIN"
La Password d'accesso a VBA è proprio "ADMIN" e funziona.



Purtroppo.... non so se dipende dalla versione di Excel (ho provato anche altre versioni successive) ma la Password di accesso a VBA (ADMIN) mi dice progetto protetto password non valida 😭😭.....
Post: 3.594
Registrato il: 03/04/2013
Utente Master
Excel 2000 - 2013
OFFLINE
09/12/2019 19:41

Con Excel per Windows la Password d'accesso a VBA "ADMIN" garantisco che funziona.


In ogni caso non è necessario perdere tempo; utilizza la Procedura più semplice.


Buon Lavoro.


 



Windows XP - Excel 2000
Windows 10 - Excel 2013
10/12/2019 00:09

Premi ALT+F11 e sostituisci il codice
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("D:D")) Is Nothing Then
        If Target.Offset(0, 0) = "Entrata" Or Target.Offset(0, 0) = "Uscita" Then
            ActiveSheet.Unprotect "123"
            Application.EnableEvents = False
            Target.Offset(0, 1).Value = Now
            Application.EnableEvents = True
            Target.Offset(0, 0).Locked = True
            Target.Offset(1, 0).Locked = False
            ActiveSheet.Protect "123"
        End If
    End If
End Sub

Salva. Per quanto riguarda il MAC non saprei. Prova ALT+F11
Strumenti/Proprietà di VbaProject/Protezione ad inserire una Password
Post: 899
Registrato il: 16/08/2015
Città: CORDENONS
Età: 67
Utente Senior
Excel 2016-32bit Win11
OFFLINE
10/12/2019 18:32

Un saluto a tutti.

Dato che non riesco a reperire l'elaborato di GiuseppeMN (non trovo l'allegato) allora mi permetto di suggerire un'aggiunta alla macro di ABCDEF@Excel per gestire il verso indicato dall'utilizzatore visto che, di solito, deve essere diverso da quello precedente. Questa è la macro integrata:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Range("D:D")) Is Nothing Then
        'verifica verso
        If Target.Row > 10 Then
            If Target.Offset(-1, 0) = Target Then
                MsgBox "Stai indicando lo stesso verso."
                Application.EnableEvents = False
                Target = ""
                Application.EnableEvents = True
                Exit Sub
            End If
        End If
        '--------------
        If Target = "Entrata" Or Target = "Uscita" Then
            ActiveSheet.Unprotect "123"
            Application.EnableEvents = False
            Target.Offset(0, 1).Value = Now
            Application.EnableEvents = True
            Target.Locked = True
            Target.Offset(1, 0).Locked = False
            ActiveSheet.Protect "123"
        End If
    End If
    
End Sub

______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
Post: 5
Registrato il: 08/12/2019
Età: 50
Utente Junior
Excel 2011 per MAC
OFFLINE
10/12/2019 19:05

ABCDEF@Excel, 10/12/2019 00.09:

Premi ALT+F11 e sostituisci il codice
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("D:D")) Is Nothing Then
        If Target.Offset(0, 0) = "Entrata" Or Target.Offset(0, 0) = "Uscita" Then
            ActiveSheet.Unprotect "123"
            Application.EnableEvents = False
            Target.Offset(0, 1).Value = Now
            Application.EnableEvents = True
            Target.Offset(0, 0).Locked = True
            Target.Offset(1, 0).Locked = False
            ActiveSheet.Protect "123"
        End If
    End If
End Sub

Salva. Per quanto riguarda il MAC non saprei. Prova ALT+F11
Strumenti/Proprietà di VbaProject/Protezione ad inserire una Password

Grazie mille !!! Adesso è perfetta..... anche se non capisco il significato del codice funziona alla grande!....
ALT+F11 col MAC non funziona ma ho fatto il classico "copia" "incolla".....

Ancora Grazie.
Post: 6
Registrato il: 08/12/2019
Età: 50
Utente Junior
Excel 2011 per MAC
OFFLINE
10/12/2019 19:13

Re:
rollis13, 10/12/2019 18.32:

Un saluto a tutti.

Dato che non riesco a reperire l'elaborato di GiuseppeMN (non trovo l'allegato) allora mi permetto di suggerire un'aggiunta alla macro di ABCDEF@Excel per gestire il verso indicato dall'utilizzatore visto che, di solito, deve essere diverso da quello precedente. Questa è la macro integrata:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Range("D:D")) Is Nothing Then
        'verifica verso
        If Target.Row > 10 Then
            If Target.Offset(-1, 0) = Target Then
                MsgBox "Stai indicando lo stesso verso."
                Application.EnableEvents = False
                Target = ""
                Application.EnableEvents = True
                Exit Sub
            End If
        End If
        '--------------
        If Target = "Entrata" Or Target = "Uscita" Then
            ActiveSheet.Unprotect "123"
            Application.EnableEvents = False
            Target.Offset(0, 1).Value = Now
            Application.EnableEvents = True
            Target.Locked = True
            Target.Offset(1, 0).Locked = False
            ActiveSheet.Protect "123"
        End If
    End If
    
End Sub



Buonasera @rollis13
grazie anche a te per l'interessamento.... ho provato anche il tuo di codice per capire che differenze ci fossero ma facendo una prova di inserimento di caratteri errati il programma si è bloccato e ha dato errore.... cmq ti ringrazio ugualmente per la cortesia ma ho risolto con il file di ADCDEF......
10/12/2019 20:47

Rimane un particolare...
A casa usi MAC e invece in ditta usi Windows???
Ti rimane un grosso difetto nel proteggere il VBA...
Devi proteggere pure il VbaProject (dove c'è scritto 123, post10)
Col MAC non saprei come fare
Ps. Comunque le password in Excel (sono facili)
[Modificato da ABCDEF@Excel 11/12/2019 04:07]
Post: 3.606
Registrato il: 03/04/2013
Utente Master
Excel 2000 - 2013
OFFLINE
11/12/2019 19:20

Un dubbio molto personale.

Buona sera, @paoloforumexcel;
premesso che sono veramente felice che abbiate risolto brillantemente, consentimi una precisazione e, contestualmente, una domanda.

In tutte le mie esperienze lavorative quando si trattava di timbrare il cartellino non ho mai dovuto inserire la data di Entrata/Uscita; inserivo il cartellino o il badge ed era l'apparecchio di timbratura che gestiva Data e Orari.
Questo è il motivo per cui avevo privilegiato Entrate/Uscite in alternaza automatica senza alcun intervento esterno.

Ora il mio dubbio è questo, per quale motivo dovrebbe essere il Collaboratore (Dipendente) a gestire il movimento di Entrata o Uscita con il pericolo di trovarsi con due entrate consecutive senza un'uscita intermedia o due uscite consecutive senza alcuna entrata intermedia?

Che fosse il Collaboratore a decidere sull'entrata e sull'uscita mi sembrava un controsenso o mi sbaglio?

Grazie dell'attenzione che potrai dedicarmi.

 

Buona serata.

Giuseppe



Windows XP - Excel 2000
Windows 10 - Excel 2013
Vota: 15MediaObject5,00115 1
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 08:13. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com