the spreadsheet needs to be copied to a directory called "C:downloads" as it contains a ODBC query to itself (In reality, this is a query to an External Oracle Database)
On loading, it should pop up a simple userform, with a combo and two command buttons, which when pressed takes you to a (hidden) tab that displays a pivottable.
All works well until I try to close /save when 60% of the time, Excel encounters problems and closes and will not load up the file the next time until either quit excel or disable macros. Messages include "file/path access error", "I/O Error" or get restarts excel.
On a casual run through, I expect you might report back that "All worked ok for me". Please can you give it a bit of a thrashing, comment out the userform show, save the file (frequently) becuase i assure you it will break ultimately!
This is a brand-new file and I've tried it on about 5 different PC running different versions of Excel and generally get the same result.
I have cobbled together some code that I hoped would do the following:
Sort data Copy all data from one person and put it on a sheet Create a pivot on that data populate another sheet based on that persons data Save as a PDF Clear the data and start again for the next employee
I have copied this from other macros I have used in the past. Up until now the parts I have been working on have been ok. however when I try and run it now I get a "Loop Without Do" error. I really can't figure out why.
I'm trying to do a for each loop in a row, I've tried to drill it down to be as simple as possible, but I keep getting the Run-time error '424': Object Required
I've tried to make it simple, with just inserting a 1 into the cells, still get the error.
Code: Dim firstRow As Range Dim rCell As Range Set firsRow = Worksheets("MAIN").Range("F3", "AG3") For Each rCell In firstRow 'error shows here rCell.Value = 1 Next rCell
I need my macros to search for the word "Cancel" in columns "T". Once found, I need the macros to make that entire row a certain pattern ( .Pattern = xlGray16)
There will be other wording in these cells that contain "Cancel" or "Cancelled".
A compile error keeps occurring. It says "Ambiguous name detected: FormatCell"..
Sub DoCancelCells()
Dim strSearchString As String Dim wksSheet As Worksheet Dim rngSearchRange As Range Dim intSearchCount As Integer
Set CopyRng = Wkb.worksheet1.Range(Cells(RowofCopyworksheet, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, Cells(1, Columns.Count).End(xlToLeft).Column))
I am trying to copy the first sheet in each file in the designated folder and paste it into a master worksheet.
Below is the code.
'Description: Combines all files in a specific folder to Format File for Upload.xls Sub MergeMultipleFiles() Dim path As String, ThisWB As String, lngFilecounter As Long Dim wbDest As Workbook, shtDest As Worksheet, ws As Worksheet Dim filename As String, Wkb As Workbook Dim CopyRng As Range, Dest As Range Dim RowofCopySheet As Integer
When it opens the desired file, it increments the file name by 1 each time it is opened (via the macro).
Example; The first time it is opened you see the file name in the header read "P'Binder L&T Pages" for a moment, then it changes to "P'Binder L&T Pages1"... I close the file and open it again (via the macro), and see the file name in the header read "P'Binder L&T Pages" for a moment, then it changes to "P'Binder L&T Pages2"... The file name continues to increment on every opening until the PC is rebooted, then it starts at 1 again.
Sub OpnLTpages()
Dim wb As Workbook Dim AlreadyOpen As Boolean
AlreadyOpen = False
For Each wb In Workbooks 'Scan open workbooks If wb.Name = "P'Binder L&T Pages.xls" Then ........................
I've got the following code which opens/gets the excel files from a specified directory and imports them into an open workbook. I've added a GoTo Error before my loop which checks if there are any files in the directory and shows an error message if it's the case. Problem is since the loop goes on till there are no more files in the directory, it goes back to the error. How to change that ?
VBA but familiar with other programming languages.
I have looked through previous posts with the same problem and I see that most people forget to add the "endIf" before looping. From what I can tell, I have ended all of my "If" statements.
The goal of this macro is to take temporary data and finding a match in other sheets and copying from "Temp" and pasting into the other sheets (possibly in the first blank cell, depending on the case) then deleting the row and moving on to the next row and repeating the process until "Temp" is empty.
I am getting the Run-time error '380'. Could not set the value propery. Invalid property value.
I have a user form for data entry purpose which is working fine. Now, I am making a code for data editing purpose which pulls out data from the worksheet into the user form.
I am able to do this for text boxes and combo boxes that are not linked with each other. However I am getting a problem in the following case; I have a combo box and a text box that are linked to each other by combo box _change code which is below which may be the reason for the error I am getting for the next code...
Code: Private Sub cmbColor_Change() If cmbColor.Value = "Other" Then lblColor.Visible = True
My current code opens a file ("Report01.CSV") from the directories in column A (one at a time), and copies data into sheet 2.
The problem is that sometimes there is no ("Report01.CSV") file in one or more of the directories.
What I would like to add is an error handler that would remove the directory (delete that cell) that caused the error and continue with the loop. I.e. resume importing data from the other directories.
CODE: Dim wrkMyWorkBook As Workbook Dim lngRow As Long: lngRow = 1 Dim lngColumn As Long: lngColumn = 2
Do Until Sheets("Sheet1").Range("A" & lngRow).Value = vbNullString Set wrkMyWorkBook = Workbooks.Open(Filename:=Sheets("Sheet1").Range("A" & lngRow).Value & "" & "REPORT01.CSV") lngRow = lngRow + 1
I'm trying to create a simply loop for an easy task of copying and then pasting a formula into other cells. Basically I'm trying to get this script to run until there is no more "slsperson" references to go to.
Sub z_Paste_Sales_Formula() Dim i As Long Dim icolumn As Integer icolumn = 4 Cells(3, icolumn).Select Selection.Copy i = 1 Do Application.Goto Reference:="slsperson" & i ActiveCell.Offset(1, 0).Select sls_row = ActiveCell.Row ActiveCell.Offset(1, 0).Select gp_row = ActiveCell.Row Cells(sls_row, icolumn).Select ActiveSheet.Paste Number = i + 1 Loop Until Application.Goto Reference:="slsperson" & number = error End Sub
I have written a piece of code that sets the print area for the cells whose formulas are not blank as the result of the if formulas in them. The code works across the page.
In it's current state the loop should repeat four times as that is the number of non-blank cells. The loop I have is:
Code: Do While CollSheet.Offset(0, i).Value "" i = i + 1 Loop
This however, gets as far as i = 2 before completing the loop. To test why I wrote the following piece of code which loops the four times it is meant to. The trouble is I can't work why they aren't returning the same value as to my knowledge, they do the same thing. If I had to guess I think it's something to do with the cell being a merged cell.
Code: Do While ActiveCell.Offset(0, 1).Value "" ActiveCell.Offset(0, 1).Select Loop
I am trying to run for_each_loop to in a module run an activity on other excel file.
Other excel file is having 8 sheets and loop is working fine till 4th. but when loop goes to 5th sheet it says Application defined or object defined error. I am confused because i have defined the objestSh as worksheet in the beginning.
I am trying to fill an array with only a few values within a loop (when XspacingA is 0.5, add the value of the Line to the array) and keep getting the error "Subscript out of range".
I have some code that is working great except that it throws up an error on the last run through because it doesn't find any more rows to delete. I've tried "On Error GoTo" but it doesn't catch it. It seemed to work on my home computer which is running Excel 2010 but then on Excel 2007 I get the debug screen and I don't want that to show up for other users that I share the code with.
Sub DeleteHeaders() Dim lastrow As Integer lastrow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).row
I am running regression statistics for several different columns of data. In order to help me analyze the data, I am organizing the output on a specified worksheet called "Best Subset." I have stored the column names of the data used in different regression calls in a range array called Reg_Labels. The Reg_Labels array may contain one, two, or sixteen column labels in one specific location (where each column label is stored in a separate cell). All possible column names are stored in the Labels array (each name is stored in a separate location). I basically need to check to see which column names were present in a particular array location in Reg_Labels. When a column name from a cell in Reg_Labels(I-1) matches a column name from Labels(K), I am placing an "X" on the designated spreadsheet to indicate which variable(s) has been used.
My For..Each Loop will not work for some odd reason, and I need to figure out why. I keep getting an error that an object is required. I need each cell in Reg_Labels(I-1) compared with Labels(K), and I thought the For..each loop would be the easiest way to do it.
I just don't understand what's going on if C is a range object and Reg_Labels(I-1) is a range object. Wouldn't this loop supposedly cycle through every cell in Reg_Labels(I-1)?
Have I messed up some sort of object reference? ....
I would like to know if there is a way to compare the current file in a loop with the next file in the loop without writing two loops. Here is the code I have, and in red is the code I would like to have it do. I just don't know if it's possible with this type of loop.
Code: preface = Format(lPrefaceNo, "0000") Set objFSO = CreateObject("Scripting.FileSystemObject") Set mainFolder = objFSO.GetFolder("S:")
I wrote a chart formatting macro, which works when applied to a specific sheet, and I'm trying use it in a for each loop. The macro is supposed to loop through a list of sheets and only format chart 1. I'm getting a "run time error 438: object doesn't support this property or method" at this line:
Code: Sub UpdateTextAllStateCharts() 'This macro loops through worksheets in a list and performs the assigned task Dim sheet_name As Range For Each sheet_name In Sheets("WS").Range("C:C") If sheet_name.Value = "" Then
This line fails, is Method Range Global error.... What is wrong w/ this, and how should it read?
If Range("D", i).Value = "Need Parent" Then 2nd Question- The following line is my normal method in doing a simple For Next Loop. What is the difference between using this one, looping through the cells and the first one referring to a Range for the loop?
the following code should determine whether the searched value can be found in more than just one row and than enlist certain values from each of those rows in ComboBox4 using a loop. Then I have a second macro which would assign appropriate values from a Sheet to other text boxes whenever one changes the value of the ComboBox4:
Private Sub ComboBox2_Change() Dim vFind Dim Firstaddress Dim rFound As Range Dim wsName As String Dim SrchRng As Range wsName = Me.ComboBox1.Value With Worksheets(wsName) vFind = UserForm2.ComboBox2.Value Set rFound = .Range("B1") Set SrchRng = .Range("B:B") Option Explicit End With...............................
While trying to run the first macro an Error pops up saying that a variable within the loop is not set. I've got no idea how to fix it
we would use a byte data type as a counter in a For Loop, but just today I have been having trouble with this. When I try to count backwards with " Step -1" I get an "error 6: overflow" on the FOR LOOP line. When I count forwards it works fine.
Actually i've downloaded Tracking report of my SPO and this report is on 4-5 csv files (1 file per week). I have to gather data from these 4 files into one Worksheet. I have to do this with command button on my worksheet; with Open file dialogue box (i want to locate the csv files).
CSV files are something like that (I need only first 4 columns):
and my Worksheet is like that (With a command Button):
I want to import first 3 columns of csv file on first 3 columns on my worksheet; leave 2 columns blank and then import the 4th column... now for example i have done importing data from 1st csv file and the data is on 50 rows.. i click the command button again, locate the 2nd csv file.. do the same thing (import 1st 3 columns, 2 blank, then 4th) --from 51st Row-- and so on...