I need to learn the syntax and all options I can use with the Selection function - where can I find that info? I can't find anything in in Visual Basic Help (I find microsoft help is generally totally useless).
For example, in the code below, what are all the options I can use after "Selection. " (ie .Copy, .End, .Select) and what do I use if I want to select a certain number of cells to the left or to the right or up or down?
Sub Fill() Selection.Copy Destination:=Range(Selection, Selection.End(xlDown).Offset(-1)) Selection.End(xlDown).Select End Sub
I'm just noticing now that the "(xlDown)" is X L, not X 1, which I thought might make sense to say "1 time Down". What does the "xl" stand for?
I am trying to implement code that can handle a dynamic number of objects, specifically check boxes.
I know of eval( ) in perl that allows one to dynamically create command lines. For instance, the following code would change all of the Checkbox values to 1. The syntax may not be correct but the idea is solid.
Do While i < num_checkboxes eval("Checkbox" .i. ".Value=1) Loop
I am trying to compare two workbooks and am running into the problem that since I declared my two workbooks, I am limited in the methods that I can use. Here is all of the code so far.
Option Explicit Sub UpdateMasterFile() Dim wbMaster As Workbooks Dim wbEmailed As Workbooks Dim wsPC As Worksheet Dim Master As Long Dim Emailed As Long Dim intMaster As Integer Dim intEmailed As Integer Set wbMaster = Workbooks("Master Info.xls").Sheets("PlantsCom") Set wbEmailed = Workbooks("EmailedData.xls").Sheets("NewInfo") Master = Workbooks("Master Info.xls").Sheets("PlantsCom"). Range("a65536").End(xlUp).Row Emailed = Workbooks("EmailedData.xls").Sheets("NewInfo").Range("a65536").End(xlUp).Row..............
After much online digging, and experimentation, I think I determined earlier that you can't really expose an array all-at-once if it is an object/class property, as you can with an array variable. Now I'd like to confirm this, if I could, because it would be neater to run my simulation in an object instead of a giant and labrynthine user-defined type.
The error I am getting (highlighted in red) is that it cannot view the object properties. So the picture is put in, but it's emplacement cannot be set and the picture cannot be renamed (which must occur for other macros to see it). Pages are not protected. The only self automated macro is on workbook open, and it only resizes to view the area depending on the persons resolution. Microsoft Excel 2003
I want to create a spreadsheet for figuring the cost of some of my favorite recipes. Right now I have a table of basic ingredients (milk, sugar, etc) along with cost of same.
What I want to do is be able to set up a recipe that calls for "3 eggs, 1 sugar, 1 milk" and automatically figure the cost for me.
Ideally, I'd like this to be a "building block" spreadsheet - where I can have a recipe for "roux" (1 flour, 1 butter), and then a recipe for "broth" (1 chicken, 3 water), and then a recipe for "gravy" (1 roux, 2 broth) - where the spreadsheet is smart enough to do the math for me - and if the price of chicken goes up, I can change that in my basic list and it will carry down. And obviously, I want to be able to add ingredients and recipes easily.
This is the code that Recorder proffers to simply take a Range of 3 Cells and make Type Font Black/Bold and to place Thin Borders inside the range and Thick Borders aroung the range.
ActiveCell.Offset(0, -2).Range("A1:C1").Select Selection.Font.ColorIndex = 1 Selection.Font.Bold = True Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With
Let`s assume that I have numerous "Serial Number" in "Sheet1" : http://i40.tinypic.com/2iqbspt.jpg
Now I want to create some cards in "Sheet2" that each card have a serial number that related serial number there is in "Sheet1" : http://i43.tinypic.com/34fz690.jpg. Need easy solution for doing it while when I drag one card to copying it then related serial number in sheet1 would be appear in required field. I mean first card has first serial number of sheet1 and second card has second serial number of sheet 1 ; but I want to doing it quickly with dragging.
I have a list of 10 of my favorite/lucky numbers that I want to play in the lottery. The lottery picks 5 numbers total. I need a way to show me all the possible combinations of my 10 numbers picked in a 5 number draw (hope that makes sense). There are no repeat combinations- for example- I DO NOT WANT 1-2-3-4-5 and 5-4-3-2-1 to come up as separate combinations- so each of my favorite #s needs to be used only once in each combination, and each set used once.
I have searched this board for 2 hours now- read tons of other posts, but not finding a real solution. The output will be a list of all the possible combinations (no repeats, and no permutations) using my 10 favorite numbers. Another example- 1-2-3-4-5 1-2-3-4-6 1-2-3-4-7 1-2-3-4-8 1-2-3-4-9 1-2-3-5-6 1-2-3-5-7 and so on.
How do I create this? I realize the resulting table will be quite a large number of combinations- but we're going to have fun with it and pick a few at random.
I like to use the combo box (Active X control). where I need to provide the range/List in the properties. While inputing the value in properties it is disappeared.
I am developing a VBA for Excel application which uses transient worksheets to collect data from users before writing the data back to master spreadsheets.
My application opens an instance of excel with a workbook and worksheet using the following code:
Dim xlsInstance As Object Dim wkb As Workbook Dim wks As Worksheet
Set xlsInstance = CreateObject("Excel.Application") Set wkb = xlsInstance.Workbooks.Add wkb.Activate Set wks = wbk.Worksheets.Add wks.Activate
I can reference various ranges in the worksheet and do most of what I need but I need to override the Worksheet_Change method. Easily done for static sheets, but this must be set at runtime when the worksheet is created.
Below is an example of how I prefer to work with a database. Results are fast; even across the network and I understand the syntax perfectly.
Code: Sub DBPreferredWay() folder = ThisWorkbook.Path & "mydatabase.mdb" Set db = OpenDatabase(folder) strSQL = "SELECT * FROM transactions WHERE [SimilarItems] = " & myFocus Set tR = db.OpenRecordset(strSQL)
[Code] ........
I'm trying to access a different database; a database being hosted on my SQL server. Because of security and what not; it looks like I'm needing to use adodb but I can't stand it and the slowness (minutes to receive queries. IS there a way for me to access my sql server database similarly to how I'm accessing MDB tables across the network? Below is what I've been trying with the adodb
Code: Sub SqltoACCPAC() Set conn = CreateObject("adodb.connection") Set rs = CreateObject("adodb.recordset") phrase1 = "DRIVER=SQL Server;DATABASE=" & "VNODAT;SERVER=192.168.0.91,1433": conn.Open phrase1, "SA", "password" strSQL = "SELECT * FROM ICITEM WHERE [SEGMENT1] >= 101 AND [SEGMENT1]
I have thousand rows of data in the following format:
Despatched Time Batch Date Time Amended Time
20/4/2013 3:45:00 1 20/4/2013 03:45
[Code] ..........
'Date' is generated by =IF(A2="", "", TRUNC(A2)) 'Time' is generated by =IF(A2="", "", IF(E2 = "", A2 - TRUNC(A2), TIME(LEFT(E2,LEN(E2)-2),RIGHT(E2,2),0)))
And sometimes I may want to change the Time, so I used another column 'Amended Time' to insert a 4-digit value to do so.
I want to arrange them into batches according to the hh:mm, so for the column 'Batch', I used the following formula: =IF(D2 = "", "", IF(EXACT(D2, D1),MAX(B$1:B1),MAX(B$1:B1)+1))
The problem is, when I changed the time by inserting 4 digits in 'Amended Time', the time value is actually different from those generated by TRUNC(), so even two cells have the same time '03:46', the time value is not exactly the same and so they are arranged into different batches (please refer to the following table).
Instead of typing out my code hundreds of times, I would like to replace it with an abbreviation or variable(?). Here is my example. If I have this in the wrong place please let me know. I want to replace Activecell.Interior.Colorindex with ACIC. I tried to Dim ACIC as range, variant, string...to no avail. In combination I Set ACIC = Activecell.Interior.Colorindex and that didn't work. I have been toiling with VBA for a year and I am still trying to learn the terminology and understand it so please forgive me if I seem really NOOBIE. :-)
how to calculate averages and standard deviations based on different time periods without having to manually change the cells?
example: 1st average output at z3, 1st std dev output at z4 data to calculate from c3:c50
2nd average output at z5, 2nd std dev output at z6 data to calculate from c51:c98
3rd average output at z7, 3rd std dev output at z8 data to calculate from c99:c148
and it goes on based on this sequence. i would like to know how to do this without having to change the cells each time i want to calculate. basically what is the quickest way to calculate following this sequence?
I am doing a spreadsheet where I have 1 main sheet and 2 sheets with data.On the main sheet I have a drop down list to select either one of the 2 sheets and upon selecting,all the data from that selected sheet will be displayed on the main sheet.
Code: Dim Recurring_Total as Range With .Range("A" & Rows.Count).End(xlUp).Offset(,2) Set Recurring_Total = .Range("A" & Rows.Count).End(xlUp).Offset(,2) .Font.Bold = True End With
I'm doing somthing basically wrong here but i'm not sure what, everything seems to work as planned except in each case where a value is assigned the value isn't actually assigned. any ideas?
The basic objective is to convert a list of numbers (1 to 3 digits) to the format "000-" i.e. all three digits with a hyphen at the end.
I have a while loop in which I'm updated information in 2 separate worksheets. I'm using the With-block statements separately to update each, but after the 30th iteration (and it's always on the 30th), the VBA code halts and get the "method 'value' of object 'range' failed" error message pointing to a line with the code as follows:
With Sheet1 .Cells(lngRow, 9).Value = intMonths End With
where "intMonths" is an integer variable which I'm populated properly, and "lngRow" a long variable. When I debug both variables have proper data in them, and I have no idea why this is bombing.
Dim c As ADODB.Connection Dim r As ADODB.Recordset Dim sq As String Set c = New ADODB.Connection
It's the standard ADO example used in this forum many times. Obviously there is some type of issue when the records are returned. I know that it isn't an issue with the number of records returned. It can return 30,000 fine but a few hundred may return this error. It's kinda random.
I have a range object called tbl which consists of a number of rows and columns of numbers.
I have another range object called e that is the total row just beneath tbl. I want to sum up the total of each column within tbl and put the result in the appropriate cell within e.
I can do it using a for/next loop as shown below but there could be 10,000 rows and a hundred columns in my range which woulod probably take forever. I know there must be another simple way to do it but despite racking my brains and trying various things I can't get it. I'll be very grateful for any assistance.
My current solution is as follows. (e is selected).
'Calculate totals and display them
For g = 1 To tbl.Columns.Count ' the number of columns h = 0 ' Holds the column total For f = 1 To tbl.Rows.Count - 1 ' The number of rows h = h + tbl.Rows([f]).Cells(g).Value 'add the cell value Next e.Cells(g).Value = h ' Display the column total Next
Sub test() Dim rng, dest, c As Range Dim result As String Worksheets("sheet1").Activate Set rng = Range([a1], [a1].End(xlDown)) Set dest = Range("d1") result = "" For Each c In rng result = result & " " & c Next MsgBox result dest = result End Sub
the penultimate code statement "dest=result" does notwork the value of "result" is not entered in "dest" though no error comes up if I use "dest.value=result" it gives error "object required" If I use "range("d1")=result" it works.what is the theoretical mistake.
is it possible to write Range("A1:H6") without the string inside the range brackets? i'm trying to do is pass numerical column values into the Range function, and i'd rather not make a mess using the CHR function (CHR(65) = "A", for example).