Ciao a tutti,
con questa macro creata da Anthony e modificata da Avatar3 riuscivo a cancellare tutte le righe di dati all’interno di una tabella.
- Codice: Seleziona tutto
Sub CancTab()
Sheets("Foglio8").Select
UR = Range("B" & Rows.Count).End(xlUp).Row
IF UR < 19 then UR = 19
ActiveSheet.Unprotect
Rows("19:" & UR).Delete Shift:=xlUp
Range("B17").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Ora ho creato un'altra macro che esegue alcuni passaggi che mi servono, tra i quali la funzione che più mi interessa è quella di proteggere Tabella1 (creata in foglio4 con intervallo iniziale A7:D7 per le intestazioni e A9:D9 per la riga del totale. Come l’altra volta alla tabella vengono aggiunte righe tramite attivazione di un’altra macro, quindi non esiste un numero di righe prestabilito).
Questa macro di protezione ha senso se precedentemente viene attivata un’altra macro, che ha il compito di togliere la protezione da Tabella1 per permettermi di eseguire modifiche (che consistono esclusivamente nel cancellare manualmente tramite il tasto CANC i dati presenti in una riga qualsiasi.)
L’altra volta la macro eliminava tutte le righe della tabella non facendo distinzione tra righe vuote o con dati all’interno..
Ora l’obiettivo da raggiungere per il quale vi chiedo un aiuto sarebbe quello di implementare la macro qui sotto, in modo da controllare se in Tabella1 sono presenti righe vuote e eliminarle prima di riattivare la protezione. Ho provato a pasticciare un po’, ma non funziona ancora perfettamente…
(EVIDENZIO LA RIGA AGGIUNTA DA ME)
- Codice: Seleziona tutto
Application.ScreenUpdating = False
ActiveSheet.Unprotect
Range("Tabella1[#Headers]").Select
Selection.Copy
Range("Tabella1").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("A8:D8").Select
Selection.ListObject.ListRows(1).Delete
Range("A5:D5").Select
Selection.Locked = False
Selection.FormulaHidden = False
Range("Tabella1").SpecialCells(xlCellTypeBlanks).EntireRow.Delete '>>>AGGIUNTA DA ME<<<
Range("Tabella1").Select
Selection.Locked = True
Range("A5").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Application.ScreenUpdating = True
End Sub
Con la modifica che ho fatto la macro elimina correttamente le righe vuote, ma se non ne trova nemmeno una mi dà un errore..
Mancherebe l'informazione per dire alla macro di uscire dalla sub che nel caso in cui non ci fossero righe vuote e procedere normalmente..
Grazie per l'aiuto
Marte1503