Restituire un valore nel caso in cui il testo di una cella contenga una parola di mio interesse.

Anonimo
2017-12-24T09:48:03+00:00

Buongiorno a tutti!

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. Spero di essere stato abbastanza chiaro, grazie.

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2017-12-24T12:44:08+00:00

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

La risposta è stata utile?

0 commenti Nessun commento

0 risposte aggiuntive

Ordina per: Più utili