ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   delete row code to be modified very slightly?? (https://www.excelbanter.com/excel-programming/378730-delete-row-code-modified-very-slightly.html)

Corey

delete row code to be modified very slightly??
 
~~~~~~~~~~~
Sub DeleteEvent()
If Not
Application.Intersect(Range("A28,A32,A36,A40,A44,A 48,A52,A56,A60,A64,A68,A72,A76,A80,A84,A88,A92,A96 ,A90"),
ActiveCell) Is Nothing Then
ActiveCell.Resize(4).EntireRow.Delete
End If
End Sub
~~~~~~~~~~~

The above code works great for my needs as it deletes the highlighted row
and the 3 rows below it also(4 in total).
But as i have now found once i protect the sheet i need to not allow that
row being selected anymore,
but instead i need the code to work if a cell is selected, rather than the
row. BUT the cell will be 1 row lower than the needed 1st row to be deleted.

EG.

Previously i would highlight row 28, and when i click a commandbutton to run
the code,
rows 28-31(4 rows) would be deleted.
Now that the sheet is protected the user cannot select the row to highlight
the 1st row to be deleted.
I now need the cell A29 to be selected(which is not locked) then when the
user runs the code from the commandbutton,
the above row and the folowing 3 rows(4 in total) will be deleted.


The rows can be anywhere in the sheet from 28-240(in lots of 4 rows when
deleted)

Can some help me to adjust this code to suit that?

ctm



Ron de Bruin

delete row code to be modified very slightly??
 
Hi Corey

Change the cells in the range to the unlocked cells and use this in the code

ActiveCell.Offset(-1, 0).Resize(4)

With offset we go one row up before we resize

--

Regards Ron de Bruin
http://www.rondebruin.nl



"Corey" wrote in message
...
~~~~~~~~~~~
Sub DeleteEvent()
If Not
Application.Intersect(Range("A28,A32,A36,A40,A44,A 48,A52,A56,A60,A64,A68,A72,A76,A80,A84,A88,A92,A96 ,A90"),
ActiveCell) Is Nothing Then
ActiveCell.Resize(4).EntireRow.Delete
End If
End Sub
~~~~~~~~~~~

The above code works great for my needs as it deletes the highlighted row
and the 3 rows below it also(4 in total).
But as i have now found once i protect the sheet i need to not allow that
row being selected anymore,
but instead i need the code to work if a cell is selected, rather than the
row. BUT the cell will be 1 row lower than the needed 1st row to be
deleted.

EG.

Previously i would highlight row 28, and when i click a commandbutton to
run the code,
rows 28-31(4 rows) would be deleted.
Now that the sheet is protected the user cannot select the row to
highlight the 1st row to be deleted.
I now need the cell A29 to be selected(which is not locked) then when the
user runs the code from the commandbutton,
the above row and the folowing 3 rows(4 in total) will be deleted.


The rows can be anywhere in the sheet from 28-240(in lots of 4 rows when
deleted)

Can some help me to adjust this code to suit that?

ctm



John Bundy

delete row code to be modified very slightly??
 
Just offset the row one like this:

ActiveCell.Offset(-1, 1).Resize(4).EntireRow.Delete

John

"Corey" wrote:

~~~~~~~~~~~
Sub DeleteEvent()
If Not
Application.Intersect(Range("A28,A32,A36,A40,A44,A 48,A52,A56,A60,A64,A68,A72,A76,A80,A84,A88,A92,A96 ,A90"),
ActiveCell) Is Nothing Then
ActiveCell.Resize(4).EntireRow.Delete
End If
End Sub
~~~~~~~~~~~

The above code works great for my needs as it deletes the highlighted row
and the 3 rows below it also(4 in total).
But as i have now found once i protect the sheet i need to not allow that
row being selected anymore,
but instead i need the code to work if a cell is selected, rather than the
row. BUT the cell will be 1 row lower than the needed 1st row to be deleted.

EG.

Previously i would highlight row 28, and when i click a commandbutton to run
the code,
rows 28-31(4 rows) would be deleted.
Now that the sheet is protected the user cannot select the row to highlight
the 1st row to be deleted.
I now need the cell A29 to be selected(which is not locked) then when the
user runs the code from the commandbutton,
the above row and the folowing 3 rows(4 in total) will be deleted.


The rows can be anywhere in the sheet from 28-240(in lots of 4 rows when
deleted)

Can some help me to adjust this code to suit that?

ctm




Corey

delete row code to be modified very slightly??
 
Sub DeleteEvent()
If Not
Application.Intersect(Range("A28,A32,A36,A40,A44,A 48,A52,A56,A60,A64,A68,A72,A76,A80,A84,A88,A92,A96 ,A90"),
ActiveCell) Is Nothing Then
' ActiveCell.Resize(4).EntireRow.Delete
ActiveCell.Offset(-1, 0).Resize(4).EntireRow.Delete ' <======= Is
that want you meant Ron ??

End If
End Sub

Ithe code does not seem to do anything now??

Corey....
"Ron de Bruin" wrote in message
...
Hi Corey

Change the cells in the range to the unlocked cells and use this in the
code

ActiveCell.Offset(-1, 0).Resize(4)

With offset we go one row up before we resize

--

Regards Ron de Bruin
http://www.rondebruin.nl



"Corey" wrote in message
...
~~~~~~~~~~~
Sub DeleteEvent()
If Not
Application.Intersect(Range("A28,A32,A36,A40,A44,A 48,A52,A56,A60,A64,A68,A72,A76,A80,A84,A88,A92,A96 ,A90"),
ActiveCell) Is Nothing Then
ActiveCell.Resize(4).EntireRow.Delete
End If
End Sub
~~~~~~~~~~~

The above code works great for my needs as it deletes the highlighted row
and the 3 rows below it also(4 in total).
But as i have now found once i protect the sheet i need to not allow that
row being selected anymore,
but instead i need the code to work if a cell is selected, rather than
the row. BUT the cell will be 1 row lower than the needed 1st row to be
deleted.

EG.

Previously i would highlight row 28, and when i click a commandbutton to
run the code,
rows 28-31(4 rows) would be deleted.
Now that the sheet is protected the user cannot select the row to
highlight the 1st row to be deleted.
I now need the cell A29 to be selected(which is not locked) then when the
user runs the code from the commandbutton,
the above row and the folowing 3 rows(4 in total) will be deleted.


The rows can be anywhere in the sheet from 28-240(in lots of 4 rows when
deleted)

Can some help me to adjust this code to suit that?

ctm





Ron de Bruin

delete row code to be modified very slightly??
 
You must also change the range
Application.Intersect(Range("A28,A32,A36,A40,A44,A 48,A52,A56,A60,A64,.....................


A28 must be A29 now and A32 must be ? and........................

--

Regards Ron de Bruin
http://www.rondebruin.nl



"Corey" wrote in message
...
Sub DeleteEvent()
If Not
Application.Intersect(Range("A28,A32,A36,A40,A44,A 48,A52,A56,A60,A64,A68,A72,A76,A80,A84,A88,A92,A96 ,A90"),
ActiveCell) Is Nothing Then
' ActiveCell.Resize(4).EntireRow.Delete
ActiveCell.Offset(-1, 0).Resize(4).EntireRow.Delete ' <======= Is
that want you meant Ron ??

End If
End Sub

Ithe code does not seem to do anything now??

Corey....
"Ron de Bruin" wrote in message
...
Hi Corey

Change the cells in the range to the unlocked cells and use this in the
code

ActiveCell.Offset(-1, 0).Resize(4)

With offset we go one row up before we resize

--

Regards Ron de Bruin
http://www.rondebruin.nl



"Corey" wrote in message
...
~~~~~~~~~~~
Sub DeleteEvent()
If Not
Application.Intersect(Range("A28,A32,A36,A40,A44,A 48,A52,A56,A60,A64,A68,A72,A76,A80,A84,A88,A92,A96 ,A90"),
ActiveCell) Is Nothing Then
ActiveCell.Resize(4).EntireRow.Delete
End If
End Sub
~~~~~~~~~~~

The above code works great for my needs as it deletes the highlighted
row and the 3 rows below it also(4 in total).
But as i have now found once i protect the sheet i need to not allow
that row being selected anymore,
but instead i need the code to work if a cell is selected, rather than
the row. BUT the cell will be 1 row lower than the needed 1st row to be
deleted.

EG.

Previously i would highlight row 28, and when i click a commandbutton to
run the code,
rows 28-31(4 rows) would be deleted.
Now that the sheet is protected the user cannot select the row to
highlight the 1st row to be deleted.
I now need the cell A29 to be selected(which is not locked) then when
the user runs the code from the commandbutton,
the above row and the folowing 3 rows(4 in total) will be deleted.


The rows can be anywhere in the sheet from 28-240(in lots of 4 rows when
deleted)

Can some help me to adjust this code to suit that?

ctm






Corey

delete row code to be modified very slightly??
 
After changing the ranges to suit,
I now get an error:
Delete method of range class failed.

And the :
ActiveCell.Offset(-1, 0).Resize(4).EntireRow.Delete
Is highlighted in the code??


Corey....
"Ron de Bruin" wrote in message
...
You must also change the range
Application.Intersect(Range("A28,A32,A36,A40,A44,A 48,A52,A56,A60,A64,.....................


A28 must be A29 now and A32 must be ? and........................

--

Regards Ron de Bruin
http://www.rondebruin.nl



"Corey" wrote in message
...
Sub DeleteEvent()
If Not
Application.Intersect(Range("A28,A32,A36,A40,A44,A 48,A52,A56,A60,A64,A68,A72,A76,A80,A84,A88,A92,A96 ,A90"),
ActiveCell) Is Nothing Then
' ActiveCell.Resize(4).EntireRow.Delete
ActiveCell.Offset(-1, 0).Resize(4).EntireRow.Delete ' <======= Is
that want you meant Ron ??

End If
End Sub

Ithe code does not seem to do anything now??

Corey....
"Ron de Bruin" wrote in message
...
Hi Corey

Change the cells in the range to the unlocked cells and use this in the
code

ActiveCell.Offset(-1, 0).Resize(4)

With offset we go one row up before we resize

--

Regards Ron de Bruin
http://www.rondebruin.nl



"Corey" wrote in message
...
~~~~~~~~~~~
Sub DeleteEvent()
If Not
Application.Intersect(Range("A28,A32,A36,A40,A44,A 48,A52,A56,A60,A64,A68,A72,A76,A80,A84,A88,A92,A96 ,A90"),
ActiveCell) Is Nothing Then
ActiveCell.Resize(4).EntireRow.Delete
End If
End Sub
~~~~~~~~~~~

The above code works great for my needs as it deletes the highlighted
row and the 3 rows below it also(4 in total).
But as i have now found once i protect the sheet i need to not allow
that row being selected anymore,
but instead i need the code to work if a cell is selected, rather than
the row. BUT the cell will be 1 row lower than the needed 1st row to be
deleted.

EG.

Previously i would highlight row 28, and when i click a commandbutton
to run the code,
rows 28-31(4 rows) would be deleted.
Now that the sheet is protected the user cannot select the row to
highlight the 1st row to be deleted.
I now need the cell A29 to be selected(which is not locked) then when
the user runs the code from the commandbutton,
the above row and the folowing 3 rows(4 in total) will be deleted.


The rows can be anywhere in the sheet from 28-240(in lots of 4 rows
when deleted)

Can some help me to adjust this code to suit that?

ctm








Corey

delete row code to be modified very slightly??
 
Never mind.
I had a called code to unprotect the sheet but i selected the wrong code
that was unprotecting the wrong shet.

Thanks for your assistance

Corey....

"Ron de Bruin" wrote in message
...
You must also change the range
Application.Intersect(Range("A28,A32,A36,A40,A44,A 48,A52,A56,A60,A64,.....................


A28 must be A29 now and A32 must be ? and........................

--

Regards Ron de Bruin
http://www.rondebruin.nl



"Corey" wrote in message
...
Sub DeleteEvent()
If Not
Application.Intersect(Range("A28,A32,A36,A40,A44,A 48,A52,A56,A60,A64,A68,A72,A76,A80,A84,A88,A92,A96 ,A90"),
ActiveCell) Is Nothing Then
' ActiveCell.Resize(4).EntireRow.Delete
ActiveCell.Offset(-1, 0).Resize(4).EntireRow.Delete ' <======= Is
that want you meant Ron ??

End If
End Sub

Ithe code does not seem to do anything now??

Corey....
"Ron de Bruin" wrote in message
...
Hi Corey

Change the cells in the range to the unlocked cells and use this in the
code

ActiveCell.Offset(-1, 0).Resize(4)

With offset we go one row up before we resize

--

Regards Ron de Bruin
http://www.rondebruin.nl



"Corey" wrote in message
...
~~~~~~~~~~~
Sub DeleteEvent()
If Not
Application.Intersect(Range("A28,A32,A36,A40,A44,A 48,A52,A56,A60,A64,A68,A72,A76,A80,A84,A88,A92,A96 ,A90"),
ActiveCell) Is Nothing Then
ActiveCell.Resize(4).EntireRow.Delete
End If
End Sub
~~~~~~~~~~~

The above code works great for my needs as it deletes the highlighted
row and the 3 rows below it also(4 in total).
But as i have now found once i protect the sheet i need to not allow
that row being selected anymore,
but instead i need the code to work if a cell is selected, rather than
the row. BUT the cell will be 1 row lower than the needed 1st row to be
deleted.

EG.

Previously i would highlight row 28, and when i click a commandbutton
to run the code,
rows 28-31(4 rows) would be deleted.
Now that the sheet is protected the user cannot select the row to
highlight the 1st row to be deleted.
I now need the cell A29 to be selected(which is not locked) then when
the user runs the code from the commandbutton,
the above row and the folowing 3 rows(4 in total) will be deleted.


The rows can be anywhere in the sheet from 28-240(in lots of 4 rows
when deleted)

Can some help me to adjust this code to suit that?

ctm








Ron de Bruin

delete row code to be modified very slightly??
 
If you protect your sheet manual it is not possible to delete rows with
locked cells in it in 2002 and up
if you check the delete rows setting when you protect your sheet.

Your only way is to protect your sheet with code
Remove your sheet protection of "Sheet1" ?
Insert this in the thisworkbook module

Private Sub Workbook_Open()
With Worksheets("sheet1")
.EnableSelection = xlUnlockedCells
.Protect Password:="hi", userinterfaceonly:=True
End With
End Sub

Then save/close and reopen the file


--

Regards Ron de Bruin
http://www.rondebruin.nl



"Corey" wrote in message
...
After changing the ranges to suit,
I now get an error:
Delete method of range class failed.

And the :
ActiveCell.Offset(-1, 0).Resize(4).EntireRow.Delete
Is highlighted in the code??


Corey....
"Ron de Bruin" wrote in message
...
You must also change the range
Application.Intersect(Range("A28,A32,A36,A40,A44,A 48,A52,A56,A60,A64,.....................


A28 must be A29 now and A32 must be ? and........................

--

Regards Ron de Bruin
http://www.rondebruin.nl



"Corey" wrote in message
...
Sub DeleteEvent()
If Not
Application.Intersect(Range("A28,A32,A36,A40,A44,A 48,A52,A56,A60,A64,A68,A72,A76,A80,A84,A88,A92,A96 ,A90"),
ActiveCell) Is Nothing Then
' ActiveCell.Resize(4).EntireRow.Delete
ActiveCell.Offset(-1, 0).Resize(4).EntireRow.Delete ' <======= Is
that want you meant Ron ??

End If
End Sub

Ithe code does not seem to do anything now??

Corey....
"Ron de Bruin" wrote in message
...
Hi Corey

Change the cells in the range to the unlocked cells and use this in the
code

ActiveCell.Offset(-1, 0).Resize(4)

With offset we go one row up before we resize

--

Regards Ron de Bruin
http://www.rondebruin.nl



"Corey" wrote in message
...
~~~~~~~~~~~
Sub DeleteEvent()
If Not
Application.Intersect(Range("A28,A32,A36,A40,A44,A 48,A52,A56,A60,A64,A68,A72,A76,A80,A84,A88,A92,A96 ,A90"),
ActiveCell) Is Nothing Then
ActiveCell.Resize(4).EntireRow.Delete
End If
End Sub
~~~~~~~~~~~

The above code works great for my needs as it deletes the highlighted
row and the 3 rows below it also(4 in total).
But as i have now found once i protect the sheet i need to not allow
that row being selected anymore,
but instead i need the code to work if a cell is selected, rather than
the row. BUT the cell will be 1 row lower than the needed 1st row to
be deleted.

EG.

Previously i would highlight row 28, and when i click a commandbutton
to run the code,
rows 28-31(4 rows) would be deleted.
Now that the sheet is protected the user cannot select the row to
highlight the 1st row to be deleted.
I now need the cell A29 to be selected(which is not locked) then when
the user runs the code from the commandbutton,
the above row and the folowing 3 rows(4 in total) will be deleted.


The rows can be anywhere in the sheet from 28-240(in lots of 4 rows
when deleted)

Can some help me to adjust this code to suit that?

ctm









Ron de Bruin

delete row code to be modified very slightly??
 
See my reply for another way Corey


--

Regards Ron de Bruin
http://www.rondebruin.nl



"Corey" wrote in message
...
Never mind.
I had a called code to unprotect the sheet but i selected the wrong code
that was unprotecting the wrong shet.

Thanks for your assistance

Corey....

"Ron de Bruin" wrote in message
...
You must also change the range
Application.Intersect(Range("A28,A32,A36,A40,A44,A 48,A52,A56,A60,A64,.....................


A28 must be A29 now and A32 must be ? and........................

--

Regards Ron de Bruin
http://www.rondebruin.nl



"Corey" wrote in message
...
Sub DeleteEvent()
If Not
Application.Intersect(Range("A28,A32,A36,A40,A44,A 48,A52,A56,A60,A64,A68,A72,A76,A80,A84,A88,A92,A96 ,A90"),
ActiveCell) Is Nothing Then
' ActiveCell.Resize(4).EntireRow.Delete
ActiveCell.Offset(-1, 0).Resize(4).EntireRow.Delete ' <======= Is
that want you meant Ron ??

End If
End Sub

Ithe code does not seem to do anything now??

Corey....
"Ron de Bruin" wrote in message
...
Hi Corey

Change the cells in the range to the unlocked cells and use this in the
code

ActiveCell.Offset(-1, 0).Resize(4)

With offset we go one row up before we resize

--

Regards Ron de Bruin
http://www.rondebruin.nl



"Corey" wrote in message
...
~~~~~~~~~~~
Sub DeleteEvent()
If Not
Application.Intersect(Range("A28,A32,A36,A40,A44,A 48,A52,A56,A60,A64,A68,A72,A76,A80,A84,A88,A92,A96 ,A90"),
ActiveCell) Is Nothing Then
ActiveCell.Resize(4).EntireRow.Delete
End If
End Sub
~~~~~~~~~~~

The above code works great for my needs as it deletes the highlighted
row and the 3 rows below it also(4 in total).
But as i have now found once i protect the sheet i need to not allow
that row being selected anymore,
but instead i need the code to work if a cell is selected, rather than
the row. BUT the cell will be 1 row lower than the needed 1st row to
be deleted.

EG.

Previously i would highlight row 28, and when i click a commandbutton
to run the code,
rows 28-31(4 rows) would be deleted.
Now that the sheet is protected the user cannot select the row to
highlight the 1st row to be deleted.
I now need the cell A29 to be selected(which is not locked) then when
the user runs the code from the commandbutton,
the above row and the folowing 3 rows(4 in total) will be deleted.


The rows can be anywhere in the sheet from 28-240(in lots of 4 rows
when deleted)

Can some help me to adjust this code to suit that?

ctm










All times are GMT +1. The time now is 01:20 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com