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

    felo
    Partecipante
      Sub CercaCodice()
      Dim trovato As Boolean
      Dim I As Long
      
      TextToFind = InputBox("Cosa vuoi cercare?")
      
      For I = 1 To Sheets.Count
          Set ricerca = Sheets(I).Cells.Find(TextToFind, LookIn:=xlValues, LookAT:=xlWhole)
              If Not ricerca Is Nothing Then
              Sheets(I).Select
              ricerca.Activate
              trovato = True
            
          End If
      Next I
          If trovato = False Then
              MsgBox "Codice non trovato!", vbExclamation, "ATTENZIONE!"
          End If
      End Sub
      

      ciao a tutti, trovato il valore mi deve colorare o evidenziare  la cella..

      Grazie

      #13095 Score: 1 | Risposta

      alfrimpa
      Partecipante
        24 pts

        Credo sia sufficiente dopo Sheets(I).Select inserire ricerca.Interior.ColorIndex = 6

        La variabile ricerca va dichiarata come range.

        Alfredo

        #13096 Score: 0 | Risposta

        felo
        Partecipante

          @alfrimpa il codice è giusto.

          Grazie

          #13103 Score: 1 | Risposta

          vecchio frac
          Senior Moderator
            238 pts
            Sheets(I).Cells.Find

            E' terribile, in termini di efficienza e performances. La ricerca su *tutte* le celle del foglio occupa risorse e tempo (16384 colonne x  1048576  righe dà un numero che neanche Excel riesce a maneggiare, sono oltre diciassette miliardi di celle 🙂 )

            For I = 1 To Sheets.Count

            E questa cosa la ripeti per un numero enne di fogli.

            Sheets(I).Select
            ricerca.Activate

            Se la ricerca ha esito positivo più volte, non ti accorgerai nemmeno delle prime ricerche positive, perchè lo sfarfallamento sarà continuo, e comunque alla fine avrai solo l'ultimo risultato positivo trovato. Del resto, se ti basta aver successo almeno una volta sola, puoi evitare un sacco di dispendio di energie e tempo uscendo dal ciclo For dopo che "trovato" è diventato True.

            #13110 Score: 0 | Risposta

            felo
            Partecipante

              ciao @vecchio frac, quindi si può optare per un'altra soluzione? grazie

              #13112 Score: 0 | Risposta

              vecchio frac
              Senior Moderator
                238 pts

                felo ha scritto:

                si può optare per un'altra soluzione?

                Sì, puoi limitare l'area di ricerca ai range che sai contenere il dato da cercare: in quali colonne va cercato? specificalo con Sheets(i).Range(...) invece che con Sheets(i).Cells.

                #13116 Score: 0 | Risposta

                felo
                Partecipante
                  sheets(I).range("A:A").Find(textofind,lookIn:=xlValues,LookAT:=xlWhole)
                  .......
                  

                  @vecchio frac, così?

                  #13117 Score: 0 | Risposta

                  vecchio frac
                  Senior Moderator
                    238 pts

                     perfetto!

                    E se le zone in cui cercare sono diverse da foglio a foglio puoi anche unirle così:

                    sheets(I).range("A:A,C:D,F:G").Find(textofind,lookIn:=xlValues,LookAT:=xlWhole)
                    #13132 Score: 0 | Risposta

                    felo
                    Partecipante

                      @vecchio frac ottimo e ancora grazie

                    Login Registrati
                    Stai vedendo 9 articoli - dal 1 a 9 (di 9 totali)
                    Rispondi a: colora cella
                    Gli allegati sono permessi solo ad utenti REGISTRATI
                    Le tue informazioni: