Sviluppare funzionalita su Microsoft Office con VBA formattazione condizionale con VBA

LoginRegistrati
Stai vedendo 7 articoli - dal 1 a 7 (di 7 totali)
  • Autore
    Articoli
  • #23808 Risposta

    barross75
    Partecipante

      Salve a tutti,

      sono nuovo del forum ed anche un tantino imbranato

      tuttavia volevo chiedervi se, in alternativa alla formattazione condizionale che notoriamente rallenta parecchio la fluidità d'uso dei file excel voluminosi, è possibile inserire un codice VBA per colorare in rosso il testo di eventuali valori duplicati confrontando i dati in più colonne della stessa tabella ?

      nella fattispecie, considerando che il foglio di lavoro originale (Contiene circa 50.000 righe) si chiama "ANAGRAFICA" e che la relativa tabella ove risiedono i dati da verificare è la "TABELLA2", nello specifico il codice VBA dovrebbe colorare in rosso il testo dei:

      valori duplicati all'interno della singola colonna denominata "RAGIONE_SOCIALE"

      valori duplicati all'interno delle colonne denominate "TEL1" e "TEL2" (rilevando sia eventuali doppioni all'interno della stessa singola colonna che eventuali valori presenti sia nella colonna "TEL1" che nella colonna "TEL2")

      valori duplicati all'interno delle colonne denominate "MAIL1" e "MAIL2" e "MAIL_REFERETNTE" (rilevando sia eventuali doppioni all'interno della stessa singola colonna che eventuali valori presenti 2 delle 3 colonne indicate)

      valori duplicati all'interno delle colonne denominate "CEL1" e "CEL2" e "CEL_REFERETNTE" (rilevando sia eventuali doppioni all'interno della stessa singola colonna che eventuali valori presenti 2 delle 3 colonne indicate)

      allego un file di esempio che presenta la stessa struttura del file originale

      Allegati:
      You must be logged in to view attached files.
      #23810 Risposta
      PMC77
      PMC77
      Partecipante
        6 pts

        Ciao BarRoss75!

        Il negozio di software è temporaneamente chiuso causa Coronavirus!

        Scherzi a parte, è ovvio che si possa fare con una macro che richiami da un bottone (per esempio), ma tu hai già abbozzato qualcosa che svolge la funzione desiderata?

        Paolo

        #23811 Risposta

        barross75
        Partecipante

          Purtroppo no perché le mie conoscenze del VBA sono davvero misere. 

          Il mio file originale contiene la classifica formattazione condizionale ma, per tale motivo, adesso è diventato parecchio lento.

          Ho cercato di gestire tale esigenza con lo strumento convalida dati ma il risultato non è stato soddisfacente perché quando inserisco i dati tramite copia/incolla lo strumento convalida dati smette di funzionare 

          #23813 Risposta
          Luca73
          Luca73
          Partecipante
            24 pts

            Ma ti serve in continuo oppure una volta per tutte?

            Nel secondo caso io userei un po' di formule (forse bastano dei conta se.....) su colonne di appoggio che poi vengono eliminate.

            Ciao

            Luca

            #23814 Risposta

            barross75
            Partecipante

              trattandosi di un database clienti mi occorre che la verifica venga fatta ogni qual volta viene inserito oppure modificato un contatto

              #23818 Risposta
              Luca73
              Luca73
              Partecipante
                24 pts

                Ciao,

                ho buttato giù una Una bozza iniziale per un singolo caso

                Lascio a te il compito di capirla, modificarla e adattarla agli altri cai che hai elencato.

                Rimane inoltre un buono spunto per approfondire qualce istruzione su VBA

                 

                Sub CercaDoppioniEColora()
                Dim CellaW1
                Dim CellaW2
                For Each CellaW1 In Range("Tabella1[[TEL1]:[TEL.2]]")
                    For Each CellaW2 In Range("Tabella1[[TEL1]:[TEL.2]]")
                        If CellaW1.Address <> CellaW2.Address Then
                            If CellaW1 = CellaW2 Then
                                CellaW1.Interior.Color = 10066431
                                CellaW2.Interior.Color = 10066431
                            End If
                        End If
                    Next
                Next
                End Sub
                
                #23819 Risposta
                patel
                patel
                Moderatore
                  37 pts

                  secondo me risulterà più rapida la formattazione condizionale

                LoginRegistrati
                Stai vedendo 7 articoli - dal 1 a 7 (di 7 totali)
                Rispondi a: formattazione condizionale con VBA
                Gli allegati sono permessi solo ad utenti REGISTRATI
                Le tue informazioni:



                vecchio frac - 2750 risposte

                albatros54
                albatros54 - 940 risposte

                patel
                patel - 817 risposte

                Marius44
                Marius44 - 708 risposte

                Luca73
                Luca73 - 624 risposte