Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

nome lavoratore in date specifiche (festivita)

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

nome lavoratore in date specifiche (festivita)

Postdi raimea » 24/05/20 10:57

ciao
tramite una macro vorrei prelevare il nome dei dipendenti
che hanno lavorato in giornate festive.

il foglio da compilare e' feste
il nome del foglio in cui andare a cercare e' indicato in D4 (calendario)
la data da cui partire la ricerca indicata in D3

la data da cercare e' indicata da riga E5
per la stessa festivita ci possono essere piu dipendenti di turno.

nella casella del dipendente di turno riportare la lettera o il numero
trovato nel fgl calendario , di solito sempre la lettera B

il nome del dipendente riportalo da col D6

vi allego il file

https://www.dropbox.com/s/f1hxiwjbrddh4la/festivita.rar?dl=0

grazie
http://www.lelugarine.eu
S.O. Seven7, Excell 2010
Avatar utente
raimea
Utente Senior
 
Post: 1232
Iscritto il: 11/02/10 07:33
Località: lago

Sponsor
 

Re: nome lavoratore in date specifiche (festivita)

Postdi raimea » 24/05/20 20:26

azz..... :-? :-?

ho dimenticato di specificare cosa va cercato in fgl calendario ?
riferito alla data indicata in fgl feste !!!!

vannno ricercati e riportati i cod B 1 2
tutto il resto non deve essere considerato x le date indicate

ciao
http://www.lelugarine.eu
S.O. Seven7, Excell 2010
Avatar utente
raimea
Utente Senior
 
Post: 1232
Iscritto il: 11/02/10 07:33
Località: lago

Re: nome lavoratore in date specifiche (festivita)

Postdi Anthony47 » 25/05/20 02:16

Se ho capito allora potrebbe aiutare questa macro:
Codice: Seleziona tutto
Sub CkHolid()
Dim HDArr, I As Long, mHoly, llFor
Dim LastW As Long, TWsh As Worksheet
'
llFor = Array("B", "1", "2")                    '<<< I Turni festivi da cercare
'
Sheets("Feste").Select
Set TWsh = Sheets(Range("D4").Value)
'
Range("D6").Resize(200, 30).ClearContents       '<<< ??? azzera l'area dei risultati??
'
LastW = TWsh.Cells(Rows.Count, 1).End(xlUp).Row
HDArr = Range(Range("E5"), Range("E5").End(xlToRight)).Value
For I = 1 To UBound(HDArr, 2)
    mHoly = Application.Match(CLng(HDArr(1, I)), TWsh.Range("A2").Resize(1, 1000), False)
    If Not IsError(mHoly) Then
        For j = 3 To LastW
'        Debug.Print TWsh.Cells(j, mHoly).Address
            If Not IsError(Application.Match(TWsh.Cells(j, mHoly).Value, llFor, False)) Then
                mynext = Application.Match(TWsh.Cells(j, "D").Value, Range("D1").Resize(200, 1), False)
                If IsError(mynext) Then
                    mynext = Cells(Rows.Count, "D").End(xlUp).Row + 1
                    Cells(mynext, "D").Value = TWsh.Cells(j, "D").Value
                End If
                Cells(mynext, 5 + I - 1).Value = TWsh.Cells(j, mHoly).Value
            End If
        Next j
    End If
Next I
MsgBox ("Completato...")
End Sub


Va messa in un modulo standard del vba.
Al momento, la macro azzera l'area dei risultati prima di cominciare; se questo non va bene allora cerca ed elimina la riga marcata '<<< ???

Fai sapere...
Avatar utente
Anthony47
Moderatore
 
Post: 17003
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: nome lavoratore in date specifiche (festivita)

Postdi raimea » 25/05/20 06:16

ciao
e' tutto ok
fa proprio cio che chiedevo

grazie
http://www.lelugarine.eu
S.O. Seven7, Excell 2010
Avatar utente
raimea
Utente Senior
 
Post: 1232
Iscritto il: 11/02/10 07:33
Località: lago

Re: nome lavoratore in date specifiche (festivita)

Postdi raimea » 25/05/20 06:49

ciao
ho trovato un piccolo bug

se trova il cod LL
SOLO nella data del 31-12-19 nel fogl calendario
riferito alla data da cercare in fgl feste

ne preleva il nome del dipendente
e lascia la casella vuota non riporta nulla in fgl feste

Immagine

il codice LL non va considerato
non va riportato il nome del dipendente

grazie

ciao
http://www.lelugarine.eu
S.O. Seven7, Excell 2010
Avatar utente
raimea
Utente Senior
 
Post: 1232
Iscritto il: 11/02/10 07:33
Località: lago

Re: nome lavoratore in date specifiche (festivita)

Postdi Anthony47 » 25/05/20 08:30

Non capisco quel che dici...
La macro compila lo specchietto per TUTTE le festivita' presenti da E5 verso destra; quindi quei nominativi sono presenti per le altre date precedenti. Forse vuoi che vengano esaminate solo le date a partire da una data specifica, es quella in D3; nel qual caso devi sostituire If Not IsError(mHoly) Then con
Codice: Seleziona tutto
If Not IsError(mHoly) And HDArr(1, I) >= Range("D3").Value Then

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

Re: nome lavoratore in date specifiche (festivita)

Postdi raimea » 25/05/20 18:10

ciao
SI ora tutto ok

contralla dalla data scritta in D3 in avanti

grazie
http://www.lelugarine.eu
S.O. Seven7, Excell 2010
Avatar utente
raimea
Utente Senior
 
Post: 1232
Iscritto il: 11/02/10 07:33
Località: lago

Re: nome lavoratore in date specifiche (festivita)

Postdi raimea » 03/06/20 17:13

ciao
sto facendo girare questa macro su piu file/ fogli
con stesse impostazioni , ma in questo file mi va in errore

la macro >>> CkHolid

pur prelevando cio che cerco poi si blocca

Immagine


vi allego il file

https://www.dropbox.com/s/41hapszduvuotaj/festivi.rar?dl=0

grazie
ciao
http://www.lelugarine.eu
S.O. Seven7, Excell 2010
Avatar utente
raimea
Utente Senior
 
Post: 1232
Iscritto il: 11/02/10 07:33
Località: lago

Re: nome lavoratore in date specifiche (festivita)

Postdi Anthony47 » 03/06/20 18:59

L'attuale Sub CkHolid va in crisi quando l'elenco contiene una sola festivita'; modifica questa parte della macro come segue:
Codice: Seleziona tutto
LastW = TWsh.Cells(Rows.Count, 1).End(xlUp).Row
HDArr = Range(Range("E5"), Range("AZ5").End(xlToRight)).Value       'Riga Modificata
For I = 1 To UBound(HDArr, 2)
    If HDArr(1, I) = "" Then Exit For                               'Riga aggiunta
    mHoly = Application.Match(CLng(HDArr(1, I)), TWsh.Range("A2").Resize(1, 1000), False)

Questa modifica gestisce da 0 fino a 50 festivita'

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

Re: nome lavoratore in date specifiche (festivita)

Postdi raimea » 03/06/20 19:48

ciao
correzione fatta
tutto ok

grazie
http://www.lelugarine.eu
S.O. Seven7, Excell 2010
Avatar utente
raimea
Utente Senior
 
Post: 1232
Iscritto il: 11/02/10 07:33
Località: lago


Torna a Applicazioni Office Windows


Topic correlati a "nome lavoratore in date specifiche (festivita)":


Chi c’è in linea

Visitano il forum: Nessuno e 12 ospiti