Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 200
  • Last Modified:

How do you clear contents from the smae multiple ranges on slected sheets in the workbook

I need to clear contents from several indentical cells on multiple sheets within the workbook. I have tried the union command but I am getting anywhere.
0
bearblack
Asked:
bearblack
  • 4
  • 4
  • 2
1 Solution
 
NorieCommented:
You can't use Union across worksheets, it will only work if all the ranges are on the same worksheet.

Even then it still has some limitations.

What ranges are you trying to clear?

One way would be to create an array of the addresses of all the ranges and loop through the worksheets.
Dim ws As Worksheet
Dim arrRngAddrs
Dim I As long

  arrRngAddrs = Array("A1:A2", "B1:B40", "G1:L1")

  For I = LBound(arrRngAddrs) To UBound(arrRngAddrs)


       For Each ws In Worksheets

             ws.Range(arrRngAddrs(I)).Clear

       Next ws

  Next I

Open in new window

This will clear the ranges on all worksheets but you can change so it's only specific worksheets.
0
 
StephenJRCommented:
Select the sheets before selecting the range, then all sheets will be affected.
0
 
bearblackAuthor Commented:
It is only for select worksheets within the workbook

    Range("c7:R7,V7").ClearContents
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
bearblackAuthor Commented:
I didn't understand the selecting of specific sheets and how the code will only work for those selected
0
 
NorieCommented:
For only certain worksheets.

For Each ws In Worksheets

       Select Case ws.Name
           Case "SheetNotToClear", "AnotherNotToClear" ' add names of sheets NOT to clear
              ' do nothing
           Case Else
              ws.Range("C7:R7, V7").ClearContents
      End Select
Next ws

Open in new window

You don't need to list all the worksheet names if there's some other way to identify them, eg  names all begin with 'Sales'.
0
 
bearblackAuthor Commented:
   Range("c7:R7,V7").Select
    Selection.ClearContents
    Rows("8:8").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Delete shift:=xlUp

The above is what I am wanting to do on select worksheets
0
 
StephenJRCommented:
Mine was not a code solution so go with imnorie.
0
 
NorieCommented:
With the delete:
Dim ws As Worksheet
For Each ws In Worksheets

       Select Case ws.Name
           Case "SheetNotToClear", "AnotherNotToClear" ' add names of sheets NOT to clear
              ' do nothing
           Case Else
              ws.Range("C7:R7, V7").ClearContents
              ws.Rows("8:" & ws.Range("A" & Rows.Count).End(xlUp).Row).EntireRow.Delete Shift:=xlUp
      End Select
Next

Open in new window

0
 
bearblackAuthor Commented:
Would you mine explaining the case function?
0
 
NorieCommented:
A select case compares a value against the criteria of each case and when it finds a match the for that that case is executed.

If there is no match and there's an 'Else' case then that code is executed.

I know that probably doesn't make much sense, I'm not very good with explanations.

You don't actually need to use it here, I just find that with this sort of thing it's easier than using some long If statement.
0

Featured Post

Ask an Anonymous Question!

Don't feel intimidated by what you don't know. Ask your question anonymously. It's easy! Learn more and upgrade.

  • 4
  • 4
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now