Condividi:        

Formattazione condizionale

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

Formattazione condizionale

Postdi pig1166 » 26/01/10 14:21

Ho visto che esistono molti, molti... topic sull'argomento in titolo, ma nessuno mi da risposta precisa, o meglio non riesco a integrarlo nel codice che insieme abbiamo costruito.
In effetti ho raggiunto tutte e tre le posizioni della formattazione condizionale ed ovviamente me ne occorrono altre.
Quindi da quando ho capito (visto che non trovo più la utlity CFPLUS) si deve fare una macro.
Ho provato anche a seguire qualche suggerimento di flash in topic precedenti, senza successo.
il codice attualmente è questo:

Dim TAdr As Integer
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
CheckArea = "F4:AJ348"
On Error Resume Next
If Target.Column <> TAdr Then Cells(1, TAdr).ColumnWidth = 5 '<<< Larghezza STRETTA
If Application.Intersect(Target, Range(CheckArea)) Is Nothing Then Exit Sub
If Target.Rows.Count + Target.Columns.Count > 2 Then Exit Sub
Target.ColumnWidth = 25 '<<< Larghezza LARGA
TAdr = Target.Column
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
CheckArea = "F4:AJ348"
If Application.Intersect(Target, Range(CheckArea)) Is Nothing Then Exit Sub
If Target.Rows.Count + Target.Columns.Count > 2 Then Exit Sub
Application.EnableEvents = False
On Error Resume Next
Target.Value = Application.WorksheetFunction.VLookup(Target.Value, Sheets("Legenda Assenze").Range("A1:B34"), 2, 0)
Application.EnableEvents = True
End Sub

ora sempre nello stesso range F4:AJ348 vorrei aggiungere delle formattazioni condizionali almeno 5 oltre i 3 previsti
Immagine
pig1166
Utente Junior
 
Post: 18
Iscritto il: 11/01/10 21:03

Sponsor
 

Re: Formattazione condizionale

Postdi Anthony47 » 26/01/10 20:26

Puoi mettere in fondo, prima di Application.EnableEvents = True, tanti cicli di verifica del valore di Target e relativa formattazione.
Ad esempio:
Codice: Seleziona tutto
If Target.value="F" or Target.value="MO" or Target.value="M" or Target.value="RM" then
Target.interior.colorindex=3    '<<Rosso
End if


Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Formattazione condizionale

Postdi pig1166 » 28/01/10 17:28

Mi sembra poter andare. ma fammi capire bene come funziona. Per esempio ho dei limiti di or ?
e come faccio se voglio colorare il carattere e non lo sfondo ?
io ho inserito la riga come mi hai detto però mi traduce anche la x in rosso:
Dim TAdr As Integer
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
CheckArea = "F4:AJ348"
On Error Resume Next
If Target.Column <> TAdr Then Cells(1, TAdr).ColumnWidth = 5 '<<< Larghezza STRETTA
If Application.Intersect(Target, Range(CheckArea)) Is Nothing Then Exit Sub
If Target.Rows.Count + Target.Columns.Count > 2 Then Exit Sub
Target.ColumnWidth = 25 '<<< Larghezza LARGA
TAdr = Target.Column
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
CheckArea = "F4:AJ348"
If Application.Intersect(Target, Range(CheckArea)) Is Nothing Then Exit Sub
If Target.Rows.Count + Target.Columns.Count > 2 Then Exit Sub
Application.EnableEvents = False
On Error Resume Next
Target.Value = Application.WorksheetFunction.VLookup(Target.Value, Sheets("Legenda Assenze").Range("A1:B34"), 2, 0)
If Target.Value = "F" Or Target.Value = "MO" Or Target.Value = "FFGR" Or Target.Value = "M" Or Target.Value = "RM" Or Target.Value = "INF" Or Target.Value = "RINF" Or Target.Value = "FS" Or Target.Value = "RMO" Then
Target.Interior.ColorIndex = 3 '<<Rosso
'Target.Font.ColorIndex = 1 '<<Rosso

End If
Application.EnableEvents = True
End Sub
pig1166
Utente Junior
 
Post: 18
Iscritto il: 11/01/10 21:03

Re: Formattazione condizionale

Postdi Anthony47 » 28/01/10 23:07

Se superi i limiti consentiti dal vba avrai un errore di compilazione; comunque un buon debug lo devi sempre fare.
Per attribuire il colore al font vale l' istruzione .Font.colorindex che ora hai commentato.

Non so l' uso che fai di tutto questo, pero' penso che sia utile inserire anche, prima di End If, la riga "Else Target.Interior.Colorindex= xlNone" (senza virgolette); questo serve a togliere eventuali Colorindex applicati alla cella precedentemente.

Per la X in rosso, non e' colpa del vba; forse metti la X in una cella "già" rossa? In questo caso la riga Else detta prima ti aiutera'.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Formattazione condizionale

Postdi pig1166 » 01/02/10 16:20

Nada non ci riesco, ma comuqnue non è molto importante farò diversamente grazie.
pig1166
Utente Junior
 
Post: 18
Iscritto il: 11/01/10 21:03


Torna a Applicazioni Office Windows


Topic correlati a "Formattazione condizionale":


Chi c’è in linea

Visitano il forum: Nessuno e 35 ospiti