I need to declare a two dimensional array that will return the Row and the cell's string value. My only solution is to return the row as a string like this.
Public GlobalArray(2, 100) As String
How to get more control than this? Maybe I should just declare it as a variant but this might open it up for problems later.
1) I'm relatively new to arrays, but what I need to do is generate a list of file names and the sheets within each one. I would like to use an array for this, but since I don't have much experience.... well....that's why I'm here. Can someone point me in the right direction?
2) And the second part of this.... I was planning on using the FileSystemObject to determine the files in a selected folder and loop through that list of files, opening each one and harvesting the required info (file name and all sheet names). Should I use the FSO or is there something built into Excel that might be better (and also limit the number of dependencies for this little "project" of mine).
Is it practical to attempt to iterate over all cells in Application.Cells when using Excel 2007? I am truely amazed by the number of cells available but slighty unsure of the practicality of a spreadsheet which attempts to use of the 17,179,869,184 cells in each worksheet!
I'm trying to iterate through a range of merged cells, but each cell in the merged row is being iterated through and I want it to go from row to row. This what I have, but the subscript goes out of range since is looking at the cells within the merged rows.
I have a single very huge excel file. That file contains several sheets. Many of those sheets contain PivotCharts. I want to iterate on all of those pivotcharts and make an image file like jpeg,gif,png,etc.
I have a complicated one here (at least for me)...
I have a very simple sample spreadsheet showing exactly how I'd like it to work but couldn't find out where to upload it? I can upload or send to you privately, if need be? May make it much easier to understand the desired end result.
I want to populate as follows:
Column A: "IN TIME" Column B: "NAME" Column C: "POSITION"
I have a date in cell D1 - today().
I need to search for that date in a column between range AA2 and BN2. When it finds the date (let's say it finds a MATCHing date in AA2), it will then search that entire column cells AA30:AA1920 and look for "server". When it finds "server" it will then grab the in time which will always be 4 cells directly above where it found the position ("server"), and then the name of the person, which will always be in column X, 6 cells above the position.
There will be multiple instances of "server", and I want to populate the columns A, B, C with all the servers it finds first for that day with their name, in time and position. then a blank row.
Then, I want it to find "Bar" positions using the same formula and method, and populate that right below the server data, then find "line", etc.
Ultimately, I'm trying to make a daily staffing plan, where all the people that are working on that date, it will show their in time, name, and position in columns, A, B, C as far down as necessary.
However, I'd like them auto grouped together by position, so I'd like the formula to somehow populate all the servers first, then all the bartenders, then hosts, then line, etc.
Essentially, I have a column of integer values which I would like to iterate through. The integers in the column vary from 12 to -12 with the exception of 0, so 24 possible integer values here.
For each possible value, I would like the activecell.offset(0,7) value added to a variable.
So if I iterate from cell A1 to cell A10, each time a value of "1" appears, I would like the cell 7 spaces to the right of the "1" cell added to a "total" variable for "1" e.g.: "totalOne".
The same applies for every value within my range. So if there are three instances of the value "8" between A1 and A10, then each value 7 cells right of those "8" values will be added to a total value for the value 8.
I started to use:
select case range("u4:u150"). value
case 1 Dim value1 = value1 + ActiveCell.offset(0, 7).Value
However, at this point I realised that a switch statement stores the range I have given it as an array, so my 'case 1' cannot work as it is trying to compare an integer with an array.
Finally, if it stores an array, surely it wouldn't be able to get cell.offset values as it would have no references to those locations given that the array is just a group of integers, not actual cell references? Will I have to use lots of "for each" statements? hope not!
I am having a problem calling buttons. I have an array with button names and another array with their caption texts and I would like to call them one by one in a for loop:
For i = 1 To UBound(button_array) Sheets("Statistic").Shades(button_array(i)).Caption = button_text(i) Next i
But the only way I seem to be able to call them is by their set names, like:
Is it possible to count the number of comboboxes on a userform? Or better yet can I fill an Array with all the combobox names on a userform? I can count the controls on a userform but I'm trying to count just the comboboxes? Instead of all the labels and textboxes and frames.
I would like to loop through them for validation instead of doing it by each one by itself!
How can I write a piece of code to initialise an array with all the worksheet names. I cannot be sure how many worksheets will be in the file as it generates different numbers each time.
I used to just declare with sheet names, but I can no longer do that.
I am trying to enter only the named ranges in the active worksheet into an Array. The amount of named ranges can be from 4 to 7 per sheet.
I'm self taught at VB (This posts on this forum have taught me - thank you!) and have got the below code working on a Workbook - but not on a worksheet level. ActiveSheet.Names.Count returns nothing, changing to ThisWorkBook.Names.Count returns the sum of all .Names in the workbook.
Sub aTest() Dim sArray() As String Dim sJoin As String Dim y As Long
x = 1 y = ActiveSheet.Names.Count z = ActiveSheet.Name
i Am trying to get this project underway and can attempt this manually in excel but will take ages. I was wondering if there is a code I can use. I am trying to get a 7 character alphanumeric serial number for units as a 4(alpha) and 3 numeric number. like say AAAA001 , i want to list on a row all the numbers on a sheet right upto ZZZZ999
I have a variable called "MinVal" which is an integer. Does anyone know the correct code for rounding this integer to the nearest multiple of 5 (or 10)? I need to do this in VBA, not on the Excel worksheet.
I am trying to add some numbers only if they are integers/numbers. My condition goes like this:
IF((rangeA)=Numbers,SUM(rangeA),"One or more values not available")
I came up with this formula, but it gives me an error.
=IF(ISNUMBER(P5;Z5;BL5;BN5;BP5;AS5;AV5;EU5;FI5;GH5;GK5;GN5;GX5;HE5;HR5);SUM(P5;Z5;BL5;BN5;BP5;AS5;AV5;EU5;FI5;GH5;GK5;GN5;GX5;HE5;HR5);"One ore more values not available")
It says I have given many arguments for ISNUMBER function.
I am using to rotate through different values of 2 variables. The macro was created by a friend of mine 2 years ago so I need to modify it. The macro is quite usable so I hope someone will benefit from it. The problem with it is doesn’t rotate through a range of integers but only from zero to some number. In other words it allows to specify only the right hand of the range through which it will rotate (for example, from 0 to 100 or from 0 to 20 for A). The second issue with it is that it adds a difference number (“dif”, e.g. 3) to the start of the second variable’s range and starts only from there (from 3 to 100 for B). The third issue is that it doesn’t allow to rotate through a third variable (“C”) as you will see in my example. I am working on a task which requires precise definition of the ranges through which the macro will rotate and also the ability to rotate through a third variable. Need to modify it so that all the three imperfections are removed from it? Or maybe there are ready made macros freely available which allow to do just that?
I recently had a major system crash. Took me a couple of hot stops and starts to get my XP professional to behave. It seemed to sort itself out and all is now working fine except that is for excel 2010 part of office 2010 personal and business. I first installed Office 2010 in January this year and it has all worked fine. Now Excel spread sheets behave as follows - even those that were created before the system crashes mentioned above. If I enter integer 1 in any cell and press accept the entry becomes '0.01'. If I enter 1.0 the entry becomes 1 when accept pressed. I have repaired the Office suite. I have removed and reload the Office suite. I have tested numbers in Word and on the calculator and both work correctly - so my question is simple - How do I make Excel once again accept that a single digit should be taken at value and not convert it to tenths?
I needed to convert PartNumber to a string using Cstr(PartNumber).
The following VB code searches an Excel spreadsheet for a Production Order and then looks for a Part Number in the corresponding row. The Production Order can be listed multiple times, but there is only 1 Production Order/Part Number combo. When searching for the Part Number, it will find letters, numbers with a dash and letter/number combos, but won't find integers.
For example, it will find ABC, 3500-01 and T1000, but not 200.
is it possilble to extract integers from a text string within a cell?
Eg. Cell A1 - "ABC 123" I want to extract the "123" from cell A1.
I have many text strings from which I need to extract the integers from. The trouble is that each text string does not follow a consistent order, so I cannot use text functions such as LEFT, MID or RIGHT to extract what i need.