Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

evidenziare in rosso riga se cambia valore 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

evidenziare in rosso riga se cambia valore cella

Postdi piipo4 » 09/01/15 19:18

Salve a tutti sono nuovo del forum, ho un foglio excel con una serie di dati, sto cercando di far evidenziare un range di celle sulla stessa riga, se nella colonna J viene immessa un valore(una data nel mio caso) il codice che inserito è questo

Private Sub Worksheet_Change(ByVal Target As Range)

Dim x As Integer

x = ActiveCell.Row
If Target.Address = "$J$" & x Then
x = x - 1
If Range("J" & x) <> "" Then
Range("A" & x & ":" & "M" & x).Select
With Selection.Font
.Color = -16777024
.TintAndShade = 0
End With
Selection.Font.Bold = True
Range("j" & x).Select
End If
End If



la cosa strana è che mi evidenzia il range solo se cancello il dato da una delle celle della colonna "J", quano inserisco la data non succede nulla... qualcuno può aiutarmi?

Grazie a tutti
piipo4
Newbie
 
Post: 2
Iscritto il: 09/01/15 19:10

Sponsor
 

Re: evidenziare in rosso riga se cambia valore cella

Postdi Anthony47 » 09/01/15 23:58

Ciao piipo4, benvenuto nel forum.
Per ragionare correttamente devi usare "Target" e non "ActiveCell"; credo che questa sia una versione funzionante del tuo codice (che sia la logica giusta non lo so):
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
'
If Target.Column = 10 Then
    If Target.Value <> "" Then
        With Target.Offset(0, -9).Resize(1, 13).Font
            .Color = -16777024
            .TintAndShade = 0
        End With
    End If
End If
End Sub

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: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: evidenziare in rosso riga se cambia valore cella

Postdi ricky53 » 10/01/15 00:13

Ciao,
prova con questa modifica al tuo cidice
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Intervallo As Range, X As Integer
   
    Set Intervallo = Range("J2:J1000") ' <<===== adatta l'intervallo alla tua situazione effettiva
    If Not Intersect(Target, Intervallo) Is Nothing Then
            X = Target.Row
            If Target.Value <> "" Then
            With Range("A" & X & ":" & "M" & X).Font
                .Color = -16777024
                .TintAndShade = 0
                .Bold = True
            End With
        Else
            With Range("A" & X & ":" & "M" & X).Font
                .FontStyle = "Normale"
                .ColorIndex = xlAutomatic
            End With
        End If
    End If
End Sub


Non ho inserito il controllo che il valore inserito nella cella "J.." sia una data ma solo che la cella non sia vuota come avevi scritto tu ma sarebbe il caso di fare qualche controllo, vedi tu.

Inoltre ActiveCell.Row ti restituisce la riga successiva, per questo motivo utilizzi l'istruzione x = x -1 ???
Non va bene ActiveCell !!!



OPS ... ho scritto senza controllare se c'erano altre risposte ... SORRY !!!
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: evidenziare in rosso riga se cambia valore cella

Postdi piipo4 » 10/01/15 09:27

ricky53 ha scritto:
Non ho inserito il controllo che il valore inserito nella cella "J.." sia una data ma solo che la cella non sia vuota come avevi scritto tu ma sarebbe il caso di fare qualche controllo, vedi tu.

Inoltre ActiveCell.Row ti restituisce la riga successiva, per questo motivo utilizzi l'istruzione x = x -1 ???
Non va bene ActiveCell !!!





Grandissimo funzione perfettamente, grazie, si in effetti avevo messo l'istruzione x=x-1, perchè inserendo la data e dando invio, "x" prendeva il valore della cella più in basso. il controllo data non è fondamentale tanto li ho bisogno di inserire per forza un data.
Grazie ancora.
piipo4
Newbie
 
Post: 2
Iscritto il: 09/01/15 19:10

Re: evidenziare in rosso riga se cambia valore cella

Postdi ricky53 » 11/01/15 20:41

Ciao,
bene.
Grazie per il riscontro.
Buon proseguimento e ... alla prossima.
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


Torna a Applicazioni Office Windows


Topic correlati a "evidenziare in rosso riga se cambia valore cella":

Formula Rif.riga
Autore: salatony
Forum: Programmazione
Risposte: 0

Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti