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

Re: EXCEL straordinari

Postdi Anthony47 » 29/08/08 01:40

Ciao.
Se in A50 ti da' quell' errore e' perche' ti manca la funzione Fine.Mese; devi installare il componente aggiuntivo Strumenti di analisi: Menu /Strumenti /Componenti aggiuntivi; qui spunti Strumenti di analisi e chiudi con Ok.

Prova cosi', ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea

Sponsor
 

Re: EXCEL straordinari

Postdi massimo311273 » 01/09/08 16:58

Ciao Anthony sono ancora qui con il mio problemino anche dopo aver fatto cio che mi hai consigliato o sempre lo stesso problema:
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

l' altro che nella cella A50 esce #NAME! non ha niente a che vedere con l' errore su citato
nel senso che ho sbagliato ad esporre la questione con l' ultima macro di tribuno ho il debug
mentre e con la penultima che mi dava #NAME che con la manovra che mi hai consigliato si e risolto ma c'e un altro preblema con questa macro ed e la data in dati K1 che io inserisco ma il riposo non parte alla stasse data
riusciamo a creare una macro o qualcos' altro che mi permetta di fare cio di cui ho bisogno? Grazie sia a te che a Tribuno per l' impegno e attenzione verso i miei problemi Excel
Ciao
massimo311273
Utente Junior
 
Post: 68
Iscritto il: 25/08/08 12:15
Località: Pavia

Re: EXCEL straordinari

Postdi Anthony47 » 01/09/08 17:55

che nella cella A50 esce #NAME! non ha niente a che vedere con l' errore su citato

No, l' errore #NAME! ha molto a che vedere con un errore di tipo Errore run-time `13` Tipo non corrispondente; quindi e' importante aver fatto in modo che non compaia.
Per inciso: ma tu hai excel in inglese?

Ora se hai ancora l' errore "Tipo non corrispondente" mi viene il dubbio che tu in A4 non abbia una data ma una stringa: se formatti momentaneamente A4 come "numero", che cosa ci vedi?

Per quanto riguarda il primo riposo, va messo in foglio Dati, cella K1, ed e' il primo riposo dell' anno; ovviamente vale solo per l' anno in corso. La macro poi calcola la differenza di data tra quel primo riposo e le date del mese e scrive ogni 8 gg Riposo e Permesso. Quando dici "ma il riposo non parte alla stasse data" che cosa intendi esattamente?

Ciao, ti aspettiamo.
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: EXCEL straordinari

Postdi Tribuno » 01/09/08 17:58

Ho modificato il codice:

Codice: Seleziona tutto
Sub Crea_Riposi_Permessi()
    Application.ScreenUpdating = False
    Check = 0
    For y = 2 To 13
        Primo = Sheets("Dati").Range("K1")
        i = 4
        Do While IsDate(Sheets(y).Cells(i, 1))
            If Sheets(y).Cells(i, 1) >= Primo Then
                If Sheets(y).Cells(i, 1) / 8 - Primo / 8 = Int(Sheets(y).Cells(i, 1) / 8 - Primo / 8) Then
                    If IsDate(Sheets(y).Cells(i, 1).Value) Then Sheets(y).Cells(i, 2) = "Rip."
                    If IsDate(Sheets(y).Cells(i + 1, 1).Value) Then Sheets(y).Cells(i + 1, 2) = "Perm."
                End If
            End If
            i = i + 1
        Loop
     Next y
    Application.ScreenUpdating = True
End Sub


Adesso la cella A50 non è più necessaria, per evitare problemi come quello esposto, anche se poi lo avevi risolto seguendo il consiglio di Anthony. Anche il problema della cella K1 mi sembra risolto con quest'ultimo codice. Prova e fammi sapere.

P.S. la precedente macro per cancellare i dati in colonna B non era completa e non cancellava il mese di dicembre. Modifica il ciclo For/Next mettendo "to 13" anziché "to 12".
Ciao
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: EXCEL straordinari

Postdi massimo311273 » 01/09/08 18:12

Ciao Tribuno
la macro sembra funzionare, meno che Gen non c' e nienteMag idem e in altri mesi dove l riposo cede nel primo e il permesso nel secondo non mi appare il permesso ne nel ! ne nel 2
massimo311273
Utente Junior
 
Post: 68
Iscritto il: 25/08/08 12:15
Località: Pavia

Re: EXCEL straordinari

Postdi massimo311273 » 01/09/08 18:14

Tribuno aspetta forse funziona
massimo311273
Utente Junior
 
Post: 68
Iscritto il: 25/08/08 12:15
Località: Pavia

Re: EXCEL straordinari

Postdi massimo311273 » 01/09/08 18:19

Tribuni i problemi persistono meno che per Gen era errore mio non averti detto che il primo foglio dove volevo fare la meschera l' ho eliminato momentaneamente quindi alla macro ho modificato For y = 2 To 13 con rispettivamente 1-12 ma persistono gli altri problemi mag e vuoto e a cavallo di dur mesi perdo il permesso
massimo311273
Utente Junior
 
Post: 68
Iscritto il: 25/08/08 12:15
Località: Pavia

Re: EXCEL straordinari

Postdi Tribuno » 01/09/08 18:32

Per il problema del permesso che a cavallo di due mesi lo perdi, farò una modifica, non riesco a capire perchè maggio ti risulta vuoto. I fogli dei mesi sono in ordine (gen - feb - mar - ........ott - nov - dic)? Il primo foglio a sinistra è gennaio? Il problema è solo maggio?
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: EXCEL straordinari

Postdi Tribuno » 01/09/08 18:44

Prova con questa macro

Codice: Seleziona tutto
Sub Crea_Riposi_Permessi()
    Application.ScreenUpdating = False
    check = 0
    For y = 1 To 12
        Primo = Sheets("Dati").Range("K1") 'inserire nella cella K1 del foglio "Dati" il primo giorno di riposo dell'anno
        i = 4
        Do While IsDate(Sheets(y).Cells(i, 1))
            If Sheets(y).Cells(i, 1) >= Primo Then
                If Sheets(y).Cells(i, 1) / 8 - Primo / 8 = Int(Sheets(y).Cells(i, 1) / 8 - Primo / 8) Then
                    If IsDate(Sheets(y).Cells(i, 1).Value) Then Sheets(y).Cells(i, 2) = "Rip."
                    If IsDate(Sheets(y).Cells(i + 1, 1).Value) Then
                        Sheets(y).Cells(i + 1, 2) = "Perm."
                    Else
                        If y < 12 Then
                            Sheets(y + 1).Cells(4, 2) = "Perm."
                        End If
                    End If
                End If
            End If
            i = i + 1
        Loop
     Next y
    Application.ScreenUpdating = True
End Sub


Fammi sapere per maggio. Ti ricordo che i fogli devono essere messi in ordine cronologico.
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: EXCEL straordinari

Postdi massimo311273 » 01/09/08 19:17

Tribuno il problema e che in maggio non ho i riposi e permessi anche se da aprile giugno il conteggio e giusto in piu se metto una data diversa dal 01/01/2008 non calcola niente
grazie ciao
massimo311273
Utente Junior
 
Post: 68
Iscritto il: 25/08/08 12:15
Località: Pavia

Re: EXCEL straordinari

Postdi Tribuno » 03/09/08 21:14

Prova a controllare il tipo di settaggio date (nella maschera Formate celle, dopo avere selezionato Data, sulla sinistra, sotto Tipo:, verifica le Impostazioni internazionali (località), se sono su Inglese metti Italiano). Se è già su Italiano allora verifica se la colonne A di Maggio è formattata come Date. Sarebbe opportuno, a questo punto, verificare tutte le celle di tutti i fogli dove hai le date ed impostare la medesima tipologia di visualizzazione data. Presumo che i fogli siano in ordine progressivo mensile, il numero 1 è gennaio ed il n. 12 è dicembre.

anche se da aprile giugno il conteggio e giusto

da luglio a dicembre è giusto?

in piu se metto una data diversa dal 01/01/2008 non calcola niente

cosa significa che non calcola niente? E dove, su un foglio in particolare o su tutti? E poi diversa da 01/01/2008 significa superiore o inferiore? Se è inferiore (anche del 2007), Rip. e Perm. ti partono a gennaio conteggiando 6+1+1, se metti una data superiore, ad esempio 20/01/2008, prima di tale data non ti inserisce Rip. e Perm (parliamo dell'anno 2008, ovviamente) perché c'è un controllo in tal senso.

Fammi sapere

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

Re: EXCEL straordinari

Postdi massimo311273 » 05/09/08 23:23

ciao Tribuno ho controllato i settaggi e le celle sono inpostate per mag. su generale come tutte le altre degli altri mesi ho provato a settarle come data ma il risultato non cambia ( quarda che l conto dei Rip. non lo stiamo facendo nelle celle data ma nelle celle luogo di servizio ) la localita e apposto su italiano
impostando nel foglio dati K1 la data 01/01/2008 nei figli mese mi succede questo gen. feb. mar. apr. apposto conteggia regolarmente i rip. e perm. mag. invece resta vuoto giu. lug. ecc. ecc. fino a dicembre riprende il regolare conteggio come se in mag ci fossero i regolari Rip. e Perm. che invece non ci sono per quanto riguarda il cambio data intendo essendi un sistema 6+1+1 non posso andare oltre al 06/01/2008 quindi qualsiasi data diversa da 01/01/ ma inclusa in 01/01 - 06/01 in nessuna cella di nessun mese mi appare niente ne rip. ne perm.
comunque sto pensando di rinunciarvi tanto non e indispensabile al fine del mio obbiettivo quindi se per te va bene ti porrei un altro quesito.
massimo311273
Utente Junior
 
Post: 68
Iscritto il: 25/08/08 12:15
Località: Pavia

Re: EXCEL straordinari

Postdi massimo311273 » 06/09/08 01:07

Il quesito e questo:
colonna A: ci sono le date 1° GG A4 ( quindi tutti i primi saranno sulla riga 4)
ho fatto sia calendario festivita che fine sett. con solo la dom. evidenziata quindi ho fatto in A5 =A4+1 e formattazione condizionale =SE(VAL.ERRORE(CERCA.VERT(A5;Festivi;1;0));FALSO;VERO) aggiungi =GIORNO.SETTIMANA(A5;3)>5 formattazione del calendario è personalizzato, ggg/gg/mm/aa;@ così mi restuisce anche il giorno della settimana lun. mar. ecc.
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
colonna M,N,O,P,Q: dove ho indennità lavoro domenicale che calcolo con la seguente formula: =SE(GIORNO.SETTIMANA(A4;3)>5;H4;SE(H4-ORARIO(7;15;0);0))
che dovrebbe darmi tale risultato cercare nella colonna A Data la domenica (e lo fa) e calcolarmi nella collonna Q le ore di indennita domenicale (e lo fa) se solo non fosse ce me le conteggia tutte es. se monto in servizio dalle 23:00 di domenica e smonto alle 07:00 di lunedi la formula dovrebbe conteggiarmi solo 1 ora cioè dalle 23:00 alle 24:00, 00:00 e in caso di sabato se monto alle 23:00 e smonto alle 07:00 dovrebbe conteggiarmi 6 ore cioè dalle 24:00, 00:00 alle 07:00 come faccio ad ottenere tale risultato? Anticipatamente Grazie
massimo311273
Utente Junior
 
Post: 68
Iscritto il: 25/08/08 12:15
Località: Pavia

Re: EXCEL straordinari

Postdi Tribuno » 06/09/08 09:24

massimo311273 ha scritto:ciao Tribuno ho controllato i settaggi e le celle sono inpostate per mag. su generale come tutte le altre degli altri mesi ho provato a settarle come data ma il risultato non cambia ( quarda che l conto dei Rip. non lo stiamo facendo nelle celle data ma nelle celle luogo di servizio ) la localita e apposto su italiano
impostando nel foglio dati K1 la data 01/01/2008 nei figli mese mi succede questo gen. feb. mar. apr. apposto conteggia regolarmente i rip. e perm. mag. invece resta vuoto giu. lug. ecc. ecc. fino a dicembre riprende il regolare conteggio come se in mag ci fossero i regolari Rip. e Perm. che invece non ci sono per quanto riguarda il cambio data intendo essendi un sistema 6+1+1 non posso andare oltre al 06/01/2008 quindi qualsiasi data diversa da 01/01/ ma inclusa in 01/01 - 06/01 in nessuna cella di nessun mese mi appare niente ne rip. ne perm.
comunque sto pensando di rinunciarvi tanto non e indispensabile al fine del mio obbiettivo quindi se per te va bene ti porrei un altro quesito.


Per contrololo settaggio celle delle date intendevo, almeno per il mese di maggio, la colonna A dalla cella 4 in poi (fino al 31 maggio). Se è tutto regolare mi sorge un dubbio: il colore carattere è uguale al colore sfondo? Prova a selezionare tutte le celle da B3 a B34, ci sono le scritte Rip. e Perm.? Per quanto riguarda il problema della data di partenza diversa da 01/01 ma compresa tra 01.01/06.01 sinceramente non riesco a capire il perché, l'unica, ripeto, è la formattazione delle celle colonna A e di Dati!K1 in formato data. Se hai la possibilità, togliendo eventuali dati sensibili, di inviarmi, anche in MP se vuoi (a proposito, qualche giorno fa te ne ho inviato uno), il tuo file, posso darci un'occhiata.
Per l'altro quesito ti faccio sapere al più presto.

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

Re: EXCEL straordinari

Postdi Tribuno » 06/09/08 13:45

Per quanto riguardo il quesito che hai posto, ho visto che hai usato 5 colonne (da M a Q) per le indennità di lavoro domenicale. Ammettendo che ci sia solo un'entrata (col. C) ed una uscita (col. D), nella colonna delle indennità domenicale (immagino col. M) prova a mettere in M4

Codice: Seleziona tutto
=SE(GIORNO.SETTIMANA(A8;3)>4;SE(GIORNO.SETTIMANA(A8;3)=6;SE(D8<C8;SOMMA(ORARIO(0;0;0)-C8;C8>ORARIO(0;0;0));D8-C8);SE(D8<C8;D8-ORARIO(0;0;0);D8-C8));0)


Se il risultato è quello che volevi ottenere, ci possono essere entrate/uscite anche in colonna E ed F? In questo modo bisogna aggiungere ulteriori istruzioni.

Fammi sapere

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

Re: EXCEL straordinari

Postdi Tribuno » 06/09/08 23:00

Scusa, ma ho postato una istruzione non corretta.

In M4 inserisci questa
Codice: Seleziona tutto
=SE(GIORNO.SETTIMANA(A4;3)>4;SE(GIORNO.SETTIMANA(A4;3)=6;SE(D4<C4;SOMMA(ORARIO(0;0;0)-C4;C4>ORARIO(0;0;0));SE(F4<E4;SOMMA(D4-C4;ORARIO(0;0;0)-E4;E4>ORARIO(0;0;0));0));SE(D4<C4;D4-ORARIO(0;0;0);SE(F4<E4;F4-ORARIO(0;0;0);0)));0)


Per quanto riguarda l'ultimo mio quesito (orari anche in col. E ed F?) è stato superato dall'istruzione appena riportata.

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

Re: EXCEL straordinari

Postdi massimo311273 » 12/09/08 16:27

Ciao Tribuno come puoi vedere dal file che ti ho inviatonella clla 23 i segna come ore lavorate 0 eppure e domenica e nelle 23c 23d di sono orari
Io dovrei conteggiare tutte le ore che intercorrono dalle 00:00 alle 24:00 di domenica il calcolo che adesso ottengo al sabato va bene va bene (vedi anche righe 29, 30)
massimo311273
Utente Junior
 
Post: 68
Iscritto il: 25/08/08 12:15
Località: Pavia

Re: EXCEL straordinari

Postdi Tribuno » 12/09/08 20:40

Ciao Massimo,
ho modificato la formula in M23
Codice: Seleziona tutto
=SE(GIORNO.SETTIMANA(A23;3)>4;SE(GIORNO.SETTIMANA(A23;3)=6;SE(D23<C23;SOMMA(ORARIO(0;0;0)-C23;C23>ORARIO(0;0;0));SE(F23<E23;SOMMA(D23-C23;ORARIO(0;0;0)-E23;E23>ORARIO(0;0;0));SOMMA(D23-C23;F23-E23)));SE(D23<C23;D23-ORARIO(0;0;0);SE(F23<E23;F23-ORARIO(0;0;0);SOMMA(D23-C23;F23-E23))));0)

Poi le trascini nelle altre celle di colonna M.
Ciao
Tribuno
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: EXCEL straordinari

Postdi massimo311273 » 17/09/08 23:52

Ciao Tribuno la formila che mi hai mandato ha migliorato le cose ma non era ancora perfetta perche mi contava il sabato come la domenica allora cio smanettato un po e ho ottenuto questa formula a me pare vada bene mi calcola sabato da dopo la mezzanotte (che poi e dom) e la domenica dale 00:00 alle 24:00 magari dacci un occhio
Adesso che guardo meglio un problemino me lo da cioe se in sabato metto un orario spezzato es. (23:00 C) (01:00 D) e (02:00 E) (08:00 F) mi calcola solo C D cioe il risultato e 1 e non 7 come dovrebbe essere
massimo311273
Utente Junior
 
Post: 68
Iscritto il: 25/08/08 12:15
Località: Pavia

Re: EXCEL straordinari

Postdi massimo311273 » 17/09/08 23:55

=SE(GIORNO.SETTIMANA(A4;3)>4;SE(GIORNO.SETTIMANA(A4;3)=6;SE(D4<C4;SOMMA(ORARIO(0;0;0)-C4;C4>ORARIO(0;0;0));SE(F4<E4;SOMMA(D4-C4;ORARIO(0;0;0)-E4;E4>ORARIO(0;0;0));SOMMA(D4-C4;F4-E4)));SE(D4<C4;D4-ORARIO(0;0;0);SE(F4<E4;F4-ORARIO(0;0;0);SOMMA(SE(D4>C4+(F4-E4);0)))));0)
massimo311273
Utente Junior
 
Post: 68
Iscritto il: 25/08/08 12:15
Località: Pavia

PrecedenteProssimo

Torna a Applicazioni Office Windows


Topic correlati a "EXCEL straordinari":


Chi c’è in linea

Visitano il forum: Nessuno e 25 ospiti