Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

vba excel: inserire formattazione condizionale su cella

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

vba excel: inserire formattazione condizionale su cella

Postdi karug64 » 09/11/17 21:23

Salve a tutti.
Nel mio programma, leggo un foglio dal un file (A) e ne scrivo il contenuto - cella per cella - in un altro file (B).
Man mano che scrivo le celle, provvedo ad inserire formule, dati e attributi vari.
In un cella devo mettere anche una formattazione condizionale con 5 condizioni.
Non sapendo come fare ho registrato una macro che ho inserito nel mio codice, ma non c'e' verso di farla funzionare.

Questo è una parte del codice che utilizzo in cui ho inserito la macro:

Codice: Seleziona tutto
Set Orig = Workbooks.Open(UserForm1.file_da_importare)
Set Dest = ThisWorkbook

ultimarigax = Sheets(UserForm1.Cbox_foglio.Text).Range("A65000").End(xlUp).Row
ultimacolonnax = Sheets(UserForm1.Cbox_foglio.Text).Cells(1, Cells.Columns.Count).End(xlToLeft).Column

'***************** INIZIA IL CICLO DI LETTURA DELLE RIGHE  *****************
riga = 0
For x = 1 To ultimarigax
    If Orig.Sheets(UserForm1.Cbox_foglio.Text).Cells(x, 1).Value = "RIS" Then

        [...codice...]
     Else
        ' E' una riga successiva alla prima
        ' ne copio il contenuto, senza aggiungere colori
        ' inserisco le formule
         riga = riga + 1
            colonna = 0
            For y = 1 To ultimacolonnax
                colonna = colonna + 1
               
                ' *************************
                ' COPIA SOLO VALORI
                ' *************************
                If colonna <= 11 Then
                    ' da colonna 1 a 11 copia solo il valore
                    Dest.Sheets("Check_list").Cells(x, y).Value = Orig.Sheets(UserForm1.Cbox_foglio.Text).Cells(x, y).Value
                    ' BORDO CELLE
                    Call disegna_bordo(x, y)
                    ' Setta il formato
                    Dest.Sheets("Check_list").Cells(x, y).NumberFormat = "General"
                End If
               
                [ .... codice ....]
           
                If colonna = 28 Then
               
                    ThisWorkbook.Activate
                    Sheets("Check").Select
                    Set r = Cells(x, y)
                    r.FormatConditions.Delete
                    r.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""1 - B"""
                    r.FormatConditions(r.FormatConditions.Count).SetFirstPriority
                    With r.FormatConditions(1)
                        .Interior.PatternColorIndex = xlAutomatic
                        .Color = 5296274      <======= ERRORE
                        .TintAndShade = 0    <======= ERRORE
                    End With
                    r.FormatConditions(1).StopIfTrue = False
                   
                    r.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""2 - M"""
                    r.FormatConditions(r.FormatConditions.Count).SetFirstPriority
                    With r.FormatConditions(1)
                        .Interior.PatternColorIndex = xlAutomatic
                        '.Color = 65535
                        .TintAndShade = 0
                    End With
                    r.FormatConditions(1).StopIfTrue = False
   
                    r.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""3 - Me"""
                    r.FormatConditions(r.FormatConditions.Count).SetFirstPriority
                    With r.FormatConditions(1)
                        .Interior.PatternColorIndex = xlAutomatic
                        '.Color = 49407
                        .TintAndShade = 0
                    End With
                    r.FormatConditions(1).StopIfTrue = False
   
                    r.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""4 - A"""
                    r.FormatConditions(r.FormatConditions.Count).SetFirstPriority
                    With r.FormatConditions(1)
                        .Interior.PatternColorIndex = xlAutomatic
                        '.Color = 255
                        .TintAndShade = 0
                    End With
                    r.FormatConditions(1).StopIfTrue = False
   
                    r.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""5 - E"""
                    r.FormatConditions(r.FormatConditions.Count).SetFirstPriority
                    With r.FormatConditions(1)
                        .Interior.PatternColorIndex = xlAutomatic
                        '.Color = xlThemeColorDark1
                        .TintAndShade = -0.499984740745262
                    End With
                    r.FormatConditions(1).StopIfTrue = False
            next y       
        End If
Next x
Orig.Close

Esci:
'MsgBox Err.Number, Err.Description
Set Dest = Nothing
Set Orig = Nothing


Mi da errore nelle righe evidenziate.

Potreste aiutarmi ?
Grazie
Office 2010
karug64
Utente Senior
 
Post: 628
Iscritto il: 20/11/11 21:22

Sponsor
 

Re: vba excel: inserire formattazione condizionale su cella

Postdi Anthony47 » 10/11/17 00:26

Secondo me manca ".Interior" sulle 2 voci in errore
Codice: Seleziona tutto
                    With r.FormatConditions(1)
                        .Interior.PatternColorIndex = xlAutomatic
                        .INTERIOR.Color = 5296274      <======= ERRORE
                        .INTERIOR.TintAndShade = 0    <======= ERRORE


Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 14835
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: vba excel: inserire formattazione condizionale su cella

Postdi karug64 » 10/11/17 09:43

Mi spiace, ma continua a non funzionare.
Office 2010
karug64
Utente Senior
 
Post: 628
Iscritto il: 20/11/11 21:22

Re: vba excel: inserire formattazione condizionale su cella

Postdi Anthony47 » 10/11/17 16:02

Copia il codice completo dalla finestra vba e incollalo nel messaggio; poi quale messaggio di errore da' su quale riga?

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 14835
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: vba excel: inserire formattazione condizionale su cella

Postdi karug64 » 10/11/17 20:05

Scusate. Ma la soluzione proposta funziona perfettamente. Avevo sbagliato la digitazione .... :oops: :oops:

Risolto. Grazie
Office 2010
karug64
Utente Senior
 
Post: 628
Iscritto il: 20/11/11 21:22


Torna a Applicazioni Office Windows


Topic correlati a "vba excel: inserire formattazione condizionale su cella":


Chi c’è in linea

Visitano il forum: sysuop33 e 25 ospiti