Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

colorare celle in base al valore

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

colorare celle in base al valore

Postdi mirmidone21 » 07/08/22 10:09

ciao
premetto che non sono esperto di vba, ma ho creato una macro che prima mi mette in ordine crescente i dati e poi mi colora di giallo tutte le celle che contengono un valore inferiore o uguale a 60.
a funzionare va bene, ma vorrei perfezionarla, vorrei che selezionasse in automatico tutte le celle piene fino all'ultima riga/cella
tipo istruzone Range("D3").End(xlDown).Select --- non so però dove inserire correttamente l'istruzione.
se necessario, allegherò file
spero di essere stato chiaro, e in attesa vi ringrazio



Codice: Seleziona tutto
Sub Macro1()
'
' Macro1 Macro
'

'
    Range("D1:D2").Select
    ActiveWorkbook.Worksheets("Foglio1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Foglio1").Sort.SortFields.Add2 Key:=Range("D3:D14" _
        ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Foglio1").Sort
        .SetRange Range("A2:D14") ' vorrei selezionasse tutte le celle piene
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Selection.FormatConditions(1).StopIfTrue = False
    Range("D1:D14").Select  ' vorrei che selezionasse fino all'ultima cella piena
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _
        Formula1:="=0", Formula2:="=60"   ' qua utilizzasse unica istruzione con <=60
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
    Range("A1:A2").Select
End Sub
Windows 7 sp1 -- Office 2013
Intel i5 4430 -- 3.00 ghz ---- 4gb RAM
mirmidone21
Utente Senior
 
Post: 149
Iscritto il: 26/10/15 16:48

Sponsor
 

Re: colorare celle in base al valore

Postdi Anthony47 » 07/08/22 19:47

Bentornato


Il mio suggerimento e' che definisci l'area dei dati e poi fai riferimento a questa definizione.
Esempio, se i dati sono "isolati" dal resto del foglio (cioe' c'e' almeno una colonna libera alla destra e una riga libera in coda prima di altre informazioni, tipo altri dati o formule), puoi usare
Codice: Seleziona tutto
Set myArea = Range("A2").CurrentRegion


Poi ad esempio:
invece di .SetRange Range("A2:D14") userai
Codice: Seleziona tutto
.SetRange myArea


Invece di Selection.FormatConditions.Add Type:=etc etc userai
Codice: Seleziona tutto
myArea.FormatConditions.Add Type:=etc etc


Se non riesci a mappare il suggerimento nel tuo codice allora pobblica lo schema dei dati a cui fai riferimento e affineremo (ad esempio non ho capito cosa hai in riga 1)
Avatar utente
Anthony47
Moderatore
 
Post: 18337
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: colorare celle in base al valore

Postdi mirmidone21 » 08/08/22 18:56

allego il link per il file
https://we.tl/t-bdP9xJqT0V
Windows 7 sp1 -- Office 2013
Intel i5 4430 -- 3.00 ghz ---- 4gb RAM
mirmidone21
Utente Senior
 
Post: 149
Iscritto il: 26/10/15 16:48

Re: colorare celle in base al valore

Postdi mirmidone21 » 08/08/22 19:16

Anthony47 ha scritto:Bentornato

Se non riesci a mappare il suggerimento nel tuo codice allora pobblica lo schema dei dati a cui fai riferimento e affineremo (ad esempio non ho capito cosa hai in riga 1)

per precisione riga 1 e riga 2 avevano le celle unificate, ora le ho sdoppiate ed utilizzato solo una riga.
ovviamente devo riadattare riferimenti alle celle, righe e colonne.
Windows 7 sp1 -- Office 2013
Intel i5 4430 -- 3.00 ghz ---- 4gb RAM
mirmidone21
Utente Senior
 
Post: 149
Iscritto il: 26/10/15 16:48

Re: colorare celle in base al valore

Postdi Anthony47 » 09/08/22 09:54

Ad esempio:
Codice: Seleziona tutto
Sub MacroMirm()
Dim myArea As Range, sortCol As Range
'
Set myArea = Range("A2").CurrentRegion
Set sortCol = Application.WorksheetFunction.Index(myArea, 0, myArea.Columns.Count)
'
''    Range("D1:D2").Select
    ActiveWorkbook.Worksheets("Foglio1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Foglio1").Sort.SortFields.Add2 Key:=sortCol _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Foglio1").Sort
        .SetRange myArea ' vorrei selezionasse tutte le celle piene
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
''    myArea.FormatConditions(1).StopIfTrue = False
    myArea.FormatConditions.Delete                          '!!! Cancella Formattazioni precedenti
    sortCol.Select  ' vorrei che selezionasse fino all'ultima cella piena
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _
        Formula1:="=0", Formula2:="=60"   ' qua utilizzasse unica istruzione con <=60
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
    End With
''    Selection.FormatConditions(1).StopIfTrue = False
    myArea.Cells(1, 1).Select
End Sub

Attenzione, che la macro cancella le precedenti formattazioni dall'area; se non va bene allora cancella l'istruzione marcata "!!!" (ma in questo caso la macro continua ad aggiungere nuove formattazioni condizionali, alla lunga qualcosa andra' storto...)
Avatar utente
Anthony47
Moderatore
 
Post: 18337
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: colorare celle in base al valore

Postdi mirmidone21 » 09/08/22 19:49

funziona alla perfezione, sei un grande come al solito.
grazie infinite
Windows 7 sp1 -- Office 2013
Intel i5 4430 -- 3.00 ghz ---- 4gb RAM
mirmidone21
Utente Senior
 
Post: 149
Iscritto il: 26/10/15 16:48


Torna a Applicazioni Office Windows


Topic correlati a "colorare celle in base al valore":


Chi c’è in linea

Visitano il forum: Nessuno e 25 ospiti

cron