Login Registrati
Stai vedendo 9 articoli - dal 1 a 9 (di 9 totali)
  • Autore
    Articoli
  • #13094 Risposta
    felo
    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 Risposta
      alfrimpa
      alfrimpa
      Partecipante
        5 pts

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

        La variabile ricerca va dichiarata come range.

        Alfredo

        felo
        #13096 Risposta
        felo
        felo
        Partecipante

          @alfrimpa il codice è giusto.

          Grazie

          #13103 Risposta

          vecchio frac
          Senior Moderator
          • Sfida #1
            135 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.

            felo
            #13110 Risposta
            felo
            felo
            Partecipante

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

              #13112 Risposta

              vecchio frac
              Senior Moderator
              • Sfida #1
                135 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 Risposta
                felo
                felo
                Partecipante
                  sheets(I).range("A:A").Find(textofind,lookIn:=xlValues,LookAT:=xlWhole)
                  .......
                  

                  @vecchio frac, così?

                  #13117 Risposta

                  vecchio frac
                  Senior Moderator
                  • Sfida #1
                    135 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 Risposta
                    felo
                    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:



                    vecchio frac - 1916 risposte

                    albatros54
                    albatros54 - 610 risposte

                    patel
                    patel - 450 risposte

                    Marius44
                    Marius44 - 390 risposte

                    Luca73
                    Luca73 - 356 risposte