Excel Forum Per condividere esperienze su Microsoft Excel

Excel numeri uguali

  • Messaggi
  • OFFLINE
    saxson
    Post: 24
    Registrato il: 04/01/2004
    Città: TREVISO
    Utente Junior
    2007
    00 11/02/2022 10:50
    Ciao, chiedo agli esperti di formule, se possibile avere una formula che faccia quanto segue:

    Nel foglio 1 ci sono delle celle di colore diverso. Quello che vorrei io è riuscire a colorare le celle che abbiano almeno
    una coppia di numeri uguali.
    Faccio esempio: Nella griglia di colore giallo c'è una coppia 89-90 stessa coppia è presente nella griglia di colore grigio
    89-90 a questo punto dovrebbero essere colorate in rosso entrambe le coppie.
    Spero in un vostro aiuto e ringrazio
    Allego file
  • OFFLINE
    Marius44
    Post: 984
    Registrato il: 24/06/2015
    Città: CATANIA
    Età: 80
    Utente Senior
    Excel2019
    10 12/02/2022 23:29
    Ciao
    In base all'esempio postato non credo possa farsi con formule ma occorre VBA. Prova con la seguente macro (da assegnare ad un pulsante Modulo, non ActiveX)
    Sub Colore()
    Dim area1 As Range, area2 As Range
    Dim i As Long, j As Long, h As Long, k As Long
    Dim x1 As String, x2 As String, x3 As String
    Dim y1 As String, y2 As String, y3 As String
    Dim cn As Integer
    Set area1 = Range("B3:D7")
    Set area2 = Range("E3:G7")
    area1.Interior.ColorIndex = 6
    area2.Interior.ColorIndex = 15
    For i = 3 To 7
      For j = 2 To 3
        x1 = Cells(i, j) & Cells(i, j + 1)
        x2 = Cells(i, j) & Cells(i, j + 2)
        x3 = Cells(i, j + 1) & Cells(i, j + 2)
        For h = 3 To 7
          For k = 5 To 6
            y1 = Cells(h, k) & Cells(h, k + 1)
            y2 = Cells(h, k) & Cells(h, k + 2)
            y3 = Cells(h, k + 1) & Cells(h, k + 2)
            If x1 = y1 Then
              'quadro1 1a e 2a uguale a quadro2 1a e 2a
              Cells(i, j).Interior.ColorIndex = 3
              Cells(i, j + 1).Interior.ColorIndex = 3
              Cells(h, k).Interior.ColorIndex = 3
              Cells(h, k + 1).Interior.ColorIndex = 3
            ElseIf x1 = y2 Then
              'quadro1 1a e 2a uguale a quadro2 1a e 3a
              Cells(i, j).Interior.ColorIndex = 3
              Cells(i, j + 1).Interior.ColorIndex = 3
              Cells(h, k).Interior.ColorIndex = 3
              Cells(h, k + 2).Interior.ColorIndex = 3
            ElseIf x1 = y3 Then
              'quadro1 1a e 2a uguale a quadro2 2a e 3a
              Cells(i, j).Interior.ColorIndex = 3
              Cells(i, j + 1).Interior.ColorIndex = 3
              Cells(h, k + 1).Interior.ColorIndex = 3
              Cells(h, k + 2).Interior.ColorIndex = 3
            ElseIf x2 = y1 Then
              'quadro1 1a e 3a uguale a quadro 2 1a e 2a
              Cells(i, j).Interior.ColorIndex = 3
              Cells(i, j + 2).Interior.ColorIndex = 3
              Cells(h, k).Interior.ColorIndex = 3
              Cells(h, k + 1).Interior.ColorIndex = 3
            ElseIf x2 = y2 Then
              'quadro1 1a e 3a uguale quadro2 1a e 3a
              Cells(i, j).Interior.ColorIndex = 3
              Cells(i, j + 2).Interior.ColorIndex = 3
              Cells(h, k).Interior.ColorIndex = 3
              Cells(h, k + 2).Interior.ColorIndex = 3
            'quadro1 2a e 3a 0guale a quadro2 1a e 2a
            ElseIf x3 = y1 Then
              'quadro1 2a e 3a uguale a quadro2 1a e 2a
              Cells(i, j + 1).Interior.ColorIndex = 3
              Cells(i, j + 2).Interior.ColorIndex = 3
              Cells(h, k).Interior.ColorIndex = 3
              Cells(h, k + 1).Interior.ColorIndex = 3
            ElseIf x3 = y3 Then
              'quadro1 2a e 3a uguale a quadro2 2a e 3a
              Cells(i, j + 1).Interior.ColorIndex = 3
              Cells(i, j + 2).Interior.ColorIndex = 3
              Cells(h, k + 1).Interior.ColorIndex = 3
              Cells(h, k + 2).Interior.ColorIndex = 3
            End If
          Next k
        Next h
      Next j
    Next i
    End Sub
    
    


    Fai sapere. Ciao,
    Mario
  • OFFLINE
    saxson
    Post: 24
    Registrato il: 04/01/2004
    Città: TREVISO
    Utente Junior
    2007
    00 13/02/2022 11:19
    Ciao Marius44, Ok provo
    Grazie infinite
  • OFFLINE
    saxson
    Post: 25
    Registrato il: 04/01/2004
    Città: TREVISO
    Utente Junior
    2007
    00 13/02/2022 11:33
    Ho creato la macro con il tuo vba
    Ti allego il file
    ho creato il tasto, ma non vedo la colorazione, es. dell'ambo 63-68
    [Modificato da saxson 13/02/2022 11:34]
  • OFFLINE
    saxson
    Post: 26
    Registrato il: 04/01/2004
    Città: TREVISO
    Utente Junior
    2007
    00 13/02/2022 15:05
    Dopo vari tentativi, sembra funzionare, però c'è un problemino
    evidenzia l'ambo ripetuto solo se nella stessa posizione, ti faccio un esempio.
    l'ambo ripetuto 1-2 è nella stessa posizione, come anche l'ambo 45-46.
    Mentre l'ambo 87-86 non viene evidenziato perchè il primo è inserito 87-86 mentre l'altro 86-87.
    Ti allego il file.
    Grazie comunque della gentilezza.
  • OFFLINE
    Marius44
    Post: 985
    Registrato il: 24/06/2015
    Città: CATANIA
    Età: 80
    Utente Senior
    Excel2019
    00 13/02/2022 15:11
    Ciao
    Se ho capito bene devi "raddoppiare" le condizioni (cioè gli If) scambiando la posizione.

    Ciao,
    Mario
  • OFFLINE
    saxson
    Post: 27
    Registrato il: 04/01/2004
    Città: TREVISO
    Utente Junior
    2007
    00 13/02/2022 15:25
    non si considera la posizione ma la doppia coppia di numeri uguali.
  • OFFLINE
    saxson
    Post: 28
    Registrato il: 04/01/2004
    Città: TREVISO
    Utente Junior
    2007
    00 13/02/2022 16:24
    scusa Marius44, come si fa a raddoppiare gli if ?
  • OFFLINE
    Marius44
    Post: 986
    Registrato il: 24/06/2015
    Città: CATANIA
    Età: 80
    Utente Senior
    Excel2019
    10 13/02/2022 21:27
    Ciao
    Sostituisci la precedente con questa
    Option Explicit
    
    Sub Ambo()
    Dim i As Long, j As Long
    Dim rig1 As Range, rig2 As Range, c As Range, x As Range, area1 As Range, area2 As Range
    Dim n As Integer, h As Integer, a As Integer, clr As Integer
    Dim pos(1 To 4) As String
    Set area1 = Range("B3:D7")
    Set area2 = Range("E3:G7")
    area1.Interior.ColorIndex = 19
    area2.Interior.ColorIndex = 15
    clr = 2
    For i = 3 To 7
      Set rig1 = Range("B" & i & ":D" & i)
      For j = 3 To 7
        Set rig2 = Range("E" & j & ":G" & j)
        n = 0: a = 0
        For Each c In rig1
          For Each x In rig2
            If c.Value = x.Value Then
              n = n + 1
              a = a + 1
              pos(a) = c.Address
              a = a + 1
              pos(a) = x.Address
              If n = 2 Then
                clr = clr + 1
                For h = 1 To 4
                  Range(pos(h)).Interior.ColorIndex = clr
                Next h
              End If
            End If
          Next
        Next
      Next j
    Next i
    End Sub
    


    Ciao,
    Mario
  • OFFLINE
    saxson
    Post: 29
    Registrato il: 04/01/2004
    Città: TREVISO
    Utente Junior
    2007
    00 14/02/2022 01:04
    Ciao Mario, direi ottimo
    Grazie infinite
  • OFFLINE
    saxson
    Post: 30
    Registrato il: 04/01/2004
    Città: TREVISO
    Utente Junior
    2007
    00 15/02/2022 11:14
    Ciao Mario, vorrei se possibile che questo tuo listato
    in origine operava nelle celle B3:D7 e E3:G7.

    Vorrei che Potesse fare la stessa cosa per altre celle creando poi un solo tasto.
    le celle da coinvolgere nel tuo listato sono :
    B15:D19 e E15:G19
    I15:K19 e L15:N19
    O15:Q19 e R15:T19
    U15:W19 e X15:Z19
    AA15:AC19 e AD15:AF19
    AG15:AI19 e AJ15:AL19
    AM15:AO19 e AP15:AR19
    AS15:AU19 e AV15:AX19
    AY15:BA19 e BB15:BD19
    BE15:BG19 e BH15:Bj19
    BK15:BM19 e BN15:BP19
    Grazie infinite qualunque sia la tua risposta.


    [Modificato da saxson 15/02/2022 11:17]
  • OFFLINE
    Marius44
    Post: 987
    Registrato il: 24/06/2015
    Città: CATANIA
    Età: 80
    Utente Senior
    Excel2019
    00 16/02/2022 08:58
    Ciao
    Non so quale è il tuo gradi conoscenza di VBA.
    Ti avverto, però, che Excel e VBA non possono andare a "tentoni". Occorre sapere PRIMA quale è l'obiettivo e, di conseguenza, tentare le strade possibili per raggiungere il risultato. Se si cambia, specie in corsa, l'obiettivo, il castello costruito crolla e bisogna costruirne uno nuovo.

    Tutto ciò premesso, nella mia ultima macro nota le righe n. 14 e n. 16. Come vedi "settano" due intervalli e poi combinano le varie celle dell'uno con le diverse celle dell'altro. Prova tu a sostituire uno degli intervalli con quel po' po' di roba che hai detto! Mi sembra qualcosa fuori dall'ordinario.

    Aggiungo che sono pronto ad aiutare chi ha bisogno ma non sono disponibile a "fare" un lavoro di sana pianta per altri. Per questo ci sono fior di professionisti che, pagandoli, fanno tutto quello che vuoi.

    Ciao,
    Mario
  • OFFLINE
    saxson
    Post: 31
    Registrato il: 04/01/2004
    Città: TREVISO
    Utente Junior
    2007
    00 16/02/2022 09:52
    Ciao, ti ringrazio comunque .
    Proverò a modificare le due righe, come mi hai indicato tu.
  • OFFLINE
    saxson
    Post: 32
    Registrato il: 04/01/2004
    Città: TREVISO
    Utente Junior
    2007
    00 16/02/2022 12:00
    Ciao Mario, volevo dirti che nonostante la mia scarsissima preparazione nella programmazione.
    Grazie al tuo suggerimento sono riuscito a fare quello che mi serviva.
    In pratica ho copiato ed incollato x 11 volte il tuo Vba modificando le righe che tu gentilmente mi hai detto, creando un tasto per ogni Vba.
    Grazie ancora
    [Modificato da saxson 16/02/2022 12:01]
  • 15MediaObject5,00214 2