Help modifying a macro

PrimeTimeAction

New Member
Joined
Aug 1, 2018
Messages
9
I have a macro (see below) that concatenates selected cells into the upper left cell. The problem is that it keeps the values in rest of selected cell untouched. I want it to either
  • delete the text from the rest of the selected cells or
  • delete the entire rows of these selected cells.
How can i do this.

Code:
Sub Macro1()
Dim r As Range
Dim rr As Range
Dim i As Integer
Dim t As String
i = 0
t = ""
For Each r In Selection
If i = 0 Then
i = 1
Set rr = r
End If
t = t & r.Value
Next
rr.Value = t
End Sub
 

Excel Facts

How to calculate loan payments in Excel?
Use the PMT function: =PMT(5%/12,60,-25000) is for a $25,000 loan, 5% annual interest, 60 month loan.
Try this:

Code:
Sub macro1a()
    Dim c As Range
    For Each c In Selection.Offset(1, 0)
        Selection.Cells(1, 1).Value = Selection.Cells(1, 1) & c.Value
        c.Value = ""
    Next
End Sub
 
Upvote 0
Try this:

Code:
Sub macro1a()
    Dim c As Range
    For Each c In Selection.Offset(1, 0)
        Selection.Cells(1, 1).Value = Selection.Cells(1, 1) & c.Value
        c.Value = ""
    Next
End Sub
This works beautifully. thanks alot.
Any idea what to do in case i want to delete the rows of these cells instead of clearing the text?
 
Upvote 0
Just add this to the end of the macro
Code:
    Selection.SpecialCells(xlBlanks).EntireRow.Delete
 
Upvote 0
Glad we could help & thanks for the feedback
 
Upvote 0
Glad we could help & thanks for the feedback

You're welcome.
Sorry to bother again. It works great if there is a blank cell below the last cell, but if the the cell below the last cell has and any text, it pulls up that text as well.
Code:
Sub macro1()
    Dim c As Range
    For Each c In Selection.Offset(1, 0)
        Selection.Cells(1, 1).Value = Selection.Cells(1, 1) & c.Value
        c.Value = ""
    Next
    Selection.SpecialCells(xlBlanks).EntireRow.Delete
End Sub
 
Upvote 0
Try
Code:
Sub macro1()
    Dim c As Range
    With Selection
      For Each c In .Offset(1, 0).Resize(.Rows.Count - 1)
          Selection.Cells(1, 1).Value = Selection.Cells(1, 1) & c.Value
          c.Value = ""
      Next
    End With
    Selection.SpecialCells(xlBlanks).EntireRow.Delete
End Sub
 
Upvote 0
Try
Code:
Sub macro1()
    Dim c As Range
    With Selection
      For Each c In .Offset(1, 0).Resize(.Rows.Count - 1)
          Selection.Cells(1, 1).Value = Selection.Cells(1, 1) & c.Value
          c.Value = ""
      Next
    End With
    Selection.SpecialCells(xlBlanks).EntireRow.Delete
End Sub
This solved the issue. Thanks alot... again
:)
 
Upvote 0

Forum statistics

Threads
1,214,596
Messages
6,120,438
Members
448,966
Latest member
DannyC96

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top