08/05/2023 - Sgrubak ha scritto:
Appunto.
Condivido in tutto e per tutto l'approccio più consono. Perfetto!!!!
08/05/2023 - Sgrubak ha scritto:
Come ultima cosa, mi domando a cosa serva
;)) un Range di un Range …. non se po vedè ;)) chiedo venia, imperdonabile! Perfetto!!!!
Con le dovute modifiche e correzioni:
Private Sub Worksheet_Change(ByVal Target As Range)
' if column strClmKey clean up selection cells
If Not Intersect(Range(strClmKey), Target) Is Nothing Then
' delete the selected Entire Rows areas from Target
Dim rngTarget As Range
Set rngTarget = myNewRange(Target) ------> RICHIAMO FUNCTION E RETRIEVE NUOVO RANGE CHE NON CONTERRA'LE ENTIRE ROWS
' clean up cells not including Entire Rows
If Not rngTarget Is Nothing Then ------> SE IL NUOVO RANGE NON E' NOTHING, CI SONO CELLE DA TRATTARE
' set EnableEvents to prevent recursive calls to worksheet event functions
Application.EnableEvents = False
' clean up the cells
rngTarget.Select
MyClearRowsMultiple rngTarget ------> ESECUZIONE SUB CON IL NUOVO RANGE
' set EnableEvents to restore events
Application.EnableEvents = True
End If
End If
____________________________________________________________________________________________________________________________
' SKIP RANGE INTO A NEW RANGE WITHOUT FULL ROW SELECTIONS
Function myNewRange(Target As Range) As Range
' set default value
Set myNewRange = Nothing
' create new range and skip EntireRows
Dim rngX As Range
For Each rngX In Target.Areas
If rngX.Columns.Count < ActiveSheet.Columns.Count Then
If myNewRange Is Nothing Then Set myNewRange = rngX Else Set myNewRange = Union(myNewRange, rngX)
End If
Next rngX
End Function
Direi che a questo punto ci siamo…
Non so come ringraziarti per avermi seguito e suggerito le più razionali soluzioni
Veramente molto gentile
Grazie mille !!!