Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ciao Giuseppe,
Mi trovo ad affrontare il seguente problema: ho una colonna A in cui sono presenti i nomi dei lavoratori, una colonna B con i lavori che svolgono (ogni lavoratore può avere più mansioni riportate nella stessa cella) e in C ho una colonna in cui devo mettere se i lavoratori devono fare la visita oculistica.
La visita oculistica viene fatta solo da alcuni lavoratori, in base alla funzione che svolgono.
Faccio un esempio:
il barista e il carpentiere devono fare la visita. Lo spazino no:
Ruolo | Visita oculistica
barista - spazino | si
barista - carpentiere | si
spazino | no
Ora io ho semplificato il tutto, ma i lavori sono circa 20 e possono combinarsi fra loro in maniera del tutto casuale.
Prova la seguente UDF (funzione utente):
- Alt+F11 per aprire l'editor di VBA
- Alt+IM per inserire un nuovo modulo di codice
- Nel nuovo modulo vuoto, incolla il seguente codice:
'=========>>
Option Explicit
'--------->>
Public Function Occulista(rCell) As Boolean
Dim arrSplit As Variant, arrRuoli As Variant
Dim Res As Variant
Dim sStr As String
Dim i As Long
Const sRuoli As String = _
"Carpentiere,Elettricista,Barista," _
& "Stuccatore,Idraulico" '<<=== Modifica
arrRuoli = Split(sRuoli, ",")
arrSplit = Split(rCell.Value, "-")
For i = LBound(arrSplit) To UBound(arrSplit)
sStr = Trim(arrSplit(i))
Res = Application.Match(sStr, arrRuoli, 0)
If Not IsError(Res) Then
Occulista = True
Exit Function
End If
Next i
End Function
'<<=========
- Alt+Q per chiudere l'editor di VBA e tornare a Excel
- Salva il file con l’estensione xlsm
Questa UDF può essere utilizzata come una funzione nativa di Excel e, quindi, ad esempio:
Potresti scaricare il mio file di prova Giuseppe20171224.xlsm
===
Regards,
Norman