Condividi tramite

Macro per ricerca parola in stringa di testo e restituzione valore

Anonimo
2019-05-12T09:21:49+00:00

Buongiorno,

non avendo alcuna familiarità con le macro, avrei bisogno del vostro aiuto per risolvere un problema di ricerca testo all'interno di una stringa e restituzione di un valore corrispondende.

Di seguito l'esempio con le istruzioni.

  • I campi colonna C richiedono di essere compilati con la categoria di prodotto presente in colonna F
  • la colonna B contiene l'elenco dei prodotti
  • la colonna F contiene l'elenco delle categorie
  • la colonna E contiene la chiave di testo che deve essere ricercata all'interno della colonna B, in base alla quale inserire la relativa categoria in colonna C
  • le colonne B, E ed F contengono valori noti
  • Il nr. di campi valorizzati in colonna B tendono ad aumentare, similmente quelli nelle colonne E ed F, anche se non in egual misura (la routine dev'essere in grado di cercare il dato pontenzialmente in tutte le righe delle colonne E ed F a prescindere dalla posizione del testo e dal fatto che sia scritto in maiuscolo o minuscolo).

L'obbiettivo è generare una macro che permetta di associare a ciascun prodotto la relativa categoria, cercando all'interno delle stringhe di testo della colonna B una o più parole contenute all'interno della colonna E e restituendo il relativo valore presente nella colonna F.

Grazie per l'aiuto che vorrete darmi.

Saluti

Alessio Foglia

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
2019-05-13T08:27:34+00:00

' esegue la scansione della colonna 2 e tramite la funzione associa le categorie

Sub Macro()

  Dim Riga As Long

  Dim shfoglio As Worksheet

  Set shfoglio = Worksheets("Foglio1")

  Riga = 3

  Do While shfoglio.Cells(Riga, 2) <> ""

    shfoglio.Cells(Riga, 3) = fnChiaveDiTesto(shfoglio, Riga)

    Riga = Riga + 1

  Loop

End Sub

Function fnChiaveDiTesto(shfoglio As Worksheet, Riga As Long) As String

  Dim RigaCdT As Long

  RigaCdT = 3

  Do While shfoglio.Cells(RigaCdT, 5) <> ""

    If InStr(UCase(shfoglio.Cells(Riga, 2)), UCase(shfoglio.Cells(RigaCdT, 5))) > 0 Then

      fnChiaveDiTesto = shfoglio.Cells(RigaCdT, 6)

      Exit Do

    End If

    RigaCdT = RigaCdT + 1

  Loop

End Function

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

3 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2019-05-13T19:16:36+00:00

    ' esegue la scansione della colonna 2 e tramite la funzione associa le categorie

    Sub Macro()

     

      Dim Riga As Long

      Dim shfoglio As Worksheet

     

      Set shfoglio = Worksheets("Foglio1")

     

      Riga = 3

      Do While shfoglio.Cells(Riga, 2) <> ""

        shfoglio.Cells(Riga, 3) = fnChiaveDiTesto(shfoglio, Riga)

        Riga = Riga + 1

      Loop

     

    End Sub

    Function fnChiaveDiTesto(shfoglio As Worksheet, Riga As Long) As String

     

      Dim RigaCdT As Long

     

      RigaCdT = 3

      Do While shfoglio.Cells(RigaCdT, 5) <> ""

        If InStr(UCase(shfoglio.Cells(Riga, 2)), UCase(shfoglio.Cells(RigaCdT, 5))) > 0 Then

          fnChiaveDiTesto = shfoglio.Cells(RigaCdT, 6)

          Exit Do

        End If

        RigaCdT = RigaCdT + 1

      Loop

       

    End Function

    Prefetto!

    Grazie mille per l'aiuto.

    Saluti

    Alessio

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2019-05-12T09:52:07+00:00

    Ciao,

    se ho ben capito la tua domanda, i valori nelle colonne B, E ed F li inserisco io.

    Ho necessità che la colonna C sia compilata in automatico sulla base dei valori esistenti.

    Grazie

    Alessio

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Gianfranco55 25,190 Punti di reputazione Moderatore volontario
    2019-05-12T09:42:08+00:00

    ciao

    ma una tabella con i prodotto/categoria

    l'hai fatta?

    come si fa ad associare un prodotto

    ad una determinata categoria?

    La risposta è stata utile?

    0 commenti Nessun commento