Condividi:        

Excel o macro (solita formula)

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Re: Excel o macro (solita formula)

Postdi Flash30005 » 04/02/13 10:02

Il problema di assegnare dei colori tramite macro sta proprio nell'impossibilità di scelta del colore a parità di valore
perché, per differenziare il colore bisogna escogitare un sistema che, alla fine, potrebbe essere troppo scuro rendendo così il carattere illegibile comunque fai tu delle prove variando l'algoritmo (evidenziato nella macro)
Codice: Seleziona tutto
Sub Colora()
UR = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
For RR = 4 To UR Step 3
Range("C" & RR & ":U" & RR).Interior.ColorIndex = xlNone
Next RR
For CC = 3 To 21 Step 2
For RR = 4 To UR Step 3
Ambo = Cells(RR, CC).Value
Col1 = Replace(Left(Ambo, 2), ".", "")
Col2 = Replace(Right(Ambo, 2), ".", "")
ColF = (Col1 + Col2) Mod 56 '<<<<<< qui puoi effettuare una moltiplicazione tra le due variabili Col1 e Col2 o usare una sola variabile
MyC = Evaluate("=COUNTIF(C4:U16, " & Ambo & ")")
If MyC > 1 Then Cells(RR, CC).Interior.ColorIndex = ColF
Next RR
Next CC
End Sub


Un altro sistema potrebbe essere quello di usare la funzione RGB ma è sempre un'assegnazione casuale del colore
puoi provare sostituendo le righe interessate
Codice: Seleziona tutto
Ambo = Cells(RR, CC).Value  '<<<<< esistente
Col1 = Val(Replace(Left(Ambo, 2), ".", ""))
Col2 = Val(Replace(Right(Ambo, 2), ".", ""))
ColR1 = Col1 * Col2 Mod 255
ColR2 = Col1 + Col2 Mod 255
ColR3 = (Col1 * (Col1 - Col2)) Mod 255
If Col2 > Col1 Then ColR3 = (Col1 * (Col2 - Col1)) Mod 255
ColF = RGB(ColR1, ColR2, ColR3)
MyC = Evaluate("=COUNTIF(C4:U16, " & Ambo & ")") '<<<< esistente


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Sponsor
 

Re: Excel o macro (solita formula)

Postdi Lucio Peruggini » 04/02/13 19:15

Ciao Flash, innanzitutto grazie per l’aiuto.
Effettivamente con i colori è un po’ ingarbugliato; ho provato a cambiare diverse volte ma la situazione è sempre confusa.
La funzione RGB da errore ma comunque, e per forza di cose, ho dovuto modificare l’immissione dei numeri che prendo direttamente dall’estrazione nel foglio “Archivio”.
Gli ambi sono separati (ogni cella ha il suo numero) e, poiché trattasi di sommativi che ottengo con un listato, mi è parso l’unico modo per ottenerli con formula senza sbagliare nel digitarli uno per uno.
Nelle righe 2,5,8,11,14 c’è la somma tratta dalle celle in archivio che ho mascherato con colore bianco.
Penso che la soluzione migliore possa essere quella che ho riportato da “A20” in poi; dove per ogni ambo uguale, mi riporta le ruote di appartenenza.

I colori possono anche esserci, anzi potremmo avere un unico colore per tutti visto che poi li troviamo da A20 in poi.
Nel file che allego ora, ci sono tre fogli:
Archivio, Colora 1 (la macro fatta), Colora 2 (nuova impostazione) se gentilmente mi applichi una macro che svolga questo lavoro.
Ancora grazie, ciao
https://dl.dropbox.com/u/18220462/FILE/ ... TT%20.xlsm
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Re: Excel o macro (solita formula)

Postdi Lucio Peruggini » 04/02/13 22:28

https://dl.dropbox.com/u/18220462/FILE/ ... vio%29.zip

Se sono ancora in tempo, ho migliorato il tutto inserendo l'intero archivio dalla 3950, così si possono fare dei controlli a ritroso.
Basta inserire in A2 l'estrazione che si vuole visualizzare e quindi far partire la macro.

Ciao
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Re: Excel o macro (solita formula)

Postdi Flash30005 » 04/02/13 23:54

Lucio Peruggini ha scritto:I colori possono anche esserci, anzi potremmo avere un unico colore per tutti

Pensa che questo l'avevo fatto in 5 minuti con una formula in formattazione condizionata
ma, visto che facevi vedere la differenziazione a secondo degli ambi ho dovuto perdere un po' di tempo per realizzare la macro
che ora non serve :aaah

Ti ho detto più volte
1) sii sempre sicuro di ciò che vuoi ottenere prima di chiedere
2) Chiedi nella maniera più esaustiva possibile
3) Non cambiare mai "le carte in tavola"

Ora ho altro da fare
quando avrò tempo mi dedidecherò di nuovo al tuo caso
così hai tempo anche per cambiare idea e avere esigenze diverse

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel o macro (solita formula)

Postdi Lucio Peruggini » 05/02/13 00:38

Pensa che questo l'avevo fatto in 5 minuti con una formula in formattazione condizionata
ma, visto che facevi vedere la differenziazione a secondo degli ambi ho dovuto perdere un po' di tempo per realizzare la macro
che ora non serve


Infatti andava bene differenziare:

I colori possono anche esserci, anzi potremmo avere un unico colore per tutti visto che poi li troviamo da A20 in poi.


Comunque, quando hai tempo prendi in considerazione l'ultimo Excel che ho inviato laddove c'è tutto l'archivio.

Grazie
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Re: Excel o macro (solita formula)

Postdi Flash30005 » 05/02/13 10:45

Devi aver postato un altro file
I fogli sono solo due "Archivio" e "Tutte"
La riga 2 non è coerente con le altre: 5,8,11,14 mentre lo è la 17 ma non è da te menzionata :roll:

Cerca di essere più preciso dando specifiche riferite al file inviato per ultimo
Inoltre, essendo numeri separati, di cosa si deve tener conto per colorare, la corrispondenza del singolo numero o di entrambi?

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel o macro (solita formula)

Postdi Lucio Peruggini » 05/02/13 11:19

Ciao Flash, il file è quello giusto; l'ultimo inserito (Archivio e TT).
Le righe cui facevo riferimento, era solo per dire che vi erano formule nascoste (colorate di bianco). Quelle interessate sono:
La 5,8,11,14,17 che riportano gli ambi. Questi vanno considerati insieme, come prima; laddove vi erano in una sola cella i due numeri.
Li ho separati semplicemente perché li ottengo con formule dalla riga 2.
Ciao
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Re: Excel o macro (solita formula)

Postdi Lucio Peruggini » 05/02/13 11:36

https://dl.dropbox.com/u/18220462/IMMAG ... e%20TT.PNG

In questa immagine vi è un'estrazione casuale con l'ultimo Excel inserito.
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Re: Excel o macro (solita formula)

Postdi Flash30005 » 05/02/13 14:32

Ma non avevi detto un colore uguale per tutti gli ambi?
Lucio Peruggini ha scritto:I colori possono anche esserci, anzi potremmo avere un unico colore per tutti visto che poi li troviamo da A20 in poi.
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel o macro (solita formula)

Postdi Lucio Peruggini » 05/02/13 19:34

Si! Unico colore.
L'immagine che ho postato era solamente a conferma dell'ultimo Excel.
Non avendo ancora i risultati da A20 in poi, momentaneamente li coloro io diversamente; quando ci saranno, il colore unico va benissimo! Direi che un grigio possa andare bene.
Ciao
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Re: Excel o macro (solita formula)

Postdi Flash30005 » 05/02/13 21:30

Quindi devi solo colorare le celle che hanno ambi uguali nel range fisso come da immagine?

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel o macro (solita formula)

Postdi Lucio Peruggini » 05/02/13 22:16

Esatto!
Non solo quello: Devo avere riscontro di questi ambi e ruote da A20 in poi come da foglio e immagine allegata.
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Re: Excel o macro (solita formula)

Postdi Flash30005 » 06/02/13 10:55

Penso che questa macro risolva e scopra errori dovuti alla manualità
come l'ambo 69-84 che si trova anche su Genova ma non era stato riportato nello schema del file da te inviato
Codice: Seleziona tutto
Sub ColoraRiporta()
UR1 = 17
For RR1 = 5 To UR1 Step 3
Range("C" & RR1 & ":AX" & RR1).Interior.ColorIndex = xlNone
Next RR1
Range("A20:E1000").ClearContents
For CC1 = 3 To 43 Step 5
For RR1 = 5 To UR1 Step 3
NA1 = Format(Cells(RR1, CC1).Value, "00")
NA2 = Format(Cells(RR1, CC1 + 2).Value, "00")
Ambo1 = NA1 & NA2
RU1 = UCase(Left(Cells(1, CC1 - 1).Value, 2))
ContaA = 0
For CC2 = CC1 To 48 Step 5
For RR2 = 5 To UR1 Step 3
NA3 = Format(Cells(RR2, CC2).Value, "00")
NA4 = Format(Cells(RR2, CC2 + 2).Value, "00")
RU2 = UCase(Left(Cells(1, CC2 - 1).Value, 2))
Ambo2 = NA3 & NA4
If Ambo1 = Ambo2 Then
    ContaA = ContaA + 1
    If ContaA > 1 Then
        Range(Cells(RR1, CC1), Cells(RR1, CC1 + 2)).Interior.Color = RGB(180, 180, 180)
        Range(Cells(RR2, CC2), Cells(RR2, CC2 + 2)).Interior.Color = RGB(180, 180, 180)
        If RU1 <> RU2 Then
            If MAmbo <> Ambo2 Then
                URR = Range("A" & Rows.Count).End(xlUp).Row + 1
                If URR < 20 Then URR = 20
                    Range("A" & URR).Value = RU1 & "-" & RU2
                    Range("C" & URR).Value = NA1
                    Range("E" & URR).Value = NA2
                    MAmbo = Ambo1
            Else
                URR = Range("A" & Rows.Count).End(xlUp).Row
                If URR < 20 Then URR = 20
                Range("A" & URR).Value = Range("A" & URR).Value & "-" & RU2
            End If
        End If
    End If
End If
Next RR2
Next CC2
Next RR1
Next CC1
URR = Range("A" & Rows.Count).End(xlUp).Row
For RR1 = 20 To URR - 1
NA1 = Format(Cells(RR1, 3).Value, "00")
NA2 = Format(Cells(RR1, 5).Value, "00")
For RR2 = URR To RR1 + 1 Step -1
NA3 = Format(Cells(RR2, 3).Value, "00")
NA4 = Format(Cells(RR2, 5).Value, "00")
If NA1 & NA2 = NA3 & NA4 Then Rows(RR2).Delete
Next RR2
Next RR1
End Sub


Per farlo avviare al cambiamento del concorso (in A2)
devi inserire questo codice nel Vba del foglio "Tutte"
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$2" Then Exit Sub
ColoraRiporta
End Sub

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel o macro (solita formula)

Postdi Lucio Peruggini » 06/02/13 11:58

SEMPLICEMENTE MAGNIFICO!!! Grazie Flash.

Per farlo avviare al cambiamento del concorso (in A2)
devi inserire questo codice nel Vba del foglio "Tutte"


Intendi sotto la macro?

Ho inserito il pulsante per la macro nel foglio TT sovrapponendolo alla dicitura di "Nazionale". Ho inserito sotto la macro quanto sopra hai detto ma non succede nulla; devo comunque far partire sempre la medesima per colorare e ottenere i dati da A20 in poi.

Oppure non ho capito qualcosa?
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Re: Excel o macro (solita formula)

Postdi Flash30005 » 06/02/13 13:07

Il codice per avviarla va inserito nel Vba del foglio "Tutte" non nel modulo
quando sei nell'editor del vba modulo (dove hai la macro)
devi cliccare (due volte) tra gli oggetti a sinistra dove vedi il nome del foglio "Tutte"
e nel frame di destra inserire il codice postato per l'avvio

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel o macro (solita formula)

Postdi Lucio Peruggini » 06/02/13 14:02

SUPER MAGNIFICO!!! Era un passaggio che non conoscevo.
Beati voi cervelloni.

Ancora grazie.
Ciao
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Re: Excel o macro (solita formula)

Postdi Lucio Peruggini » 13/02/13 02:47

Ciao Flash, potresti gentilmente apportare una piccola modifica o aggiunta a quest’ultima macro che hai fatto?
Si tratterebbe (forse la soluzione più rapida) di colorare di verde quelle combinazioni che hanno steso valore numerico nella medesima riga.

L’altra soluzione potrebbe essere quella di inserire in colonna (G20 in poi) il numero di posizione che trovasi nella riga di appartenenza di quelle combinazioni su menzionate che trovasi in colonna “A” righe 5, 8, 11, 14, 17.

Allego file e immagine
Come sempre ringrazio ed è il minimo che possa fare.
https://dl.dropbox.com/u/18220462/FILE/ ... 202%20.PNG

https://dl.dropbox.com/u/18220462/FILE/ ... vio%29.zip

Ciao
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Re: Excel o macro (solita formula)

Postdi Flash30005 » 13/02/13 04:42

Questa fa ambedue le cose
Codice: Seleziona tutto
Sub ColoraRiporta()
UR1 = 17
For RR1 = 5 To UR1 Step 3
Range("C" & RR1 & ":AX" & RR1).Interior.ColorIndex = xlNone
Next RR1
Range("A20:G1000").ClearContents
For CC1 = 3 To 43 Step 5
For RR1 = 5 To UR1 Step 3
NA1 = Format(Cells(RR1, CC1).Value, "00")
NA2 = Format(Cells(RR1, CC1 + 2).Value, "00")
Ambo1 = NA1 & NA2
RU1 = UCase(Left(Cells(1, CC1 - 1).Value, 2))
ContaA = 0
For CC2 = CC1 To 48 Step 5
For RR2 = 5 To UR1 Step 3
NA3 = Format(Cells(RR2, CC2).Value, "00")
NA4 = Format(Cells(RR2, CC2 + 2).Value, "00")
RU2 = UCase(Left(Cells(1, CC2 - 1).Value, 2))
Ambo2 = NA3 & NA4
If Ambo1 = Ambo2 Then
    ContaA = ContaA + 1
    If ContaA > 1 Then
        If RR1 = RR2 Then
        Range(Cells(RR1, CC1), Cells(RR1, CC1 + 2)).Interior.Color = RGB(0, 255, 0)
        Range(Cells(RR2, CC2), Cells(RR2, CC2 + 2)).Interior.Color = RGB(0, 255, 0)
        Else
        Range(Cells(RR1, CC1), Cells(RR1, CC1 + 2)).Interior.Color = RGB(180, 180, 180)
        Range(Cells(RR2, CC2), Cells(RR2, CC2 + 2)).Interior.Color = RGB(180, 180, 180)
        End If
        If RU1 <> RU2 Then
            If MAmbo <> Ambo2 Then
                URR = Range("A" & Rows.Count).End(xlUp).Row + 1
                If URR < 20 Then URR = 20
                    Range("A" & URR).Value = RU1 & "-" & RU2
                    Range("C" & URR).Value = NA1
                    Range("E" & URR).Value = NA2
                    If RR1 = RR2 Then Range("G" & URR).Value = Range("A" & RR1).Value
                    MAmbo = Ambo1
            Else
                URR = Range("A" & Rows.Count).End(xlUp).Row
                If URR < 20 Then URR = 20
                Range("A" & URR).Value = Range("A" & URR).Value & "-" & RU2
            End If
        End If
    End If
End If
Next RR2
Next CC2
Next RR1
Next CC1
URR = Range("A" & Rows.Count).End(xlUp).Row
For RR1 = 20 To URR - 1
NA1 = Format(Cells(RR1, 3).Value, "00")
NA2 = Format(Cells(RR1, 5).Value, "00")
For RR2 = URR To RR1 + 1 Step -1
NA3 = Format(Cells(RR2, 3).Value, "00")
NA4 = Format(Cells(RR2, 5).Value, "00")
If NA1 & NA2 = NA3 & NA4 Then Rows(RR2).Delete
Next RR2
Next RR1
End Sub


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel o macro (solita formula)

Postdi Lucio Peruggini » 13/02/13 11:09

Ti ringrazio è più di quanto ho chiesto.
Va benissimo!

Buona giornata
Ciao
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Re: Excel o macro (solita formula)

Postdi Lucio Peruggini » 13/02/13 18:01

https://dl.dropbox.com/u/18220462/IMMAG ... 203%20.jpg

Ciao Flash, vi è un piccolo inconveniente che sorge tutte le volte che escono più di due coppie e quindi da tre ruote in su.
Come vedi da immagine la coppia 25.40 riga 14 non viene colorata di verde perché la si trova anche sulla ruota di Milano riga 17.

Altre sì dicasi per la coppia 60.75 riga 8, ruote Ba-To che, come vedi non marca nemmeno la posizione in colonna G20.

Se non si può aggiustare va bene comunque.
Grazie e buona serata
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

PrecedenteProssimo

Torna a Applicazioni Office Windows


Topic correlati a "Excel o macro (solita formula)":


Chi c’è in linea

Visitano il forum: Nessuno e 102 ospiti