Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Evidenziare Cella Attiva

Ultimo Aggiornamento: 17/06/2019 07:13
Post: 1
Registrato il: 14/06/2019
Utente Junior
OFFLINE
14/06/2019 11:36

Buongiorno a tutti, sono nuova e cerco da un pò di risolvere un problema nell'utilizzo di un file excel di lavoro.

Il file excel contiene 3 fogli, in uno di questi sono contenute circa 9 mila righe di contatti su sfondo colorato. 😩

Nel mio file non ci sono "valori", calcoli e cifre, diciamo che è un file che contiene tutti dati di tipo TESTO.

Necessito quindi, se un cliente mi chiama, trovare con parole chiave in quell'arcobaleno di righe colorate con facilità il dato che mi occorre semplicemente facendo "Trova", solo che poi la cella "attiva" non è ben evidenziata (per via dei molti colori di sfondo delle varie righe).

Ho provato a fare copia incolla di alcuni codici da inserire in VBA facendo ALT+F11 e selezionando "QUESTO FOGLIO DI LAVORO", ma poi va a finire che non è ben evidenziata la cella e soprattutto quando poi sposto il cursore la cella non mantiene il colore di sfondo che aveva precedentemente

Qualcuno è in grado di scrivere un codice che evidenzi solamente il bordo della cella (non lo sfondo), l'ideale sarebbe un bordo molto spesso bianco e nero 🔲🔳 una cosa di questo tipo (per non confondersi nello sfondo multicolor del foglio).

Qualcuno sa aiutarmi?
Post: 4.155
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
14/06/2019 12:36

allega un piccolo file di esempio con anche la tua soluzione migliore

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 1.789
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
16/06/2019 06:52

ciao
questo codice funziona solo se non ci sono formattazioni condizionali
(le elimina tutte)
ma hai detto sfondo perciò dovrebbe andare.

scrivi 1 in cella A1 (ma poi puoi cambiare cella tranquillamente)

evidenzio solo cella attiva
sul foglio



Dim OldX
Dim OldY
Private 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



'Impostazione Formattazione condizionale Cella selzionata
Cells(OldY, OldX).FormatConditions.Add Type:=xlExpression, Formula1:="=$A$1=1"
Cells(OldY, OldX).FormatConditions(1).Borders(xlLeft).LineStyle = xlContinuous
Cells(OldY, OldX).FormatConditions(1).Borders(xlLeft).Color = RGB(170, 0, 0)
Cells(OldY, OldX).FormatConditions(1).Borders(xlRight).LineStyle = xlContinuous
Cells(OldY, OldX).FormatConditions(1).Borders(xlRight).Color = RGB(170, 0, 0)
Cells(OldY, OldX).FormatConditions(1).Borders(xlTop).LineStyle = xlContinuous
Cells(OldY, OldX).FormatConditions(1).Borders(xlTop).Color = RGB(0, 0, 170)
Cells(OldY, OldX).FormatConditions(1).Borders(xlBottom).LineStyle = xlContinuous
Cells(OldY, OldX).FormatConditions(1).Borders(xlBottom).Color = RGB(0, 0, 170)
'Colore sfondo
Cells(OldY, OldX).FormatConditions(1).Interior.ColorIndex = 36
End Sub



evidenzio cella e bordo riga colonna

Dim OldX
Dim OldY
Private 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

'Impostazione Formattazione condizionale Verticale
Range("A:A").Offset(0, OldX - 1).FormatConditions.Add Type:=xlExpression, Formula1:="=$A$1=1"
Range("A:A").Offset(0, OldX - 1).FormatConditions(1).Borders(xlLeft).LineStyle = xlContinuous
Range("A:A").Offset(0, OldX - 1).FormatConditions(1).Borders(xlLeft).Color = RGB(170, 0, 0)
Range("A:A").Offset(0, OldX - 1).FormatConditions(1).Borders(xlRight).LineStyle = xlContinuous
Range("A:A").Offset(0, OldX - 1).FormatConditions(1).Borders(xlRight).Color = RGB(170, 0, 0)

'eliminazione formattazione cella selezionata
Cells(OldY, OldX).FormatConditions.Delete

'Impostazione Formattazione condizionale Orizzontale
Range("1:1").Offset(OldY - 1, 0).FormatConditions.Add Type:=xlExpression, Formula1:="=$A$1=1"
Range("1:1").Offset(OldY - 1, 0).FormatConditions(1).Borders(xlTop).LineStyle = xlContinuous
Range("1:1").Offset(OldY - 1, 0).FormatConditions(1).Borders(xlTop).Color = RGB(0, 0, 170)
Range("1:1").Offset(OldY - 1, 0).FormatConditions(1).Borders(xlBottom).LineStyle = xlContinuous
Range("1:1").Offset(OldY - 1, 0).FormatConditions(1).Borders(xlBottom).Color = RGB(0, 0, 170)

'eliminazione formattazione cella selezionata
Cells(OldY, OldX).FormatConditions.Delete

'Impostazione Formattazione condizionale Cella selzionata
Cells(OldY, OldX).FormatConditions.Add Type:=xlExpression, Formula1:="=$A$1=1"
Cells(OldY, OldX).FormatConditions(1).Borders(xlLeft).LineStyle = xlContinuous
Cells(OldY, OldX).FormatConditions(1).Borders(xlLeft).Color = RGB(170, 0, 0)
Cells(OldY, OldX).FormatConditions(1).Borders(xlRight).LineStyle = xlContinuous
Cells(OldY, OldX).FormatConditions(1).Borders(xlRight).Color = RGB(170, 0, 0)
Cells(OldY, OldX).FormatConditions(1).Borders(xlTop).LineStyle = xlContinuous
Cells(OldY, OldX).FormatConditions(1).Borders(xlTop).Color = RGB(0, 0, 170)
Cells(OldY, OldX).FormatConditions(1).Borders(xlBottom).LineStyle = xlContinuous
Cells(OldY, OldX).FormatConditions(1).Borders(xlBottom).Color = RGB(0, 0, 170)
'Colore sfondo
Cells(OldY, OldX).FormatConditions(1).Interior.ColorIndex = 36
End Sub




poi qualche esperto potrà
variartelo eliminando solo la formattazione specifica.

[Modificato da federico460 16/06/2019 06:53]
Post: 2.259
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
16/06/2019 13:15

Ciao
poichè il "trova" del menu excel scatena l'evento selectionChange, è sufficiente che nel vb del foglio tu inserisca la seguente routine:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cells.Borders.LineStyle = xlLineStyleNone
Rows(Target.Row).BorderAround Weight:=xlMedium, ColorIndex:=1
End Sub

Se non vuoi evidenziare tutta la riga, basta che elimini Rows:
Target.BorderAround Weight:=xlMedium, ColorIndex:=1


Saluti




[Modificato da dodo47 16/06/2019 13:17]
Domenico
Win 10 - Excel 2016
Post: 4.157
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
17/06/2019 07:13

rendi più visibile il bordo con
Target.BorderAround Weight:=xlHairline, ColorIndex:=1

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 21:47. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com