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

EXCELL - Evidenziare sequenza celle vuote

Ultimo Aggiornamento: 08/11/2017 08:52
Post: 1
Registrato il: 07/11/2017
Città: BERGAMO
Età: 33
Utente Junior
Excel 2016
OFFLINE
07/11/2017 15:29

[RISOLTO] - Evidenziare sequenza celle vuote
Buongiorno,
non sono molto esperto di excel, e se possibile vorrei un aiuto in merito.
Ho provato a cercare nel sito, e su Internet, ma non ho trovato la soluzione che fa al caso specifico.

In poche parole:
- ho un file Excell dove ci sono diverse colonne con circa 100 celle da compilare di volta in volta.
- In ogni colonna sono intervallate "celle con numeri" e "celle vuote".
- VORREI CHE NEL MOMENTO IN CUI SI PRESENTANO 7 CELLE VUOTE DI FILA, QUESTE VENGANO EVIDENZIATE.

il modo più semplice per fare ciò, oltre che esteticamente carino, credo sia con questi passaggi:
1) Formattazione condizionale;
2) Regole evidenziazione celle;
3) Altre regole;
4) Utilizza una formula per determinare le celle da formattare;
5) FORMATTA I VALORI PER CUI QUESTA FORMULA RESTITUISCE VERO.


Allego il file .xlsx

Ringrazio anticipatamente per l'aiuto.

P.S: Se riesce a dare un colore diverso per sequenza di 7, sequenza di 8, sequenza di 9, sarebbe perfetto.
[Modificato da SphoenixS 08/11/2017 08:55]
Post: 2.039
Registrato il: 21/03/2008
Città: LOCATE VARESINO
Età: 76
Utente Veteran
2007 / 13
OFFLINE
07/11/2017 18:49

ciao

lavoro da fare con sub() o macro

da inserire nel modulo del foglio

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:P123")) Is Nothing Then Exit Sub
On Error Resume Next
Dim r As Long, c As Long
Dim Rp As Long, Rf As Long
Range("A1:P123").Interior.ColorIndex = xlNone
For c = 1 To 16
Rp = 1
Rf = 0
For r = 1 To 123
If Cells(r, c) = "" Then
Rf = Rf + 1
Else
Rf = 0
Rp = r + 1
End If
If Rf > 6 Then Range(Cells(Rp, c), Cells(Rf + Rp - 1, c)).Interior.ColorIndex = Rf
If Rf > 55 Then Range(Cells(Rp, c), Cells(Rf + Rp - 1, c)).Interior.ColorIndex = 55 ''xlNone
Next r
Next c
End Sub



allego il tuo file in modalita' macro

PS ho visto adesso che il minimo sono 7 e non 6 modifico la sub eliminando = va modificata anche nel file allegato
riciao
[Modificato da locatevaresino 07/11/2017 18:53]
Ciao da locate
excel 2007 / 13
Post: 2
Registrato il: 07/11/2017
Città: BERGAMO
Età: 33
Utente Junior
Excel 2016
OFFLINE
07/11/2017 19:17

Re:
locatevaresino, 07/11/2017 18.49:

ciao

lavoro da fare con sub() o macro

da inserire nel modulo del foglio

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:P123")) Is Nothing Then Exit Sub
On Error Resume Next
Dim r As Long, c As Long
Dim Rp As Long, Rf As Long
Range("A1:P123").Interior.ColorIndex = xlNone
For c = 1 To 16
Rp = 1
Rf = 0
For r = 1 To 123
If Cells(r, c) = "" Then
Rf = Rf + 1
Else
Rf = 0
Rp = r + 1
End If
If Rf > 6 Then Range(Cells(Rp, c), Cells(Rf + Rp - 1, c)).Interior.ColorIndex = Rf
If Rf > 55 Then Range(Cells(Rp, c), Cells(Rf + Rp - 1, c)).Interior.ColorIndex = 55 ''xlNone
Next r
Next c
End Sub



allego il tuo file in modalita' macro

PS ho visto adesso che il minimo sono 7 e non 6 modifico la sub eliminando = va modificata anche nel file allegato
riciao




Ciao,

non saprei proprio da dove cominciare :.(

Potresti dirmi passo per passo come fare?

Allego comunque il file excel semidefinitivo (vorrei aggiungere altre colonne)


Post: 2.040
Registrato il: 21/03/2008
Città: LOCATE VARESINO
Età: 76
Utente Veteran
2007 / 13
OFFLINE
07/11/2017 23:08

ciao

come stiamo a VBA ????
spiegare questi passaggi e' un pochino problematico per chi non conosce VBA

comunque tentero' di darti delle risposte

PS NON RIPORTARE QUELLO CHE VIENE SCRITTO IN PRECEDENZA (LAVORO INUTILE)

la sub() in questione in base al tuo file postato e stata cambiata radicalmente in quanto da cella C4 a cella Xx ci sono delle formule


Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:A10000")) Is Nothing Then Exit Sub ''se modifichi in colonna A:A si attiva la sub
On Error Resume Next
Application.ScreenUpdating = False
Dim r As Long, c As Long
Dim Rp As Long, Rf As Long
Dim Nriga As Long, Ncolonna As Long ''fino qui vengono indicizzate le variabili
Nriga = UsedRange.Row + UsedRange.Rows.Count - 1
Ncolonna = UsedRange.Column + UsedRange.Columns.Count - 1 ''trovo l'ultima riga e colonna occupata
Range(Cells(4, 3), Cells(Nriga, Ncolonna)).Interior.ColorIndex = xlNone ''elimino varie colorazioni
For c = 3 To Ncolonna ''qui incomincia il lavoro dei due cicli
Rp = 4 ''riga di partenza
Rf = 0 ''numero celle vuote
For r = 4 To Nriga
If Cells(r, c) = "" Then
Rf = Rf + 1 ''conto celle vuote
Else 'se trovo una cella piena porte le variabili inizio fine ai valori di partenza
Rf = 0
Rp = r + 1
End If
If Rf > 6 Then Range(Cells(Rp, c), Cells(Rf + Rp - 1, c)).Interior.ColorIndex = Rf ''coloro con i colori di excel
If Rf > 55 Then Range(Cells(Rp, c), Cells(Rf + Rp - 1, c)).Interior.ColorIndex = xlNone ''non inserisco nessun colore
Next r
Next c
Application.ScreenUpdating = True
End Sub



riallego il tuo file

Ciao da locate
excel 2007 / 13
Post: 3
Registrato il: 07/11/2017
Città: BERGAMO
Età: 33
Utente Junior
Excel 2016
OFFLINE
08/11/2017 08:52

Ciao
Ti ringrazio molto :), sei stato davvero gentile. Userò il file che mi hai mandato.

A usare macro o altro non sono proprio in grado.
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]
celle vuote (5 messaggi, agg.: 29/08/2020 18:06)
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 04:00. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com