Excel e gli applicativi Microsoft Office Formula per Formattazione Condizionale

Login Registrati
Stai vedendo 7 articoli - dal 1 a 7 (di 7 totali)
  • Autore
    Articoli
  • #7043 Score: 0 | Risposta

    Pinil
    Partecipante

      Cari amici del Forum, buongiorno.

      Chiedo il Vs. prezioso aiuto per la mia seguente necessità lavorativa.

      Ho bisogno di una formula da inserire nella Formattazione Condizionale  (oppure una routin da utilizzare come macro, per me è indifferente) che mi consenta di colorare di rosso la cella dei cognomi  se in una o più celle facenti parte della stessa riga sia contenuta una determinata stringa.

      Esempio:

           A                      B                                   C                                          D

      ROSSI             pippo                         paperino                     aaa PLUTO bbb

      VERDI            topolino                PLUTO ddd  xxx                       pippo

      BIANCHI      topolino                        pippo                               paperino

      Se la mia stringa di ricerca è, per esempio, PLUTO, la macro (o formattazione condizionale) deve colorarmi di rosso le celle della colonna "A" che contengono i nomi ROSSI e VERDI

      La difficoltà nasce dal fatto che la stringa di ricerca (nella fattispecie "PLUTO") potrebbe non essere l'unica parola della cella, come volutamente esposto nell'esempio. 

      Grazie anticipatamente a chi vorrà aiutarmi

       

      Pinil

      #7045 Score: 0 | Risposta

      Luca73
      Partecipante
        58 pts

        Ciao Quante sono le colonne da analizzare?

         

        #7047 Score: 0 | Risposta

        vecchio frac
        Senior Moderator
          272 pts

          Pinil wrote:potrebbe non essere l'unica parola della cella

          Altrimenti detto: la stringa di ricerca può essere parzialmente contenuta nella cella di destinazione.

          #7048 Score: 0 | Risposta

          vecchio frac
          Senior Moderator
            272 pts

            Io farei una piccola routine in VBA che unisce le celle delle righe del range, con InStr cerca la corrispondenza, se la trova, bingo.

            #7049 Score: 0 | Risposta

            Luca73
            Partecipante
              58 pts

              Ciao 

              Cos' su due piedi pensando a poche colonne

              avrei pensato a qualcosa del genere

              =SE.ERRORE(RICERCA($E$1;CONCATENA(B3;"$%&%$";C3;"$%&%$";D3;"$%&%$";E3;"$%&%$";F3);1);0)

              Per Colorare la cella A3 con la parola contenuta in E1 e analizzando le colonne B,C,D,E,ed F.

              Nel Concatena avevo pensato tra ve varie celle di inserire una stringa strana ($%&%$, ma potrebbe essere un punto e virgola) per evitare che per esempio se cerchi "PLUTO" e la cella D3 finisce con PLU e quella successiva comincia con TO allora la formula trovava un riscontro.

               Ricerca non fa differenza tra maiuscole e minuscole, se invece ti interessa anche quello bisogna usare trova.

              Sicuramente non vale la pena se bisogna concatenare più di 5 o 6 celle....

              Ciao

              Luca

               

              #7050 Score: 0 | Risposta

              vecchio frac
              Senior Moderator
                272 pts

                La mia proposta prevede una piccola function UDF da inserire nell'ultima colonna a destra del range da esaminare (magari si può poi nascondere), tirandola giù per tutte le righe interessate restituisce vero o falso, poi una semplice formattazione condizionale in prima cella con test su tale cella nascosta risolve il problema.

                Option Explicit
                
                Function search_instr(r As Range, search As String)
                Dim v As Variant, i As Long
                
                    v = Join(Application.Transpose(Application.Transpose(r)))
                    v = LCase(v)
                    search = LCase(search)
                    i = Len(Replace(v, search, search & vbNullChar)) - Len(v)
                    search_instr = (i > 0)
                
                End Function

                Vedi esempio allegato.

                Allegati:
                You must be logged in to view attached files.
                #7053 Score: 0 | Risposta

                Pinil
                Partecipante

                  Nel mio quesito iniziale non ho specificato (e mi scuso) che il foglio potrebbe contenere anche svariate decine di colonne, motivo per cui non sarebbe praticabile la soluzione prospettata da Luca, circa il concatenamento delle celle. Viepiù, il numero delle colonne non è mai fisso, ma varia in funzione della quantità di  informazioni che il programma originario esporta in Excel.

                  Detto questo, l'idea di "Vecchio Frac", mi sembra la più consona alla soluzione del problema.

                  Infatti l'ho testata su un report di prova di 20 colonne e 50 righe, e funziona. Proverò a farla girare sui report effettivi del lavoro, ma non ho dubbi circa la perfetta riuscita.

                  Ad ogni buon conto, grazie a Voi, considero risolto il mio quesito

                  Ho tanto da imparare da Voi esperti

                  Grazie tante e a presto

                  Pinil

                Login Registrati
                Stai vedendo 7 articoli - dal 1 a 7 (di 7 totali)
                Rispondi a: Formula per Formattazione Condizionale
                Gli allegati sono permessi solo ad utenti REGISTRATI
                Le tue informazioni: