ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Clear then move text up (https://www.excelbanter.com/excel-programming/322487-clear-then-move-text-up.html)

gregork

Clear then move text up
 
I have the following code for clearing an entry on a worksheet:

Dim rng As Range, res As Variant, rng1 As Range
Set rng = Worksheets("B Sheet").Range("b8:b23")


res = Application.Match(CStr(ComboBox1.Text), rng, 0)
If Not IsError(res) Then
Set rng1 = rng(res)
rng1.Offset(0, 5).ClearContents
rng1.Offset(0, 0).ClearContents

What do I need to add to the code to move up the entries in the cells below
the entry I am deleting and within the range ?
I have different data in the cells below B23 so I can't have the text in
those cells move up.I have tried Delete Shift:=xlUp and it just puts messes
up all the cells below the range ("b8:b23").


Cheers
gregork





Dave Peterson[_5_]

Clear then move text up
 
You only want to move the cells under that column:

rng1.Offset(0, 5).Delete Shift:=xlUp
rng1.Offset(0, 0).Delete Shift:=xlUp

if you want to delete the entire row, you only have to do it once.
rng1.Offset(0, 0).EntireRow.Delete

gregork wrote:

I have the following code for clearing an entry on a worksheet:

Dim rng As Range, res As Variant, rng1 As Range
Set rng = Worksheets("B Sheet").Range("b8:b23")

res = Application.Match(CStr(ComboBox1.Text), rng, 0)
If Not IsError(res) Then
Set rng1 = rng(res)
rng1.Offset(0, 5).ClearContents
rng1.Offset(0, 0).ClearContents

What do I need to add to the code to move up the entries in the cells below
the entry I am deleting and within the range ?
I have different data in the cells below B23 so I can't have the text in
those cells move up.I have tried Delete Shift:=xlUp and it just puts messes
up all the cells below the range ("b8:b23").

Cheers
gregork


--

Dave Peterson

gregork

Clear then move text up
 
Thanks for the reply Dave.
I don't want to move the cells in the column only the text.The range
"Worksheets("B Sheet").Range("b8:b23")" is essentially a form with borders
that I print out. When I use "Delete Shift:=xlUp" to move the text up that
is under the text I am clearing I end up with my form in a mess (borders out
and formulas I have in cells moved etc.)
I just want to clear the data and then have any text below the data move up
to replace it (NB. providing that data is within the range "Worksheets("B
Sheet").Range("b8:b23")".

Regards
gregork

"Dave Peterson" wrote in message
...
You only want to move the cells under that column:

rng1.Offset(0, 5).Delete Shift:=xlUp
rng1.Offset(0, 0).Delete Shift:=xlUp

if you want to delete the entire row, you only have to do it once.
rng1.Offset(0, 0).EntireRow.Delete

gregork wrote:

I have the following code for clearing an entry on a worksheet:

Dim rng As Range, res As Variant, rng1 As Range
Set rng = Worksheets("B Sheet").Range("b8:b23")

res = Application.Match(CStr(ComboBox1.Text), rng, 0)
If Not IsError(res) Then
Set rng1 = rng(res)
rng1.Offset(0, 5).ClearContents
rng1.Offset(0, 0).ClearContents

What do I need to add to the code to move up the entries in the cells

below
the entry I am deleting and within the range ?
I have different data in the cells below B23 so I can't have the text

in
those cells move up.I have tried Delete Shift:=xlUp and it just puts

messes
up all the cells below the range ("b8:b23").

Cheers
gregork


--

Dave Peterson




Dave Peterson[_5_]

Clear then move text up
 
Maybe you could just assign the values from the cells underneath it and then
clear that last cell in the range.

Kind of like:

Option Explicit
Sub testme()
Dim myRng As Range
Set myRng = Worksheets("B Sheet").Range("b8:b23")

With myRng
With .Resize(.Rows.Count - 1, 1)
.Value = .Offset(1, 0).Value
End With
.Cells(.Cells.Count).ClearContents
End With
End Sub




gregork wrote:

Thanks for the reply Dave.
I don't want to move the cells in the column only the text.The range
"Worksheets("B Sheet").Range("b8:b23")" is essentially a form with borders
that I print out. When I use "Delete Shift:=xlUp" to move the text up that
is under the text I am clearing I end up with my form in a mess (borders out
and formulas I have in cells moved etc.)
I just want to clear the data and then have any text below the data move up
to replace it (NB. providing that data is within the range "Worksheets("B
Sheet").Range("b8:b23")".

Regards
gregork

"Dave Peterson" wrote in message
...
You only want to move the cells under that column:

rng1.Offset(0, 5).Delete Shift:=xlUp
rng1.Offset(0, 0).Delete Shift:=xlUp

if you want to delete the entire row, you only have to do it once.
rng1.Offset(0, 0).EntireRow.Delete

gregork wrote:

I have the following code for clearing an entry on a worksheet:

Dim rng As Range, res As Variant, rng1 As Range
Set rng = Worksheets("B Sheet").Range("b8:b23")

res = Application.Match(CStr(ComboBox1.Text), rng, 0)
If Not IsError(res) Then
Set rng1 = rng(res)
rng1.Offset(0, 5).ClearContents
rng1.Offset(0, 0).ClearContents

What do I need to add to the code to move up the entries in the cells

below
the entry I am deleting and within the range ?
I have different data in the cells below B23 so I can't have the text

in
those cells move up.I have tried Delete Shift:=xlUp and it just puts

messes
up all the cells below the range ("b8:b23").

Cheers
gregork


--

Dave Peterson


--

Dave Peterson

gregork

Clear then move text up
 
Thanks for your help Dave. Unfortunately I can't get this to
work...everything on my sheet goes askew merged cells unmerge and I formulas
are mucked up. Might be one for the too hard basket.

Cheers
gregork

"Dave Peterson" wrote in message
...
Maybe you could just assign the values from the cells underneath it and

then
clear that last cell in the range.

Kind of like:

Option Explicit
Sub testme()
Dim myRng As Range
Set myRng = Worksheets("B Sheet").Range("b8:b23")

With myRng
With .Resize(.Rows.Count - 1, 1)
.Value = .Offset(1, 0).Value
End With
.Cells(.Cells.Count).ClearContents
End With
End Sub




gregork wrote:

Thanks for the reply Dave.
I don't want to move the cells in the column only the text.The range
"Worksheets("B Sheet").Range("b8:b23")" is essentially a form with

borders
that I print out. When I use "Delete Shift:=xlUp" to move the text up

that
is under the text I am clearing I end up with my form in a mess (borders

out
and formulas I have in cells moved etc.)
I just want to clear the data and then have any text below the data move

up
to replace it (NB. providing that data is within the range

"Worksheets("B
Sheet").Range("b8:b23")".

Regards
gregork

"Dave Peterson" wrote in message
...
You only want to move the cells under that column:

rng1.Offset(0, 5).Delete Shift:=xlUp
rng1.Offset(0, 0).Delete Shift:=xlUp

if you want to delete the entire row, you only have to do it once.
rng1.Offset(0, 0).EntireRow.Delete

gregork wrote:

I have the following code for clearing an entry on a worksheet:

Dim rng As Range, res As Variant, rng1 As Range
Set rng = Worksheets("B Sheet").Range("b8:b23")

res = Application.Match(CStr(ComboBox1.Text), rng, 0)
If Not IsError(res) Then
Set rng1 = rng(res)
rng1.Offset(0, 5).ClearContents
rng1.Offset(0, 0).ClearContents

What do I need to add to the code to move up the entries in the

cells
below
the entry I am deleting and within the range ?
I have different data in the cells below B23 so I can't have the

text
in
those cells move up.I have tried Delete Shift:=xlUp and it just puts

messes
up all the cells below the range ("b8:b23").

Cheers
gregork

--

Dave Peterson


--

Dave Peterson




Dave Peterson[_5_]

Clear then move text up
 
I find that merged cells aren't worth the paper they're printed on.

I do my best to avoid them.



gregork wrote:

Thanks for your help Dave. Unfortunately I can't get this to
work...everything on my sheet goes askew merged cells unmerge and I formulas
are mucked up. Might be one for the too hard basket.

Cheers
gregork

"Dave Peterson" wrote in message
...
Maybe you could just assign the values from the cells underneath it and

then
clear that last cell in the range.

Kind of like:

Option Explicit
Sub testme()
Dim myRng As Range
Set myRng = Worksheets("B Sheet").Range("b8:b23")

With myRng
With .Resize(.Rows.Count - 1, 1)
.Value = .Offset(1, 0).Value
End With
.Cells(.Cells.Count).ClearContents
End With
End Sub




gregork wrote:

Thanks for the reply Dave.
I don't want to move the cells in the column only the text.The range
"Worksheets("B Sheet").Range("b8:b23")" is essentially a form with

borders
that I print out. When I use "Delete Shift:=xlUp" to move the text up

that
is under the text I am clearing I end up with my form in a mess (borders

out
and formulas I have in cells moved etc.)
I just want to clear the data and then have any text below the data move

up
to replace it (NB. providing that data is within the range

"Worksheets("B
Sheet").Range("b8:b23")".

Regards
gregork

"Dave Peterson" wrote in message
...
You only want to move the cells under that column:

rng1.Offset(0, 5).Delete Shift:=xlUp
rng1.Offset(0, 0).Delete Shift:=xlUp

if you want to delete the entire row, you only have to do it once.
rng1.Offset(0, 0).EntireRow.Delete

gregork wrote:

I have the following code for clearing an entry on a worksheet:

Dim rng As Range, res As Variant, rng1 As Range
Set rng = Worksheets("B Sheet").Range("b8:b23")

res = Application.Match(CStr(ComboBox1.Text), rng, 0)
If Not IsError(res) Then
Set rng1 = rng(res)
rng1.Offset(0, 5).ClearContents
rng1.Offset(0, 0).ClearContents

What do I need to add to the code to move up the entries in the

cells
below
the entry I am deleting and within the range ?
I have different data in the cells below B23 so I can't have the

text
in
those cells move up.I have tried Delete Shift:=xlUp and it just puts
messes
up all the cells below the range ("b8:b23").

Cheers
gregork

--

Dave Peterson


--

Dave Peterson


--

Dave Peterson

gregork

Clear then move text up
 
What about, after doing the clear contents, I could somehow pull all the
remaining text off the cells and then slap it back on in order. Could you
achieve this with code?

gregork

"Dave Peterson" wrote in message
...
I find that merged cells aren't worth the paper they're printed on.

I do my best to avoid them.



gregork wrote:

Thanks for your help Dave. Unfortunately I can't get this to
work...everything on my sheet goes askew merged cells unmerge and I

formulas
are mucked up. Might be one for the too hard basket.

Cheers
gregork

"Dave Peterson" wrote in message
...
Maybe you could just assign the values from the cells underneath it

and
then
clear that last cell in the range.

Kind of like:

Option Explicit
Sub testme()
Dim myRng As Range
Set myRng = Worksheets("B Sheet").Range("b8:b23")

With myRng
With .Resize(.Rows.Count - 1, 1)
.Value = .Offset(1, 0).Value
End With
.Cells(.Cells.Count).ClearContents
End With
End Sub




gregork wrote:

Thanks for the reply Dave.
I don't want to move the cells in the column only the text.The range
"Worksheets("B Sheet").Range("b8:b23")" is essentially a form with

borders
that I print out. When I use "Delete Shift:=xlUp" to move the text

up
that
is under the text I am clearing I end up with my form in a mess

(borders
out
and formulas I have in cells moved etc.)
I just want to clear the data and then have any text below the data

move
up
to replace it (NB. providing that data is within the range

"Worksheets("B
Sheet").Range("b8:b23")".

Regards
gregork

"Dave Peterson" wrote in message
...
You only want to move the cells under that column:

rng1.Offset(0, 5).Delete Shift:=xlUp
rng1.Offset(0, 0).Delete Shift:=xlUp

if you want to delete the entire row, you only have to do it once.
rng1.Offset(0, 0).EntireRow.Delete

gregork wrote:

I have the following code for clearing an entry on a worksheet:

Dim rng As Range, res As Variant, rng1 As Range
Set rng = Worksheets("B Sheet").Range("b8:b23")

res = Application.Match(CStr(ComboBox1.Text), rng, 0)
If Not IsError(res) Then
Set rng1 = rng(res)
rng1.Offset(0, 5).ClearContents
rng1.Offset(0, 0).ClearContents

What do I need to add to the code to move up the entries in the

cells
below
the entry I am deleting and within the range ?
I have different data in the cells below B23 so I can't have

the
text
in
those cells move up.I have tried Delete Shift:=xlUp and it just

puts
messes
up all the cells below the range ("b8:b23").

Cheers
gregork

--

Dave Peterson

--

Dave Peterson


--

Dave Peterson




Dave Peterson[_5_]

Clear then move text up
 
How about looking at each cell and seeing if its the first cell in the
mergearea.

(if the cell isn't merged, then .mergearea will just be that cell.)

I set up a test in F5:F19.
F5:F12 was merged
F13 not merged
F14:f19 was merged

This kind of thing appeared to work ok:

Option Explicit
Sub testme()
Call FunnyClearOfMergedCells(Worksheets("sheet1").Range ("f5:f19"))
Call FunnyClearOfMergedCells(Worksheets("sheet1").Range ("G12:G33"))
End Sub
Sub FunnyClearOfMergedCells(myRng As Range)

Dim iCtr As Long
Dim jCtr As Long

With Worksheets("sheet1")

For iCtr = 1 To myRng.Cells.Count - 1
For jCtr = iCtr + 1 To myRng.Cells.Count
If myRng.Cells(iCtr).MergeArea.Cells(1) _
= myRng.Cells(jCtr).MergeArea.Cells(1) Then
'do nothing in same mergearea
Else
myRng.Cells(iCtr).Cells(1).Value _
= myRng.Cells(jCtr).Value
Exit For
End If
Next jCtr
Next iCtr

With myRng
.Cells(.Cells.Count).MergeArea.Value = ""
End With
End With

End Sub

So you could add that FunnyClearOfMergedCells sub and just call it with the
range specified.



gregork wrote:

What about, after doing the clear contents, I could somehow pull all the
remaining text off the cells and then slap it back on in order. Could you
achieve this with code?

gregork

"Dave Peterson" wrote in message
...
I find that merged cells aren't worth the paper they're printed on.

I do my best to avoid them.



gregork wrote:

Thanks for your help Dave. Unfortunately I can't get this to
work...everything on my sheet goes askew merged cells unmerge and I

formulas
are mucked up. Might be one for the too hard basket.

Cheers
gregork

"Dave Peterson" wrote in message
...
Maybe you could just assign the values from the cells underneath it

and
then
clear that last cell in the range.

Kind of like:

Option Explicit
Sub testme()
Dim myRng As Range
Set myRng = Worksheets("B Sheet").Range("b8:b23")

With myRng
With .Resize(.Rows.Count - 1, 1)
.Value = .Offset(1, 0).Value
End With
.Cells(.Cells.Count).ClearContents
End With
End Sub




gregork wrote:

Thanks for the reply Dave.
I don't want to move the cells in the column only the text.The range
"Worksheets("B Sheet").Range("b8:b23")" is essentially a form with
borders
that I print out. When I use "Delete Shift:=xlUp" to move the text

up
that
is under the text I am clearing I end up with my form in a mess

(borders
out
and formulas I have in cells moved etc.)
I just want to clear the data and then have any text below the data

move
up
to replace it (NB. providing that data is within the range
"Worksheets("B
Sheet").Range("b8:b23")".

Regards
gregork

"Dave Peterson" wrote in message
...
You only want to move the cells under that column:

rng1.Offset(0, 5).Delete Shift:=xlUp
rng1.Offset(0, 0).Delete Shift:=xlUp

if you want to delete the entire row, you only have to do it once.
rng1.Offset(0, 0).EntireRow.Delete

gregork wrote:

I have the following code for clearing an entry on a worksheet:

Dim rng As Range, res As Variant, rng1 As Range
Set rng = Worksheets("B Sheet").Range("b8:b23")

res = Application.Match(CStr(ComboBox1.Text), rng, 0)
If Not IsError(res) Then
Set rng1 = rng(res)
rng1.Offset(0, 5).ClearContents
rng1.Offset(0, 0).ClearContents

What do I need to add to the code to move up the entries in the
cells
below
the entry I am deleting and within the range ?
I have different data in the cells below B23 so I can't have

the
text
in
those cells move up.I have tried Delete Shift:=xlUp and it just

puts
messes
up all the cells below the range ("b8:b23").

Cheers
gregork

--

Dave Peterson

--

Dave Peterson


--

Dave Peterson


--

Dave Peterson

Dave Peterson[_5_]

Clear then move text up
 
ps. I really hate merged cells!

gregork wrote:

What about, after doing the clear contents, I could somehow pull all the
remaining text off the cells and then slap it back on in order. Could you
achieve this with code?

gregork

"Dave Peterson" wrote in message
...
I find that merged cells aren't worth the paper they're printed on.

I do my best to avoid them.



gregork wrote:

Thanks for your help Dave. Unfortunately I can't get this to
work...everything on my sheet goes askew merged cells unmerge and I

formulas
are mucked up. Might be one for the too hard basket.

Cheers
gregork

"Dave Peterson" wrote in message
...
Maybe you could just assign the values from the cells underneath it

and
then
clear that last cell in the range.

Kind of like:

Option Explicit
Sub testme()
Dim myRng As Range
Set myRng = Worksheets("B Sheet").Range("b8:b23")

With myRng
With .Resize(.Rows.Count - 1, 1)
.Value = .Offset(1, 0).Value
End With
.Cells(.Cells.Count).ClearContents
End With
End Sub




gregork wrote:

Thanks for the reply Dave.
I don't want to move the cells in the column only the text.The range
"Worksheets("B Sheet").Range("b8:b23")" is essentially a form with
borders
that I print out. When I use "Delete Shift:=xlUp" to move the text

up
that
is under the text I am clearing I end up with my form in a mess

(borders
out
and formulas I have in cells moved etc.)
I just want to clear the data and then have any text below the data

move
up
to replace it (NB. providing that data is within the range
"Worksheets("B
Sheet").Range("b8:b23")".

Regards
gregork

"Dave Peterson" wrote in message
...
You only want to move the cells under that column:

rng1.Offset(0, 5).Delete Shift:=xlUp
rng1.Offset(0, 0).Delete Shift:=xlUp

if you want to delete the entire row, you only have to do it once.
rng1.Offset(0, 0).EntireRow.Delete

gregork wrote:

I have the following code for clearing an entry on a worksheet:

Dim rng As Range, res As Variant, rng1 As Range
Set rng = Worksheets("B Sheet").Range("b8:b23")

res = Application.Match(CStr(ComboBox1.Text), rng, 0)
If Not IsError(res) Then
Set rng1 = rng(res)
rng1.Offset(0, 5).ClearContents
rng1.Offset(0, 0).ClearContents

What do I need to add to the code to move up the entries in the
cells
below
the entry I am deleting and within the range ?
I have different data in the cells below B23 so I can't have

the
text
in
those cells move up.I have tried Delete Shift:=xlUp and it just

puts
messes
up all the cells below the range ("b8:b23").

Cheers
gregork

--

Dave Peterson

--

Dave Peterson


--

Dave Peterson


--

Dave Peterson

gregork

Clear then move text up
 
Hi Dave
Thanks for your help. I have come up with a way around my problem its not
ideal but it works. I have used code to duplicate the entries I make on to
the form to another area on the worksheet (an area where I can use Delete
Shift:=xlUp without causing any problems) After I have deleted an entry I
use code to clear my form area and then copy the text from the new area.

Cheers
gregork

"Dave Peterson" wrote in message
...
ps. I really hate merged cells!

gregork wrote:

What about, after doing the clear contents, I could somehow pull all the
remaining text off the cells and then slap it back on in order. Could

you
achieve this with code?

gregork

"Dave Peterson" wrote in message
...
I find that merged cells aren't worth the paper they're printed on.

I do my best to avoid them.



gregork wrote:

Thanks for your help Dave. Unfortunately I can't get this to
work...everything on my sheet goes askew merged cells unmerge and I

formulas
are mucked up. Might be one for the too hard basket.

Cheers
gregork

"Dave Peterson" wrote in message
...
Maybe you could just assign the values from the cells underneath

it
and
then
clear that last cell in the range.

Kind of like:

Option Explicit
Sub testme()
Dim myRng As Range
Set myRng = Worksheets("B Sheet").Range("b8:b23")

With myRng
With .Resize(.Rows.Count - 1, 1)
.Value = .Offset(1, 0).Value
End With
.Cells(.Cells.Count).ClearContents
End With
End Sub




gregork wrote:

Thanks for the reply Dave.
I don't want to move the cells in the column only the text.The

range
"Worksheets("B Sheet").Range("b8:b23")" is essentially a form

with
borders
that I print out. When I use "Delete Shift:=xlUp" to move the

text
up
that
is under the text I am clearing I end up with my form in a mess

(borders
out
and formulas I have in cells moved etc.)
I just want to clear the data and then have any text below the

data
move
up
to replace it (NB. providing that data is within the range
"Worksheets("B
Sheet").Range("b8:b23")".

Regards
gregork

"Dave Peterson" wrote in message
...
You only want to move the cells under that column:

rng1.Offset(0, 5).Delete Shift:=xlUp
rng1.Offset(0, 0).Delete Shift:=xlUp

if you want to delete the entire row, you only have to do it

once.
rng1.Offset(0, 0).EntireRow.Delete

gregork wrote:

I have the following code for clearing an entry on a

worksheet:

Dim rng As Range, res As Variant, rng1 As Range
Set rng = Worksheets("B Sheet").Range("b8:b23")

res = Application.Match(CStr(ComboBox1.Text), rng, 0)
If Not IsError(res) Then
Set rng1 = rng(res)
rng1.Offset(0, 5).ClearContents
rng1.Offset(0, 0).ClearContents

What do I need to add to the code to move up the entries in

the
cells
below
the entry I am deleting and within the range ?
I have different data in the cells below B23 so I can't

have
the
text
in
those cells move up.I have tried Delete Shift:=xlUp and it

just
puts
messes
up all the cells below the range ("b8:b23").

Cheers
gregork

--

Dave Peterson

--

Dave Peterson

--

Dave Peterson


--

Dave Peterson





All times are GMT +1. The time now is 03:49 AM.

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