This works fine if there are formulas in that range, however if there aren't it gives me: " Run time error: 1004 No cells were found"
So I think I need some code that counts the number of cells in the range with formulae in them and either goes ahead if there are some or quits if there aren't.
is there a way to do this in VBA? I've also read: - Dave Hawley's recommendation of using: Sheet1.UsedRange.SpecialCells(xlCellTypeConstants).ClearContents
from another thread (which is excellent!)
- SHG's recommendation of using a named range, for example:
Range("Inputs").ClearContents
Given my limited knowledge of VBA, how would I now combine the two to write a VBA sub-routine that clears a named range entitled "Entry" on a sheet entitled "Data"? Would the following be the correct syntax: Worksheets("Data").Range("Entry").SpecialCells(xlCellTypeConstants).ClearContents
Looking to code a loop to go to sheets whose names begin with "day" and a number and clear a specific range. How would i code this without affecting the other sheets in the book?
I have a row (will always be row 3) where each cell contains a day of the week, the days repeats for a year or so, making the row almost 400 cells.
Like this, Mo - Tu - We - Th - Fr - Sa - Su - Mo - Tu - We - Th - Fr - Sa - Su - and so on...
Though, A3 doesn't have to be "Mo" because the days in this case can change (A3 can start with "Tu"), hence I think I need a macro.
So if this row contains a weekend, "Sa or "Su" I want all the cells in the column beneath that which contains a specific value to be cleared.
Example, if "Sa" or "Su" has 3 values in the columns under them, all the values that contain "X" or "Y" has to be cleared.
Like this: Rows (1,2,3...,) 1---- 2---- 3 Mo - Tu - We - Th - Fr - Sa - Su - .. and so on.. 4 A --- B --- X --- Y --- X --- B --- Y 5 A --- B --- X --- Y --- X --- X --- X 6 A --- B --- X --- Y - --X --- Y --- C
After the macro it should be:
1---- 2---- 3 Mo - Tu - We - Th - Fr - Sa - Su 4 A --- B --- X --- Y --- X --- B --- 5 A --- B --- X --- Y --- X --- --- 6 A --- B --- X --- Y - --X --- --- C
Im trying to make life easier by setting up some sort of macro function that will clear the contents of all the cells except for the ones that have formulas in them. I don't want to delete the 1st row as it contains the titles for each column.
I have a worksheet from which I regularly clear all contents by selecting all the rows and selecting 'Clear Contents' from the right button menu. However, I now have added a formula in Col Y that I want to protect. I know I could select all columns up thru X, but that would clear the R1 headers, so I want to avoid doing that. I can always work around, but I'm curious, is there a way to clear only values and thus protect the formulas when using the Clear Contents command?
I have set up a macro to clear data in COl A from row 2 onwards. I need to amend the code to clear the data in the following columns from row 2 as well
Col C to I and Col L to O
Sub ClearData() Dim LR As Long, i As Long LR = Range("A" & Rows.Count).End(xlUp).Row For i = 2 To LR With Range("A" & i) .ClearContents
I am using arrays to try and move select data in a row between workbooks. I read in the data to an array, I set the value of the range I want to write to to the array. That part works well.
However, the range I am trying to write to is part of an Excel Table (ListObject). There are formulas in that table that I need to keep as formulas. I know (well, believe) that if I populated the data into the array manually and skipped over the formula cells it would not change those cells at all.
How can I (after populating the entire array with data) go back and say "The data at index 3 is really nothing, so exclude it."
I've tried setting the value to Null, Empty, and vbNullString. My array is currently typed as a Variant.
Below is my initial code that can't get past the first line.
if right(cells(2,i),4) = "D_MA" then ..... ?
I'm trying to clear the contents of all data in each column that has the text conaining "D_MA" in that columns row 2. For instance, if cell F2 has 30D_MA, I want the macro to clear all contents in Column "F" -- but to do this for all columns that contain "D_MA" in row 2.
I have a userform where the user will identify a record to delete. I need to search another worksheet (Month) for the event's name which is associated a date. Once it finds this event's name I need to clear the contents of that cell.
Here is the code I am using for the record deletion from the 'Data" worksheet. I need to also locate and clear the cell as stated above.
I need to start with a worksheet without any objects, namely pictures. Without knowing the name of the object, is there a way to clear all objects on a worksheet?
Second: on a different worksheet there are products with pictures with the product number. When a user selects the product number I want to copy that picture and copy it to J42 of the first sheet. My issue is positioning the picture.
i have a worksheet which is a form which feeds into another worksheet which acts as a database. i have a button which clears the form based on code which is essentially "clear contents".
the problem is i have a few cells where i would like to retain the formulas. i tried to do this with custom in validation but this did not work. i also tried to enter the code directly into the worksheet but this didnt work either (my skills are limited..). i am avoiding using protect sheet bc that in turn will affect many of my other buttons. is there something i am overlooking?
Macro to clear cells with numbers but no cells with formulas with in this macro:
Dim i As Long i = Range("E3") If i > 0 Then ' Copy range Range(Cells(6, 10 + i), Cells(500, 17)).Copy Range(Cells(6, 10), Cells(500, 17)).Select ' Paste special ActiveSheet.PasteSpecial Format:=2, Link:=1, _ DisplayAsIcon:=False, IconFileName:=False ' Clear i columns on the right Range(Cells(6, 18 - i), Cells(500, 17)).ClearContents End If End Sub
The range is where the cells with numbers need to be cleared but not the ones with formulas.
I have a table on a worksheet and have for quite some time used a very successful macro UsedRangeClear. I found here on the forum. Anyway the macro still works on all tables on all other sheets except this one. This is the reason, somehow someone, maybe even me, copied something down or formated down to the 1,048,152th row of the worksheet. My workbook has grown from 5000 kb to 11,000 kb.
I have tried to highlight and deleted the rows, highlight and clear contents and the following macros:
Sub UsedRangeClear() On Error Resume Next ActiveSheet.Unprotect Password:="myfadra" Range("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete ActiveSheet.UsedRange ActiveSheet.Protect Password:="myfadra" End Sub
Sub ReSetTable_UsedRange() 'For ICFMR Dim LR As Long LR = Range("A" & Rows.Count).End(xlUp).row
On Error Resume Next ActiveSheet.Unprotect Password:="myfadra" Application.ScreenUpdating = False Range("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete ActiveSheet.ListObjects("Table7").Resize Range("A1:T" & LR) ActiveSheet.Protect Password:="myfadra" Application.ScreenUpdating = True End Sub
Each option freezes Excel. I am sure there is something easy I am just missing. Soooo, Please offer any suggestions you can think of.
I have a macro that pastes formulas as values on specific pages (("CTY EME", "Int Center", " Total SW dist cost", "Int, pubs & oth", "Total". Is there a way to compress the macro ie with the sheet names?
What I need is to insert a row at row 59 and autofill the formulas including drop down list from the above row. This is what I have so far (Thanks to Reafidy and shg).
Sub ChkDates() Dim c As Range Dim DelRng As Range Dim ArcRng As Range Dim i As Long Dim l As Integer Application. ScreenUpdating = False Worksheets("Report").Activate For i = 60 To 8 Step -1 Set c = Cells(i, 33) If IsDate(c) Then ..............
Here is what i am trying to achieve. If the date 2/20/2010 is located at F53 & the cell next to it at H53 is populated with a number between 1 & 16, then i want the cell at J11 (42 rows further up) to auto populate with the number 1. When this occurs the cells beneath this, from J12 to J52 should also auto populate with the with consecutive numbers from 2 to 42. Would also like to see the cells with numbers 1 to 28, automatically format to orange & the cells containing numbers 29 to 42 automatically format to yellow. I plan to have this condition repeat several times later in the year, at dates that are to be decided. When these dates are decided i want to be able to enter a number from 1 to 16 & next to the date & all of the above automatically occurs.
I'm wrinting a macro to copy specific data from a table. To do that I'm using a Autofilter and a list of criteria. The macros works fine for existent data, I'm mean, when the result of the filter is not null, but when the filter doesn't find a result, instead of clearing the filter range, it keeps the last valid. The result is a colapse and freeze the Excel. I'd like to know how can I reset or clear the filter range? The code I'm using is:
Sub Filter_01()
'Definições preliminares Dim rng As Range Dim rng2 As Range Dim ARLE Dim filter_valid, filter_invalid As Variant
filter_valid = Array() filter_invalid = Array() 'Criação do Arquivo de Destino Caminho = "D:Documents and Settingscjcs.ABMeus documentosAutomaSIPPPlanilhas" Nome_Arquivo = "Produtos_Tanques.xls" Nome_Completo = Caminho & "" & Nome_Arquivo ...
I have a macro to clear all contents for a sheet in a workbook. The problem is that every file has over 20 sheets of data. Is there a way I can code a for statement to clear all sheets in this one workbook? Is it possible to make a for statement for multiple workbooks with several sheets?
I have used the VBA and it works to select all data but I have an issue when there is no data to select beneath the column header. I am running this on multiple worksheets which vary with data week to week.
How can I run this and not have it delete the column header when there is no data? Is there a way to change the formula so that it selects all cell columns of data without defining it?
is it possible to clear the value in a range variable?
For example say:
Set A = Range("B4")
Is there a way to clear the value of that range, in other words make it blank again? And unfortuanlly i can't just make it equal to another range i need it to be blank.