Condividi:        

Macro colora righe target cella attiva!

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 colora righe target cella attiva!

Postdi deniel69 » 04/12/14 17:56

Buon giorno a tutti.

Vi espongo il mio problema.
Ho una macro perfettamente funzionante se inserita in un foglio e che sfrutta l'evento Worksheet_SelectionChange.
Io invece vorrei modificarla in una macro da poter attivare o disattivare a seconda delle esigenze e da poter usare sul foglio attivo in quel momento.

Come posso fare ? Di seguito la macro che sto utilizzando ..........

Un grazie a tutti !

Dim OldX
Dim OldY

'Serve per colorare la righa su cui si trova la selezione
Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Celle As String
Dim formato As Integer
formato = 0
formato = Cells.FormatConditions.Count
If formato <> 0 Then
Cells.FormatConditions.Delete
End If
'Calcolo le colonne
OldX = Target.Column
OldY = Target.Row
'Colonna
'Celle = Range("A:A").Offset(0, OldX - 1).Address(RowAbsolute:=False, columnAbsolute:=False)

'Riga
Celle = Range("1:1").Offset(OldY - 1, 0).Address(RowAbsolute:=False, columnAbsolute:=False)

'imposto la formattazione condizionale
'Range(Celle).FormatConditions.Add Type:=xlExpression, Formula1:="=$A$1=1"
Range(Celle).FormatConditions.Add Type:=xlExpression, Formula1:="=$A$1="""""
Range(Celle).FormatConditions(1).Interior.ColorIndex = 36
Range(Celle).FormatConditions(1).Borders.Color = RGB(211, 204, 23)
End Sub
Avatar utente
deniel69
Utente Senior
 
Post: 131
Iscritto il: 17/04/12 22:43

Sponsor
 

Re: Macro colora righe target cella attiva!

Postdi Flash30005 » 05/12/14 08:53

Elimina la macro nel foglio

Inserisci in un modulo la seguente macro
Codice: Seleziona tutto
Public NF As String, OldX, OldY As Integer

Sub Colora()
Dim Celle As String
 Dim formato As Integer
 formato = 0
 formato = Cells.FormatConditions.Count
 If formato <> 0 Then
 Cells.FormatConditions.Delete
 End If
 'Calcolo le colonne

 'Colonna
 'Celle = Range("A:A").Offset(0, OldX - 1).Address(RowAbsolute:=False, columnAbsolute:=False)

 'Riga
 Celle = Range("1:1").Offset(OldY - 1, 0).Address(RowAbsolute:=False, columnAbsolute:=False)

 'imposto la formattazione condizionale
 'Range(Celle).FormatConditions.Add Type:=xlExpression, Formula1:="=$A$1=1"
 Range(Celle).FormatConditions.Add Type:=xlExpression, Formula1:="=$A$1="""""
 Range(Celle).FormatConditions(1).Interior.ColorIndex = 36
 Range(Celle).FormatConditions(1).Borders.Color = RGB(211, 204, 23)
End Sub


Poi in Thisworkbook (o Questa_Cartella_di_lavoro) inserisci questo codice
Codice: Seleziona tutto
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
NF = ActiveSheet.Name
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
 OldX = Target.Column
 OldY = Target.Row
Colora
End Sub


La macro si attiverà nel foglio attivo

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Macro colora righe target cella attiva!

Postdi deniel69 » 05/12/14 18:48

Ti ringrazio Flash.....

Funziona ma io come avevo scritto vorrei poterla attivare o disattivare quando serve
magari sfruttando (quando attiva) l'evento activecell.

grazie.....
Avatar utente
deniel69
Utente Senior
 
Post: 131
Iscritto il: 17/04/12 22:43

Re: Macro colora righe target cella attiva!

Postdi Anthony47 » 05/12/14 23:49

Allora nel codice della Sub Colora(), come seconda linea inserisci
Codice: Seleziona tutto
If [Z1]<>123 then Exit Sub

In questo modo la Sub Colora eseguira' qualcosa di effettivo solo se in cella Z1 ' e' scritto 123

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

Re: Macro colora righe target cella attiva!

Postdi deniel69 » 08/12/14 11:01

Grazie a tutti e due....
Inserendo la if suggerita da Anthony47 e aggiungendo le sub che riporto di seguito ,riesco ad attivare e disattivare la macro colora....

Anche se non mi funziona su tutti i fogli e devo capire il perchè!

Sub colora1()
' Scelta rapida da tastiera: CTRL+n
Range("DB69") = 1 '<------- cella che attiva la macro inserendo il valore 1 nella cella DB69
End Sub



Sub decolora0()
' Scelta rapida da tastiera: CTRL+m
Range("DB69") = "" '<----------- cella che disattiva la macro inserendo il valore blank nella cella DB69

Cells.FormatConditions.Delete
Celle = Range("1:1").Offset(OldY - 1, 0).Address(RowAbsolute:=False, columnAbsolute:=False)
'imposto la formattazione condizionale
Range(Celle).FormatConditions.Add Type:=xlExpression, Formula1:="=$A$1=1"

'le celle si decolorano ma il bordo si estende a tutte le celle succesive
'Range(Celle).FormatConditions.Add Type:=xlExpression, Formula1:="=$A$1="""""
Range(Celle).FormatConditions(1).Interior.ColorIndex = 0
Range(Celle).FormatConditions(1).Borders.Color = RGB(0, 0, 0) 'RGB(211, 204, 23)
End Sub
Avatar utente
deniel69
Utente Senior
 
Post: 131
Iscritto il: 17/04/12 22:43


Torna a Applicazioni Office Windows


Topic correlati a "Macro colora righe target cella attiva!":


Chi c’è in linea

Visitano il forum: Nessuno e 51 ospiti