Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Macro 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

Macro formattazione condizionale

Postdi theterrible » 19/11/14 17:51

Salve a tutti, vi scrivo questo messaggio per richiedervi aiuto su una macro che ho creato, ma che mi da qualche problema.
Non riesco a capire come mai i valori contenuti nel metodo Range non vadano a genio al VBA, per quel che mi ricordo dalla scuola potevo utilizzare un indice come valore di selezione di riga o colonna. Sotto comunque riporto la macro.

Giusto per capire meglio, la macro si attiva con comando da tastiera, seleziona i valori nel range di caselle da k(i) a m(i) controlla se i valori contenuti in questo range sono maggiori della somma della cella h(i) +0.01, se si vengono colorati di rosso, questo per tutte le righe piene presenti nel foglio.

Grazie a tutti
Ivan

Sub formattazione()
'
' formattazione Macro
' Macro per la formattazione condizionale dei valori di grammatura sx, cx e dx maggiori di 0,01 rispetto a quella nominale
'
' Scelta rapida da tastiera: CTRL+f
'
ActiveWindow.SmallScroll Down:=-21
Dim i As Integer
i = 2
Do While Cells(i, 1).Value <> ""
Range("$K$i:$M$i").Select
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _
Formula1:="=$H$i+0,01"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
.Color = -16776961
.TintAndShade = 0
End With
i = i + 1
Loop
End Sub
theterrible
Utente Junior
 
Post: 21
Iscritto il: 20/09/12 13:52

Sponsor
 

Re: Macro formattazione condizionale

Postdi ricky53 » 19/11/14 18:07

Ciao,
prova con
Codice: Seleziona tutto
Range("$K$" & i & ":$M$" & i).Select
al posto di
Codice: Seleziona tutto
Range("$K$i:$M$i").Select



Che formula vuoi inserire nella formattazione condizionale?
Quella scritta è errata

Sapendo cosa devi fare troveremo una soluzione corretta e, se posso, più semplice di quella che hai utilizzato tu.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Macro formattazione condizionale

Postdi theterrible » 20/11/14 14:49

Buon pomeriggio, grazie per la risposta ricky53.
Ho inserito la formula da te indicata e adesso la macro prosegue al punto successivo, bloccandosi però sulla formula per la formattazione condizionale.

Codice: Seleziona tutto
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _
            Formula1:="=$H$i +0,01"


Questa scritta l'ha creata il registratore di macro, le operazioni che ho fatto io sono state:
- selezionare le 3 celle che voglio formattare
- andare in formattazione condizionale
- selezionare formatta solo le celle con valore e ho inserito maggiore di e poi la formula h+0.01
- fine

excel mi formatta le celle correttamente, ma dato che sono n righe ho cercato un modo per farlo rapidamente da qui la macro, quindi ho fatto la registrazione e poi ho fatto la modifica aggiungendo il ciclo.

Se serve sapere altro scrivete.
Grazie a tutti

Ivan
theterrible
Utente Junior
 
Post: 21
Iscritto il: 20/09/12 13:52

Re: Macro formattazione condizionale

Postdi Anthony47 » 20/11/14 15:18

Il problema e' sempre lo stesso, devi estrarre la variabile "i" dalla stringa precompilata.
Prova modificando la parte Formula1:="=$H$i +0,01" in
Formula1:="=$H$" & i & "+0,01"
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: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro formattazione condizionale

Postdi theterrible » 20/11/14 16:12

Scusate avevo modificato:
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _
Formula1:="=$H$i +0,01"

in questo

Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _
Formula1:="=$H$" & i & "+0,01"

e la macro così funziona, non ho avuto il tempo di scriverlo sul forum, perchè mi avevano chiamato per un problema ad un pc.
Inizialmente pensavo fosse il resto della formula ad essere sbagliata.

Ringrazio tutti per l'aiuto.
Ivan
theterrible
Utente Junior
 
Post: 21
Iscritto il: 20/09/12 13:52


Torna a Applicazioni Office Windows


Topic correlati a "Macro formattazione condizionale":


Chi c’è in linea

Visitano il forum: Nessuno e 15 ospiti