Trova parola in cella da elenco se esiste parola



  • Trova parola in cella da elenco (se esiste parola)
    di daveacad (utente non iscritto) data: 20/04/2017 15:24:23

    Ciao a tutti.
    Devo trovare una parola all'interno di una cella e scrivere la parola trovate, se esite, in un'altra cella. Con le funzioni STRINGA.ESTRAI & TROVA il problema si risolve.
    Il problema si pone quando devo trovare una parola presa da un elenco di parole. Provo a spiegarmi meglio.

    Ho un elenco di celle con la descrizione estesa e di dettaglio di prodotti con i relativi Marchi (nome azienda produttrice). Voglio poter intercettare le celle che contengono Marchio1 oppure Marchio2, Marchio3, Marchio4, ..., Marchio(n) e questo prendendoli da un elenco a parte dove sono elencati questi Marchi. Naturalmente, quando viene trovato il Marchio(n) attinto dall'elenco dei Marchi, voglio che venga scritto il Marchio(n) - se presente - in una cella vuota.

    Ho pensato, pur non sapendo come fare operativamente, di sfruttare le possibilità degli elenchi a discesa e convalida dati.

    Avete qualche idea per risolvere il mio problema?
    Grazie,
    daveacad



  • di alfrimpa data: 20/04/2017 15:40:02

    Ciao dave

    Allega un file di esempio con i dati ed il risultato desiderato inserito a mano.

    Alfredo





  • di daveacad (utente non iscritto) data: 20/04/2017 17:22:35

    Ciao Alfredo,
    inserito file esplicativo.
    d.



  • di patel data: 21/04/2017 08:50:43

    ti va bene una macro attivabile da pulsante ?





  • di Luca73 data: 21/04/2017 09:26:07

    Ciao io Propongo una function
    Vedi Sotto

    Modificata


     
     
    Option Explicit
    
    Public Function ListaParole(FraseInput As String, RangeParoleDaCercare As Range) As String
    Dim CellaW
    
    ListaParole = ""
    For Each CellaW In RangeParoleDaCercare
        If ((CellaW.Text <> "") And (InStr(FraseInput, CellaW.Text) > 0) And Not (IsNull(InStr(FraseInput, CellaW.Text)))) Then
            If ListaParole <> "" Then
                ListaParole = ListaParole & "; " & CellaW.Text
            Else
                ListaParole = CellaW.Text
            End If
        End If
    Next
    
    End Function
    






  • di daveacad (utente non iscritto) data: 21/04/2017 15:43:16

    Ciao luca73,
    grazie per il codice.

    Come si usa? Ho provato ALT F11 e inserito un modulo, ma non poi non riesco a proseguire.
    D.



  • di alfrimpa data: 21/04/2017 15:54:33

    Devi copiare il codice nel modulo e poi sul foglio in una cella scrivere

    =ListaParole(FraseInput;RangeParoleDaCercare)

    Alfredo





  • di daveacad (utente non iscritto) data: 21/04/2017 16:22:22

    Ciao Luca73,
    ho provato, senza risultato



    Vedi allegato.

    Tnx.



  • di daveacad (utente non iscritto) data: 27/04/2017 10:51:08

    Ciao a tutti,
    gentilmente qualche esperto riesce a verificare come mai non mi funziona il codice VBA che abete proposta? (vedi files allegati).

    Grazie,
    d.



  • di Luca73 data: 27/04/2017 11:38:21

    Nella cella D3 devi inserire la formula come
    =ListaParole(B3;ListaParole!$A$1:$A$12)
    e poi copi in basso

    Ciao
    Luca




  • Trova parola in cella da elenco (se esiste parola)
    di daveacad data: 02/05/2017 12:09:13

    Ok. Funziona.

    Grazie!