Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

EXCEL straordinari

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

EXCEL straordinari

Postdi massimo311273 » 25/08/08 12:22

Ciao sono nuovo del forum dopo aver letto tutti I post per il calcolo ore (molto interessanti) ma che purtroppo non hanno risolto il mio problema mi sono deciso ad iscrivermi per porgervi questo quesito sul calcolo degli straordinari, io faccio un lavoro su turni non regolari h24 e che possono essere anche spezzati e con sistema settimanale 6+1+1, cioe 6 GG di lavoro, 1 di riposo e 1 di permesso, con orario ordinario di 7 ore e 15 m il problema e questo:
il mio foglio di calcolo e impostato cosi
A2 data – B2 descrizione del servizio – C2 orario d’ inizio – D2 orario di fine – E2 orario di inizio – F2 orario di fine
G2 totale ore lavorate dove vi e questa formula
=(24-B2)+(C2-0)+(24-D2)+(E2-0) fin qui ok la formattazione di tutte le celle e in ore quindi il risultato e in ore
Ora devo calcolare gli straordinari G1, Inizialmente avevo inserito questa formula
=G1-H1 dove vi e l’ orario fisso 7:15 e il risultato e garantito con un unico inconveniente quando sono di riposo e permesso nelle celle delle ore e chiaro che non ci scrivo niente o zero 0 e il risultato degli straordinari in H2 schizza a 16:45 e non a zero 0 quindi leggendo i post o trovato questa formula che qui leggete adattata
=SE(H2<ORARIO(7;15;0);0;H2-ORARIO(7;15;0))
che dovrebbe restituirmi valore zero 0 quando non lavoro o se faccio un turno inferiore alle 7 ore e 15 ma non e cosi il risultato e uguale a quello che ottenevo io

in piu per avere un quadro esatto del foglio a cui sto lavorando in I2 e J2 essendo che in busta le ore mi vengono calcolate in cifre cioe 7:15 in 7,25 in I2 ho inserito
=(G3-INT(G3))*24 e in J2 =(H3-INT(H3))*24 che mi restituiscono il valore numerico formattate in generale per avere il totale delle ore se ci fosse una soluzione per ovviare a questo giro di calcoli anche mi sarebbe utile

Grazie a tutti anticipatamente.
massimo311273
Utente Junior
 
Post: 68
Iscritto il: 25/08/08 12:15
Località: Pavia

Sponsor
 

Re: EXCEL straordinari

Postdi Tribuno » 25/08/08 14:48

Ciao e benvenuto massimo311273,

per il primo quesito è sicuramente un problema di formattazione delle celle e di calcolo di dati diversi, almeno come hai impostato la formula G2=(24-B2)+(C2-0)+(24-D2)+(E2-0) (anche se credo che devi traslare tutta la formula di 1 colonna, perchè in B2 non c'è l'orario di inizio ma la descrizione servizio).

Prima di tutto seleziona le celle dove metti tutti i dati (inseriti e calcolati) in formato ora: Formato ---> Celle ---> Numero, selzioni Personalizzato e sulla sinistra, in Tipo, inserisci [h]:mm

Ti accorgerai che in G2 ti troverai un numero altissimo, non corrispondente ad un vero orario. Prova allora ad inserire questa funzione personalizzata (Alt+F11, Inserisci, Modulo):

Codice: Seleziona tutto
Function OreLavorate(OraInizio1, OraFine1, OraInizio2, OraFine2, Orario, Zero)
If OraFine1 - OraInizio1 > Zero And OraInizio1 > Zero Then
    If OraFine2 - OraInizio2 > Zero And OraInizio2 > Zero Then
        OreLavorate = (OraFine1 - OraInizio1) + (OraFine2 - OraInizio2)
    Else
        OreLavorate = (OraFine1 - OraInizio1)
    End If
Else
    If OraFine2 - OraInizio2 > Zero And OraInizio2 > Zero Then
        OreLavorate = (OraFine2 - OraInizio2)
    Else
        OreLavorate = Zero
    End If
End If
End Function


Nel tuo foglio devi formattare una cella come ora, inserisici il valore 0:00 e chiama questa cella con un nome qualsiasi (io l'ho chiamata Zero).

In G2 ora inserisci una funzione, scegliendo da quelle Definite dall'utente e scegli OreLavorate. Poi nell'apposita maschera inserisci i riferimenti alla celle con tutti i dati richiesti e dovresti ritrovarti il calcolo delle ore lavorate.

Per il secondo quesito prova questa formula:
=CONCATENA(ORA(H2);".";100*(MINUTO(H2)/60))
dove in H2 c'è il tuo orario da trasformare in centesimi.

Fammi sapere se va bene.

Ciao
Tribuno
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: EXCEL straordinari

Postdi massimo311273 » 25/08/08 16:17

Ciao tribuno prima di tutto ti ringrazio per il tuo interessamento e subito passo a correggermi come tu hai ben notato c’e un errore nella mia trascrizione delle informazioni quindi abbiamo
=(24-C2)+(D2-0)+(24-E2)+(F2-0)
Ora in G2 dovremmo avere il totale delle ore lavorate e in
H2 gli straordinari
Dopo questa parentesi passo ad interpretare la tua risposta perchè come già avrai capito non sono una cima con excel

1) In pratica devo selezionare le celle C2,D2,E2,F2,G2,H2 e formattarle [h]:mm ”chiaramente questo poi sara fatto per tutti i GG del mese”
2) Per dare il comando (Alt+F11, Inserisci, Modulo) non e importante sia selezionata una cella specifica vero?
Dopo aver dato il comando e aperto un nuovo modulo inserisco copia e incolla la funzione ore lavorate poi esci e torna a excel
3) per quanto riguarda la cella formattata ore valore 0:00 cosa intendi per chiamala
4) quando vado su G2 e inserisco la funzione che hai creato mi si apre la finestra con 5 voci ora inizio 1, ora fine 1, ora inizio 2, ora fine 2, orario: in pratica devo inserire nella prima C2 nella seconda D2 e così via fino a orario li cosa va inserito l’ orario di lavoro ordinario cioè 7:15 ?
se faccio così in G2 mi appare #valore! E se ci clicco sopra per vedere la formula c’è =(24-C2)+(D2-0)+(24-E2)+(F2-0)+OreLavorate(C2;D2;E2;F2;7:15) vale a dire la vecchia formula inserita da me con l’ agginta del comando creato
come procedo?
Scusa la mia ignoranza e ancora grazie
massimo311273
Utente Junior
 
Post: 68
Iscritto il: 25/08/08 12:15
Località: Pavia

Re: EXCEL straordinari

Postdi Anthony47 » 25/08/08 17:07

Ciao Massimo, ciao Tribuno.
Sul forum abbiamo trattato piu' volte il tema dell' orario di lavoro e relativi calcoli; il piu' esaustivo (anche se un po' "sfiancante" a stargli dietro) e' questo: viewtopic.php?f=26&t=64085
Qui abbiamo detto che la formula piu' semplice per calcolare le ore lavorate nei casi di turni h24 (dove cioe' e' possibile che ci sia un orario di uscita apparentemente inferiore all' orario di entrata, es entrata 22:00 uscita 2:00) e' questa:
=Uscita1-Entrata1+(Entrata1>Uscita1)+Uscita2-Entrata2+(Entrata2>Uscita2)
Con le colonne usate da massimo:
Codice: Seleziona tutto
=D2-C2+(C2>D2)+F2-E2+(E2>F2)


Per trasformare le ore in formato "decimale" (cioe' da 7:15 ottenere 7,25), e' possibile usare la formula =valore_orario*24 formattando la cella come Numero con 2 decimali; nel caso nostro
Codice: Seleziona tutto
=G2*24


La formula per il calcolo dello straordinario dovrebbe essere esatta (fatti gli adattamenti alle colonne); non dava i frutti sperati perche' la formula originale (=24-B2 etc etc) dava in partenza un risultato ampiamente sballato (come da commento di Tribuno).

Nel caso specifico, quindi, io non ricorrerei a una funzione aggiuntiva OreLavorate: quando si puo' fare una cosa con le funzioni native di excel e senza che si incrocino gli occhi (per la complessita' della formula) il mio suggerimento e' sempre di fermarsi alle funzioni native. Ma questa e' una (rispettabile) opinione personale.
Ciao!
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: EXCEL straordinari

Postdi massimo311273 » 25/08/08 17:47

ho trovato la soluzione e sta proprio come dici tu nelle native di excel poi spiegero come ho risolto grazie a tutti per adesso visto che il mio lavoro non e ancora finito mi avvalro ancora delle vostre conoscenze se mi e concesso
massimo311273
Utente Junior
 
Post: 68
Iscritto il: 25/08/08 12:15
Località: Pavia

Re: EXCEL straordinari

Postdi massimo311273 » 26/08/08 12:49

Ciao Anthony grazie per il tuo intervento pensavo di aver risolto ma cosi non è stato, solo con la tua formula per la somma delle ore la cosa si è sistemata mentre quella per I decimali e andata a pennello la mia.
Se non ti dispiace vorrei farti un quadro della situazione visto che ho aggiunto anche le formattazioni:
colonna A: ci sono le date 1° GG A4 ( quindi tutti i primi saranno sulla riga 4)
chiaramente ho fatto il calendario con i fine sett. Ma solo con la dom. evidenziata quindi ho fatto in A5 =A4+1 e formattazione condizionale =GIORNO.SETTIMANA(A5;3)>5 ma vorrei evidenziare anche i festivi ho cercato di seguire i suggerimenti del forum ma non sono riuscito ho fatto cosi: selezionato A5 che è il secondo giorno del mese / formato / formattazione condizionale / nella prima condizione c’è la formula dei fine settimana quindi ho fatto: aggiungi / la formula è ed ho inserito questa formula: =SE(VAL.ERRORE(CERCA.VERT(A5;J:J;1;0));FALSO;VERO) /
J perché l’ elenco delle festivita è in un’ altro foglio di lavoro chiamato Dati alla lettera J la formattazione del calendario sia date che festività è personalizzato, ggg/gg/mm/aa;@ così mi restuisce anche il giorno della settimana lun. mar. ecc.ecc. poi faccio copia cella A5 e incollo per le restanti celle Cosa sbaglio?

colonna B: luogo di servizio
colonna C,D,E,F: orari di inizio e fine servizio
colonna G,H: il totale delle ore lavorate rispettivamente in ore e decimali
colonna I: giorni lavorati
colonna K,L: il calcolo degli straordinari rispettivamente in ore e decimali

P.S. ho provato a fare anche passo passo quello che dice il topic ma non ho risultato con varie formattazioni delle date, niente!
massimo311273
Utente Junior
 
Post: 68
Iscritto il: 25/08/08 12:15
Località: Pavia

Re: EXCEL straordinari

Postdi Tribuno » 26/08/08 16:04

Non vorrei sbagliarmi, ma non credo sia possibile, nella formattazione condizionale, utilizzare come riferimento/confronto/calcolo dati contenuti in celle di altri fogli, ma devono essere nello stesso foglio.

Una domanda per Anthony, non sono risucito a capire il meccanismo di calcolo della formula
=Uscita1-Entrata1+(Entrata1>Uscita1).
Ammettiamo che Entrata1 sia 22:00 ed Uscita 1 sia 03:00, quindi la differenza dovrà essere 5:00. Allora Uscita1-Entrata1 dovrebbe dare -5:00, orario negativo che excel non visualizza, la discriminante è (Entrata1>Uscita1), ma cosa significa? Come excel considera il calcolo da fare?

Grazie
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: EXCEL straordinari

Postdi Anthony47 » 26/08/08 17:16

Si, confermo che non si puo' far riferimento a un altro foglio in una formula di formattazione condizionata; massimo ga aggirato l' ostacolo ...togliendo il nome foglio nella sua formula [=SE(VAL.ERRORE(CERCA.VERT(A5;J:J;1;0));FALSO;VERO) fa riferimento alla colonna J del foglio corrente, non del foglio Dati].
Un bypass consiste nell' assegnare un nome alla colonna Dati!J e usare il nome nella formula; quindi: vai su Dati, seleziona tutta la colonna J, Menu /Inserisci /Nome /Definisci, scrivi Festivi nell' area nome, Ok.
Poi per la formattazione condizionale userai la formula
Codice: Seleziona tutto
=SE(VAL.ERRORE(CERCA.VERT(A5;Festivi;1;0));FALSO;VERO)

Se la scrivi su A5, non dimenticare di copiarla anche su A4.

Per la conversione da "orario" a "decimale": la tua =(G4-INT(G4))*24, ora che in col G hai un vero "orario", e' esattamente uguale a =G4*24 perche' G4 contiene un numero inferiore a 1, cioe' e' solo parte decimale.

Per Tribuno; si, la formula sembra strana, ma funziona perche' nell' operazione l' eventuale condizione VERO (cioe' Entrata>Uscita) viene trasformata nel valore 1, che nella notazione oraria di excel significa 24h; quindi nell' ipotesi Entrata1 22:00 ed Uscita1 03:00, il calcolo fatto sara' "03:00"-"22:00"+"24:00", appunto 5h.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: EXCEL straordinari

Postdi massimo311273 » 27/08/08 17:15

Grazie Tribuno per avermi fatto notare dove sbagliavo nella formattazione condizionale stavo impazzendo
Idem a Anthony per aermi trovato il modo di raggirala perche mi era scomodo avere tanti elenchi nei fogli e da aggiornare
Seguito quadro:
colonna A: ci sono le date 1° GG A4 ( quindi tutti i primi saranno sulla riga 4)
colonna B: luogo di servizio
Ara vorrei chiedervi dato che la cadenza dei riposi è ogni sei giorni come spiegavo sopra (sistema 6+1+1) cercavo un modo per matterli in automatico tipo se il mio primo gg di riposo dell’ anno è 1° gennaio, come per i fine settimana vorrei una soluzione che mi desse lo stesso risultato possibilmente con un’ unica formula per riposo e permesso rispettivamente

colonna C,D,E,F: orari di inizio e fine servizio
colonna G,H: il totale delle ore lavorate rispettivamente in ore e decimali
colonna I: giorni lavorati
colonna K,L: il calcolo degli straordinari rispettivamente in ore e decimali

P.S. Anthony ho un problema con il calcolo degli straordinari che ti presenterò quando arrivero al punto di questo elenco

Grazie ragazzi siete bravissimi e il lavoro promette bene
:lol:
massimo311273
Utente Junior
 
Post: 68
Iscritto il: 25/08/08 12:15
Località: Pavia

Re: EXCEL straordinari

Postdi Tribuno » 27/08/08 18:56

Io aggiungerei una terza condizione nella formattazione condizionale che hai già usato (si possono indicare massimo 3 condizioni)

=(A4/7)-(1°giorno_riposo_anno/7)=INT((A4/7)-(1°giorno_riposo_anno/7))

dove 1°giorno_riposo_anno lo dovresti inserire in una cella cui fare riferimento (anche con un nome, come per i festivi). Così anche per altre condizioni. Così per tutte le celle cui ti interessa evidenziare come riposo.
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: EXCEL straordinari

Postdi massimo311273 » 27/08/08 19:38

ciao Tribuno io ho provato ma non ho risultato, poi oltre al riposo devo inserire anche il permesso che e successivo ho provato anche inserendo nella seconda parte della formula la parola permesso in caso tu l` abbia considerato e ti sia confuso nello scrivere la formula ma niente in oltre questo calcolo non deve andare in A che sono le date ma in B che sono i luoghi di servizio quindi la descrizione di quello che faccio, nel caso specifico riposo e subito dopo permesso (lavoro 6 GG e 2 GG sono a casa prima in riposo e poi in permesso) poi ti volevo chedere in caso io fossi costretto a scrivere qualcosa di diverso nelle celle coincidente con il riposo o permesso la formattazione come sistema non mi restituirebbe sempre Rip. o Perm. dico questo perche tali giorni in via di esigenze di servizio possono essere spostati e quindi in quel caso ricorrerei alla correzione manuale ciao
massimo311273
Utente Junior
 
Post: 68
Iscritto il: 25/08/08 12:15
Località: Pavia

Re: EXCEL straordinari

Postdi Tribuno » 27/08/08 21:06

Ciao massimo,
scusa ma avevo mal interpretato la tua richiesta, avevo capito che volevi evidenziare la data in cui cadeva il riposo ed il permesso, mentre vuoi che, partendo dal primo giorno dell'anno in cui c'è riposo, in automatico sia indicato in colonna B (Luogo di servizio) la dicitura Rip. e nella cella successiva Perm.
A questo punto credo sia necessario utilizzare una macro.
Codice: Seleziona tutto
Sub Crea_Riposi_Permessi()
    Primo = Sheets("Dati").Range("K1")
    Range("A4").Select
    righe = ActiveCell.CurrentRegion.Rows.Count + 2
    For I = 4 To righe
        If Cells(I, 1) / 8 - Primo / 8 = Int(Cells(I, 1) / 8 - Primo / 8) Then
            If I = righe Then
                    Cells(I, 2) = "Rip."
            Else
                    Cells(I, 2) = "Rip."
                    Cells(I + 1, 2) = "Perm."
            End If
        End If
    Next I
End Sub

devi aprirti VBA di excel ed inserire il codice sopra riportato( Alt+F11, Inserisci, Modulo), poi ritorni al tuo foglio di lavoro, Strumenti--->Macro--->Macro, oppure Alt+F8, dovrebbe risultare già evidenziata la macro Crea_Riposi_Permessi, premi Esegui e nelle celle di colonna B ti sarà scritto Rip. e Perm. seguendo il sistema 6+1+1.
Ovviamente dovrai fare questa operazione su ogni foglio, in quanto immagino che hai creato tanti fogli quanti sono i mesi. Volendo si può automatizzare questa operazione per tutti i fogli mensili, ma avrei bisogno di sapere quanti fogli hai in totale e la loro sequenza.
Spero stavolta di esserti stato d'aiuto.
Fa sapere.
Ciao
Tribuno
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: EXCEL straordinari

Postdi Tribuno » 27/08/08 21:31

P.S. la macro sopra riportata risulta corretta se nella riga dopo l'ultimo giorno del mese non c'è nessun dato, altrimenti devo leggemente modificare la macro (es. 31 agosto 2008 si trova nella riga 34, la riga 35 di tutte le colonne devono essere vuote, dalla riga 36 possono esserci dati).
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: EXCEL straordinari

Postdi Tribuno » 27/08/08 21:46

Ho modificato il codice, presupposto è che nella cella A40 non hai alcun dato, altrimenti devi scegliere una cella vuota e modificare la macro.

Codice: Seleziona tutto
Sub Crea_Riposi_Permessi()
    Application.ScreenUpdating = False
    Primo = Sheets("Dati").Range("K1")
    Range("A40").FormulaR1C1 = "=FINE.MESE(R[-32]C,0)"
    Range("A4").Select
    righe = Range("A40") - Range("A4") + 4
    Range("A40") = ""
    For I = 4 To righe
        If Cells(I, 1) / 8 - Primo / 8 = Int(Cells(I, 1) / 8 - Primo / 8) Then
            If I = righe Then
                    Cells(I, 2) = "Rip."
            Else
                    Cells(I, 2) = "Rip."
                    Cells(I + 1, 2) = "Perm."
            End If
        End If
    Next I
    Application.ScreenUpdating = True
End Sub


P.S. c'è la possibilità di modificare un post appena fatto?
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: EXCEL straordinari

Postdi Tribuno » 28/08/08 14:05

Ho dimenticato di specificare che nella cella K1 del foglio "Dati" bisogna inserire il giorno del primo riposo dell'anno. Ho leggermente modificato il codice che è il seguente:

Codice: Seleziona tutto
Sub Crea_Riposi_Permessi()
    Application.ScreenUpdating = False
    Primo = Sheets("Dati").Range("K1") 'bisogna prima inserire in K1 di "Dati" il giorno del primo riposo dell'anno
    Range("A40").Formula = "=FINE.MESE(A4,0)"
    Range("A4").Select
    righe = Range("A40").Value - Range("A4").Value + 4
    Range("A40").Value = ""
    For I = 4 To righe
        If Cells(I, 1) / 8 - Primo / 8 = Int(Cells(I, 1) / 8 - Primo / 8) Then
            If I = righe Then
                    Cells(I, 2) = "Rip."
            Else
                    Cells(I, 2) = "Rip."
                    Cells(I + 1, 2) = "Perm."
            End If
        End If
    Next I
    Application.ScreenUpdating = True
End Sub
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: EXCEL straordinari

Postdi massimo311273 » 28/08/08 18:53

Ciao Tribuno ho provato le tue macro la prima va bene solo se non fosse per il fatto che il conteggio si protrae dopo il mese per 2 cele e non una come da te descritto,
le altre due non riesco a farle andare perche ni da un errore di debug su A4 praticamente la tua cella fine mese che si trova mi pare alla cella 40 e poco piu ha il collegamento in A$ li c'e una data del calendario e quindi mi da l, errore
poi legendo le macro vedo che c,e la parola dati come e rinominata la mia ultima scheda ha a che fare qualcosa con la macro?
adesso ti faccio un reso conto delle colonne che ho occupato e una libera eventuale
Colonna A
da A1, a A36, sia la colonna che le righe sono occupate
da A37, a A39 sono libere
da A40, a A51 sono Occupate
la colonne occupate sono da A a AI
ora mi sembrava di aver capito che si poteva fare una cosa automatica per tutto l, anno ma ti serviva sapere quanti fogli avessi creato
il promo si chiama calcolo ore e variazioni e li avrei voluto poi creare una maschera per richiamare i dati ma quasta potrei anche eliminarla
dal secondo al tredicesimo ci sono i mesi
il quattordicesimo c'e banca ore che li dovro creare un altro sistema di conteggio ore particolare del mio CCNL
e la quindicesima c'e il famoso foglio dati dove ho le tariffe delle maggiorazioni e il calendario delle festivita e altri eventuali dati da aggiungere a fine di calcoli e conteggi ancora grazie per il tuo aiuto ciao
massimo311273
Utente Junior
 
Post: 68
Iscritto il: 25/08/08 12:15
Località: Pavia

Re: EXCEL straordinari

Postdi massimo311273 » 28/08/08 18:56

P.S. dimenticavo noi abbiamo considerato come primo GG dell anno di riposo ma con molta probabilita cosi non e se dovessi modificarlo qual' e il tratto della macro che dovro modificare? e come?
massimo311273
Utente Junior
 
Post: 68
Iscritto il: 25/08/08 12:15
Località: Pavia

Re: EXCEL straordinari

Postdi Tribuno » 28/08/08 22:18

Ecco il codice modificato:

Codice: Seleziona tutto
Sub Crea_Riposi_Permessi()
    Application.ScreenUpdating = False
    For y = 2 To 13
        Primo = Sheets("Dati").Range("K1") 'inserire nella cella K1 del foglio "Dati" il primo giorno di riposo dell'anno
        Righe = Sheets(y).Range("A50").Value - Sheets(y).Range("A4").Value + 4 '-----> eventualmente cambiare rif. A50
        For i = 4 To Righe
            If Sheets(y).Cells(i, 1) / 8 - Primo / 8 = Int(Sheets(y).Cells(i, 1) / 8 - Primo / 8) Then
                If i = Righe Then
                        Sheets(y).Cells(i, 2) = "Rip."
                Else
                        Sheets(y).Cells(i, 2) = "Rip."
                        Sheets(y).Cells(i + 1, 2) = "Perm."
                End If
            End If
        Next i
    Next y
    Application.ScreenUpdating = True
End Sub


1) nella cella A50 ho inserito la formula =FINE.MESE(A4;0), dove in A4 c'è il primo giorno del mese. La stessa formula la devi copiare in tutti i fogli dei mesi da gennaio a dicembre. Se hai già inserito questa formula in un'altra cella per calcolarti i giorni lavorativi, allora nel codice al posto di A50 devi mettere il riferimento alla tua cella (partendo da Sub Crea_Riposi_Permessi() è la quinta riga, corrisponde all'assegnazione della variabile "righe");

2) Nel foglio "Dati", che dovrebbe essere il tuo quindicesimo foglio, nella cella K1 ho inserito il primo riposo dell'anno, quindi nel tuo foglio dati nella cella K1 inserisci il tuo primo GG di riposo. Se la cella K1 è occupata, scegli un'altra cella, sempre del foglio "Dati", avendo l'accortezza di modificare, nel codice (partendo da Sub Crea_Riposi_Permessi() è la quarta riga, corrisponde all'assegnazione della variabile "Primo") di cambiare il riferimento della cella K1 con la tua;

3) ho già inserito (ciclo For Y ... Next Y) le istruzioni per inserire in tutti e dodici i mesi Rip. e Perm., l'importante è che la sequenza dei tuoi fogli sia Promo - gen - feb - ... dic - Banca Ore - Dati, quindi i mesi sono dal 2° al 13° foglio.

Se vuoi fare delle prove e poi vuoi cancellare in colonna B i dati scritti, prova con questo codice:

Codice: Seleziona tutto
Sub cancella()
For i = 2 To 12
Sheets(i).Range("B4:B34") = ""
Next
End Sub


Ciao
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: EXCEL straordinari

Postdi massimo311273 » 29/08/08 00:36

vediamo un po se ho capito bene:
la prima coa che faccio e andare in K1 e inserisco una data a caso che dovrebbe essere la corrispettiva del mio primo giono di ripso dell, anno diciamo 03/01/2008
poi vado ne mese di gennaioe faccio alt + F11 / inserisci / modulo copia e incolla la tua macro poi vado su file chiudi e torna a microsoft excel
(chiaramente dalla macro elimino le frasi:
'inserire nella cella K1 del foglio "Dati" il primo giorno di riposo dell'anno
'-----> eventualmente cambiare rif. A50)
poi vado su: strumenti / macro/ macro / seleziono crea_riposi_permessi / esegui
e qui casca l' asino mi apre una finestra d' errore con scritto Errore run-time `13`
Tipo non corrispondente
se clicco debug mi apre V.Basic con evidenziata in giallo questa riga
Righe = Sheets(y).Range("A50").Value - Sheets(y).Range("A4").Value + 4
e nella cella A50 esce #NAME! o qualcosa del genere
massimo311273
Utente Junior
 
Post: 68
Iscritto il: 25/08/08 12:15
Località: Pavia

Re: EXCEL straordinari

Postdi massimo311273 » 29/08/08 00:40

ah! chiaramente ho provato con e senza le frasi su citate ciao attendo sono curioso di sapere se riesco ad infilargliela questa macro
massimo311273
Utente Junior
 
Post: 68
Iscritto il: 25/08/08 12:15
Località: Pavia

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "EXCEL straordinari":


Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti