Ciao Lukettino,
ho il seguente problema: nella tabella sotto avrei necessita di inserire una formattazione con formula che quando nell'ultima colonna legge nel rigo "ANN" mi barra il contenuto di tutte le altre celle ad esclusione delle prime 2.
| PALLET |
MARCA |
DE |
MAT |
C. |
LOT |
UPS |
NOTE UFFICIO |
| 64ZMA11DA |
AN/300 |
88,9 |
AC |
6312 |
TB1205 |
U. |
annullato 25-10-22 |
| 64ZMA11DA |
AN/314 |
88,9 |
AC |
6312 |
TB1205 |
U. |
annullato 25-10-22 |
| 64AIS15DA |
DD/002 |
33,7 |
AIM |
6312 |
TB1205 |
U. |
annullato 03-10-22 |
| 64AIS15DA |
DD/003 |
33,7 |
AIM |
6312 |
TB1205 |
U. |
annullato 03-10-22 |
in realtà la formattazione l'avrei anche trovata, vedi sotto, ma essendo una tabella che viene aggiornata con nuove righe ogni 15/20gg, quando le stesse vengono aggiunte la formattazione non si espande e resta solo alle righe formattate in precedenza .
altra cosa, dopo qualche giorno mi ritrovo addirittura ad avere copia della regola della formattazione ma con riferimenti differenti.

non so se sono stato abbastanza chiaro, attendo vostro aiuto.
Forse non ho compreso appieno le tue esigenze, ma, per quanto ne so, non è possibile utilizzare la formattazione condizionale per bloccare il contenuto delle celle.
Per un modo per bloccare le celle richieste quando la colonna NOTE UFFICIO è segnata come annullato, prova qualcosa del genere:
- Fai clic dx sulla linguetta del foglio di interesse
- Seleziona l'opzione Visualizza Codice dal **** menu contestuale risultante
- Incolla il seguente codice:
'========>>
Option Explicit
Option Compare Text
'-------->>
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range, Rng\_Da\_Bloccare As Range, Rng\_Note As Range
Dim i As Long
Const sColonne\_Da\_Bloccare As String = **"C:G" '<<=== Modifica**
Const sColonna\_Note As String = **"H:H" '<<=== Modifica**
With Me
Set Rng\_Da\_Bloccare = .Range(sColonne\_Da\_Bloccare)
Set Rng\_Note = .Range(sColonna\_Note)
End With
Set Rng = Intersect(Rng\_Da\_Bloccare, Target)
If Not Rng Is Nothing Then
For i = 1 To Rng.Rows.Count
If Left(Intersect(Rng.Rows(i).EntireRow, Rng\_Note), 3) = "ann" Then
On Error GoTo XIT
With Application
.EnableEvents = False
.Undo
End With
Call MsgBox(Prompt:="Impossibile modificare i record annullati!", \_
Buttons:=vbCritical, \_
Title:="REPORT")
End If
Next i
End If
XIT:
Application.EnableEvents = True
End Sub
'<<========
- Alt+Q per chiudere l'editor di VBA e tornare a Excel.
- Salva il file con l'estensione xlsm.
- Ctrl+R per accedere alla finestra Project Explorer ('Gestione progetti')
- Fai doppio clic sul modulo ThisWorkbook (Questa_cartella_di_Lavoro) del file e incolla il seguente codice:
- Alt+Q per chiudere l'editor di VBA e tornare a Excel
Potresti scaricare il mio file di prova Lukettino20221130.xlsm
A causa di un problema con l'attuale editor del forum, che inserisce righe vuote indesiderate nel codice copiato dal forum, suggerirei di copiare il mio codice direttamente dal mio file di prova.
===
Regards,
Norman
