On 26 Nov, 12:35, "LucaVa" <
lucaval...@tin.it> wrote:
> "eliano" <
falinieli...@virgilio.it> ha scritto nel messaggionews:66b5cac5-7ff1-44d2...@a16g2000yqk.googlegroups.com...
> On 21 Nov, 21:45, "LucaVa" <
lucaval...@tin.it> wrote:
>
> > Salve,
> > avrei bisogno di un aiuto.
> > N"el foglio "Dipendenti" ho in colonna A tutti i nomi e cognomi dei
> > dipendenti, mentre in colonna D la data di cessazione del rapporto di
> > lavoro.
> > Nel foglio "Orari" dovrei creare una cella con un elenco a discesa che
> > visualizzi tutti i dipendenti del foglio "Dipendenti" che abbiano la
> > corrispondente cella in colonna D vuota (cioè senza una data di fine
> > rapporto e quindi attualmente in servizio)
> > E' possibile avere l'elenco senza celle vuote?
> > Grazie mille a chi vorrà darmi una mano.
>
> > Saluti.
> > Luca
>
> Visto che a Roby continua a fare schifo il Vba, una soluzione
> artigianale "che non fa mai male").:-))
>
> In un modulo standard, ad esempio Modulo1, in un file di prova copia
> la seguente macro:
>
> Public Sub prova()
> Dim sh1 As Worksheet, sh2 As Worksheet, R As Long
> Dim rng As Range, dip As Object, UR As Long
> Set sh1 = ThisWorkbook.Worksheets("Dipendenti")
> Set sh2 = ThisWorkbook.Worksheets("Orari")
> UR = sh1.Cells(Rows.Count, "A").End(xlUp).Row
> Set rng = sh1.Range("A2:A" & UR)
> sh2.Range("A1").Value = sh1.Range("A1").Value
> R = 2
> For Each dip In rng
> If dip.Offset(0, 3).Value = "" Then
> sh2.Cells(R, 1).Value = dip.Value
> R = R + 1
> Else
> End If
> Next
> End Sub
>
> Il file è composto da due fogli:
> il foglio Dipendenti che contiene a Colonna A i nominativi dei
> dipendenti ed in colonna D le date di dimissioni o di licenziamento
> il foglio Orari che conterrà a colonna A i nominativi dei dipendenti
> in forza alla data.
>
> Facci sapere
> Eliano
>
> Ciao Eliano,
> scusa il ritardo, ho avuto grossi problemi.
> Ho provato il tuo codice, ma non risponde alle mie esigenze.
> Infatti mi crea un elenco e non un elenco a discesa in una cella.
>
> Questa mattina, girando sul NG, ho trovato questo codice postato da Fernando
> Cinquegani nel 2004
>
>
https://groups.google.com/group/microsoft.public.it.office.excel/brow...
>
> Funziona perfettamente e mi crea l'elenco a discesa che volevo io.
> Solo che non è stato fatto per filtrare i dati in base alle celle vuote
> presenti su un'altra colonna.
>
> Io non saprei proprio come muovermi....
> Tu sei capace di adattarlo alle mie esigenze?
>
> Grazie comunque per esserti interessato al mio problema.
>
> Saluti.
> Luca
Ciao Luca.
Mi dispiace se hai avuto problemi, ma adesso speriamo che si siano
risolti.
Volutamente non ho inserito nella macro l'istruzione per il filtro
automatico, dal momento che, avendo ottenuto una lista "pulita",
potevi attivare se e quando necessario semplicemente così:
Nel Foglio "Orari" che in colonna A contiene la lista dei dipendenti,
seleziona la cella A1, quindi clicca su Dati-->Filtro-->Filtro
Automatico.
Ma nel caso queste operazioni risultassero superiori alle tue
forze :-)) aggiungi alla macro, prima di End Sub questa istruzione:
Sheets("Orari").Range("A1").AutoFilter
Cordialmente
Eliano