I have a macro solved on another post that creates worksheets based on a Range and renames the new worksheet to the corresponding value. The range is edited on a regular basis, so to keep the file size down I need to remove any worksheets that no longer have a corresponding ID in the range.
The previous post is here
HTML Code:
Sub CreateTimeline()
Dim rng As Range
Dim rCell As Range
[Code].....
I'm sure that I could amend the above code (also removing the copy worksheet condition) to check the worksheets and delete any that no longer have no corresponding value in the range from the worksheet name.
I have a range that has been formatted as a table. Once I've applied a filter, if I try to select all of the rows, and delete the visible rows the option is greyed out.
Is there no way, short of vba, that I can just simply delete the visible rows?
Any way that the following code could perform faster? Unfortunately, i'm deleting 35,000 rows of data quite frequently from a filtered list. Could be up to 35 columns wide.
Code: ls = Cells(Rows.Count, 1).End(xlUp).Row If ls > 1 Then Range("A2:A" & ls).SpecialCells(xlCellTypeVisible).EntireRow.Delete End If
I can't understand how Delete works when applied to a table.
Here is my table: Number Letter Test
[Code]....
If I use "EntireRow.Delete", I have an error. If I use "Delete" only, it works for A and B, but for C, it suppresses the Letter column.
By the way, I don't understand why I have to include header (Table1[[#Headers],[#Data],[Letter]]) when I filter to find unique letters at the beginning of the script.
I'm trying to apply an autofilter to do the ol' "delete visible lines that meet criteria" trick. Unfortunately my vb macro, although applying the string correctly, hides all of the lines...
This is the part of code relevant to filtering (i'm trying to filter on column M which is 13):
Just need to delete some hyperlinks in column A on 50+ worksheets. Thought a loop through all the worksheets would do it. Only works on active sheet. Forgive my ignorance, don't really even know where it goes, once it works - module or workbook?
I'm trying to clean up several long worksheets by removing rows that don't contain a visable number or letter.
I want to remove all rows that only contain either empty cells, formulas that evaluate to a empty text string (""), cells that contain error values, or cells that contain zeros, or any combination of the previous.
I've stumbled onto the following, but it does not work.
I'm working through a filter macro to delete unecessary rows of data from my dataset.
- I have a Dynamic Range for my dataset called "CanadaData" - I'm trying to delete rows from the 5th column of my dataset for cells containing "DIRECTSHIP"
The macro filters the range fine, but when if comes to deleting the row, the macro stops.
Sub CanadaWarehouseFilter() x = Range("E" & Rows.Count).End(xlUp).Row If Application.WorksheetFunction.CountIf(Range("E22:E" & x), "DIRECTSHIP") > 0 Then
I am asking if it is possible to delete filtered rows? With code. What I mean is after setting a filter, then deleting all shown rows except row 1, (Titles) I did a search but nobody seams to have asked this yet, so recorded it, but that did not seam to enlighten me much either. Or is this the wrong approach, should I delete using a loop, using the filtered criteria as to say delete row, or move on to the next row?, this would be far more time consuming as when all can be deleted at once if possible of corse.
I would like to be able to find the largest visible area of continuous rows in a filtered table. I know one possible way would be to loop through visible cells using the "xlCellTypeVisible" property and count cells in each visible area. However, the data is consisted of tens and sometimes hundreds of thousands of rows so I was wondering if there is a faster, more efficient way to do this.
I'm looking for the row and column number, or number of rows and columns, that are visible in activewindow. Activewindow.visiblerange.row, .column (and .Scrollrow, .Scrollcolumn) are nice but
I prefer not to perform division on pixel height; I'm looking for some count or rowcount but I haven't been able to locate the object.
I do hav a sheet in which i do hav some column;s n data
Worktype Metrics April May June
in work type few rows are hidden which i don't need what i need is i want to populate only comman metrics in other range named metrics i had build a macro for this and that's working fine but the problem is it also reads metrics from hidden rows too. i had tried a loop in which i had placed as hidden column property condition.
I am trying to create a range with visible cells after filtering based on a criteria. But, facing some wierd problem with setting correct range with visible cells. Here is the code.
Here, xlsFilteredRange.Cells.Count returns correct values. For example, for a particular filtered criteria, if there are 6 rows, it returns 42 (6 rows * 7 columns). However, xlsFilteredRange.Rows.Count always returns 1 (header row), though there are 6 rows. How can this be fixed?
I'm using a named range called "VFILTER". This range is my filter range. Once the filter does it's thing, I want to set the first visible cell in column a to a variable...I can't get this right for the life of me!
.AutoFilter .AutoFilter field:=25, Criteria1:="TRUE" .Offset(1, 0).Resize(.CurrentRegion.Rows.Count - 4, 9).SpecialCells(xlCellTypeVisible).ClearContents 'set the first visible cell in column a to variable Set OutRange = .Offset(1).Resize(.CurrentRegion.Rows.Count - 4, 1).SpecialCells(xlCellTypeVisible) End With
I am looking for a code which can jump to a next cell from the activecell. I use the code
Activecell.offset[rowno][columnno]
This would take me to the next cell. However, this is a problem when the filter is on. I am not able to go to the next visible cell. Suppose if the row increase is 1, then cell selection goes to the hidden cell. I need to bypass the hidden cell and go to the next cell. Can anybody provide a code which does it? I tried searching the forum but could not get anything closer to this as I need something which works with offset and not cells.row.visible...etc.,
Need to correct code to resize all visible rows on a sheet based only on the text in the visible columns. I have tried the below code but when it resizes it is using the largest amount of text in the rows including that in the hidden columns.
Let's say I have a workbook with 7 worksheets named, for example, "Instruction", "Begin", "Worksheet 1", "Worksheet 2", "Worksheet 3", "End", and "Data". (in that order)
What I want to do is run a macro to go to whatever worksheet that is in between "Begin" and "End" and copy, for example, cells $C$1:$D$10; then paste as formula into worksheet "Data" starting from cell C1 and then down a list (i.e., copied cells from "Worksheet 1" get pasted as formula into "Data" cells C1:D10; then copied cells from "Worksheet 2" get pasted as formula into "Data" cells C11:D20, and so on and so forth).
But if I were to add more worksheets (e.g., "Recipe" and "ToDo") positioned in between "Begin" and "End" and run the macro again, it'll either 1) re-copy all the formulas from the included worksheets back into "Data" including the formulas from the newly added/placed worksheets or 2) it'll add the formulas from the newly added/placed worksheets and paste into "Data" at the end of the list.
Can create the macro to run based on the position of worksheet, and not based on the name of worksheet, since ultimately there will probably be over 10 worksheets between "Begin" and "End".
I have pulled a SharePoint list into my workbook. The list object (table) is still linked to the SharePoint list, as I'd like to synchronize it later on. I have filtered it with an autofilter. I'd like to delete all of the visible rows. I have tried a billion things to no avail. I have been searching Google for hours now. None of the examples work.
I need a macro to start at cell A11 and select across 10 columns and down to the Lastrow (last row with any data).
There are hidden columns after column D so it CANNOT have any columns hardcoded except for column A.
This selection then needs to be set as a single print area to print out on 1 page. I have already set Rows 1-10 as a title area to print at the top of each page.
Code i currently have is:
[Code] .......
I just need it to now go across 10 visible columns and set as a single print area.
From a combobox selection i filter a table for all entries containing the selected ID (from the combobox).
I first wanted to use selected columns from the resultant display (the filtered table) to populate another combobox so the user could drill down to the final selection that way, but seeing the mess i was getting involved in (I couldn't assign a range to the listfillrange of the other combobox) i think it might be best to settle for simply copying the visible cells to a new table on the selection page (the full database is on one sheet separate from the selection comboboxes and related controls), where the user can simply see the information needed on whatever line item they want - the number of filtered entries rarely exceeds five. What i can't understand is when i query the number of rows in the immediate window from the code snip below, it always comes back as "1", whether i do so on the full range or special visible cells.
[Code] .......
To load another combobox i tired
[Code] ...........
I really would like to be able to do so for further refining, if not feasible, can work with just a display table.
Querying the reultant rows i simply tried:
[Code] ...........
and
[Code] ....
In both cases, though the filtered table had 5 records displayed, the count was... 1.
1) Can the visible cells resultant table be fed into a combobox relatively easily and if so, how? 2) With the count of rows, what am i doing wrong?
I'm trying to retrieve the worksheet names to a specif cell and populate from that point only with the names of the visible sheets, but It keeps returning only the last visible sheet name and not the sheets that are visible. Where the code is failing - I'm self learner and start with VBA macros a couple of months so I'm still learning how to identify when the error show up
Code: Sub Summary() Dim wks As Worksheet ultl = Sheets("Control").Cells(1048576, 4).End(xlUp).Row For i = 31 To ultl
In between a long VBA macro, I need to copy the result of autofiltering i.e. the visible cells / rows only, to paste on an other sheet.
If I do this manualy it works but if I record this on a macro, it records the absolute cells range I pick, when in fact the result of the filtering is different every time.
Im trying to create a userform that will enable the user to select a record from a listbox and then to edit the info for that record by changing the contents of text boxes which are set to display the current info. What I have seems to work intermittently. I basically use autofilter to find the selected record on the worksheet, then I set the value of each cell in the row to that of the appropriate textboxes. ListBox2.Column(4) contains the unique id for the selected record.
Private Sub saveclient_Click() Dim WS As Worksheet Dim newrng As Range With Application .ScreenUpdating = False .EnableEvents = False End With Set WS = Sheets("Clients") '<<< Change Sheets("Clients").Select WS.AutoFilterMode = False Set newrng = WS.Range("A1:e" & Rows.Count) MsgBox Me.ListBox2.Column(4)......................
I have 3 columns of data that are being copied from a .csv file. The data is pasted into Columns B, C, & D. Columns C and D are hidden. So that the user does not have to unhide the columns in order to delete the data, I would like to make it so that when the data in column B is deleted, the data in columns C and D is also deleted.
Need macro that changes the text in a particular field. Previously, the column to change was column 46 (AT), but now the column is column 1 (A). If I adjust the last line and run the macro, I get this error message: "Compile error: Invalid or unqualified reference".
i've been programming a bit in excel and quite new to the whole thing but managing nonetheless... however, after having built a couple of macros in excel, i can now no longer delete all the worksheets listed at the bottom of the workbook.