Ciao a tutti io ho questo problema da risolvere.
In pratica nella scheda 2 di un file excel ho questi numeri messi in riga:
3 (vuoto) 40 50 (vuoto) (vuoto) 14 31
40 ha uno sfondo arancione.
Nella scheda 1 mi servirebbe che ogni cella facesse questo lavoro:
controlla la cella corrispondente nella scheda 2.
Se questa non ha sfondo arancione o viola allora procede.
A questo punto verifica che lei faccia parte dei 3 numeri più alti della riga della scheda 2 (esclusi gli arancioni e i viola) e se lo è, si colora di uno sfondo blu e copia il valore dalla cella corrispondente nella scheda 2.
Ho iniziato ad usare questo codice praticamente ieri, quindi nel codice che ho provato a scrivere qui sotto potrei aver scritto cose allucinanti
(la spiegazione sopra è un esempio, il codice che poi dovrò fare sarà generalizzato, ovvero non saranno 3 i numeri più alti, ma sarà un numero variabile diff).
Se qualcuno riuscisse a darmi una mano, gli sarei veramente grato! Grazie!!
In pratica nella scheda 2 di un file excel ho questi numeri messi in riga:
3 (vuoto) 40 50 (vuoto) (vuoto) 14 31
40 ha uno sfondo arancione.
Nella scheda 1 mi servirebbe che ogni cella facesse questo lavoro:
controlla la cella corrispondente nella scheda 2.
Se questa non ha sfondo arancione o viola allora procede.
A questo punto verifica che lei faccia parte dei 3 numeri più alti della riga della scheda 2 (esclusi gli arancioni e i viola) e se lo è, si colora di uno sfondo blu e copia il valore dalla cella corrispondente nella scheda 2.
Ho iniziato ad usare questo codice praticamente ieri, quindi nel codice che ho provato a scrivere qui sotto potrei aver scritto cose allucinanti
(la spiegazione sopra è un esempio, il codice che poi dovrò fare sarà generalizzato, ovvero non saranno 3 i numeri più alti, ma sarà un numero variabile diff).
Se qualcuno riuscisse a darmi una mano, gli sarei veramente grato! Grazie!!
Function Classifica(InRange As Range, Uguale As Range, Differenza As Range, WhatColorIndex As Integer, WhatColorIndex2 As Integer) As Double
Dim Rng As Range
Dim OK As Boolean
Dim OK2 As Boolean
Dim Valore As Integer
Dim i As Integer
Dim ciao As Integer
Dim diff As Integer
Application.Volatile True
diff = Differenza.Value
OK = (Uguale.Interior.ColorIndex = WhatColorIndex)
OK2 = (Uguale.Interior.ColorIndex = WhatColorIndex2)
If OK Or OK2 Then
OK = OK
Else
Valore = Uguale.Value
i = 0
For Each Rng In InRange.Cells
If OK Or OK2 Then
OK = OK
Else
If Valore < Rng.Value Then
i = i + 1
End If
End If
Next Rng
If i < diff Then
ActiveCell.Value = Uguale.Value
ActiveCell.Interior.ColorIndex = 37
End If
End If
End Function