Book On Programming
Jun 19, 2008I have only the basic knowledge of the VBA programming. Are there any books you can recommend?
View 2 RepliesI have only the basic knowledge of the VBA programming. Are there any books you can recommend?
View 2 RepliesI made the following code to merge 2 workbooks together.
The code is to be executed when the user has Workbook A opened. (All sheets in workbook KPISWD are supposed to be moved after all worksheets in workbook KPICustomers).
I keep getting a debug error on the code that is supposed to do the actual move and loop until it is finished with all of the sheets in Workbook B.
Code:
Dim KPICustomers, KPISWD As String
KPICustomers = ActiveWorkbook.Name
Workbooks.Open Filename:= _
"W:FacturatieKPI per periode SWD.xls"
KPISWD = ActiveWorkbook.Name
[Code] ..........
I have the below code, which now looks to see if a file is open or not, if it is, then copy and past 'Data' and if not open the book and copy 'Data'.
I think the code is sort of right, but im missing something, as i keep getting runtime error when i try and copy. Here is the
Sub PrintSaveKPIUpdate()
Dim sFilName As String
sFilName = "C: estCashSales_KPI.xls"
Set Main = ThisWorkbook
If IsOpen(sFilName) Then
' Book is Open.
Worksheets("Setup Data"). Range("Data").Activate
i have done a search on this topic and found many similar answers to many similar questions. All specify using Application.Run "workbookname.xls!macroname".
In my code, the filename has an assigned value as the master code goes out to many secondary files - the user selects the particular one they want at the start of the macro. The variable assigned is called "UpdateKAMsFile".
how do i get the macro called KAMsRandomColour to run in the workbook designated by UpdateKAMsFile?
so to start off im not able to attach things due to security reasons, what i need is either 1 of 2 macros. if its possible, both are related. one possible is as follows: i need it to go through a certain column (say I for example) and look at the information in it, this information can vary from peoples names along with dates and other stuff, i want it to look through these and if anything has a date today and prior i need the cell to be highlighted. problem is sometimes it might have 2 dates, or no dates. it should have todays date, their name, other information, and future date of something. but not everyone does, this is the macro i dont think that can exists.
2nd macro possibility the other macro uses the first sheet, AFTER been highlighted, normally by hand, and takes it to another workbook and puts in in certain spots. so the first sheet has names of everyone in column K. what i need is it to look at column I and if its highlighted take entire row to other book, and put into sheet under the person name in their tab. the second book has a tab for each person (at this time 18 tabs) which can fluxuate, and each tab is the persons first and last name, without spaces. since when i put sums on main page it didnt want to work with the spaces i had to omit them. again im not sure this is possible.
I would like to know if there is a way to copy a spreadsheet and paste it into a new tab on another spreadsheet. We currently download 2 lots of spreadsheets from SAP and would like to create another spreadsheet to act as a 'central' preadsheet. What I would like to happen is that the data from the 2 downloaded spreadsheets will be automatically pasted into 2 new tabs on the central spreadsheet, then run some formatting macros (which I can do fine).
View 3 Replies View RelatedThis may be a bit of a silly question but any assistance would be much appreciated, as I cannot figure out where I am going wrong:
Dim RRR As Range
Set RRR = Range("c3").End(xlDown).Select
What I am trying to do is to create a dynamic range called 'RRR' so that everytime the macro is run, it makes sure that all the data is selected in the column.
I have attached a worksheet as my example.
I have been trying to build code and I am a newbie when it comes to this.
I have a sheet that is user entered (Criteria). I need to build a macro/code that says if they choose "Yes" to any of the Products on the criteria sheet, then copy all rows that have an X in them that are in the corresponding column on the Master Template. To make it even more complicated I only want to copy 4 of the columns (ID, Task, Share with Client and Accountable).
I know if they choose multiple columns then I could have duplicate rows, but once all the rows are copied I was going to build a remove duplicates macro. However, if there is anyway of preventing duplicates with the original.
I need help to get the macros right to do the following that it can not do now:
I would like the user to be able to pause in between input areas and do others things.
Need for the input length to be varible or grow with the information
Are these things possible?
I am looking for a code to generate a combinations of x numbers taken 5 at the time. t
View 2 Replies View Relatedhow to type a name into one cell and have all the places in a particular range (a1:H12) that displays that name to highlight a color.
View 14 Replies View Relatedi could create a spreadsheet with two columns one with email addresses and another with a path to an attachment
e.g. column a = example@example.co.uk
column b = c: est.xls
and then for a macro to read my data, and send an email to those email addresses in column a with the attachment of column b
I have created a userform with text boxes and a list box. I have a few questions. First for the list box. I got the information for my list box through the list box example sheet2!A1:A1000. Is there any easier way ? Next I would like to create a New Command button to create a new record. I decided to just do a clear all textboxes, option buttons ect.. to clear, is there an easier way ? I seem to be looping sort of way when I get to txtissue.Value = "" it than goes to txtIssue_Change()
View 14 Replies View RelatedI have a base list of numbers on a spreadsheet that represent specific values. For example, Column A has a list from cell 1 to 20 that contains a group of different numbers that all represent credits. Column B also has a list with different groups of numbers that represent debits. Each month I receive a report with a large list of numbers that contain credits and debits. I sort the list and use my base list as a reference to differentiate what groups of numbers are debits and which ones are credits.
I am hoping there is an easier way to do this. My question is, is it possible to use the base list that I have as a template so that the next time I receive a report, I can just copy and paste the numbers onto the template and have them somehow formatted or programmed to reflect their correct code of either debit or credit?
I need to compare dates in excel (VBA programming). How can I do to Compare two dates. If I wanna know the difference between to dates (days, moths and years)
View 2 Replies View RelatedI have an excel sheet which has 5 columns & 5 rows.I would like to transpose values in 3rd column to 5th column .But after running my code I am not being able to get the deired output. rectify the error for me?
xlApp = CType(CreateObject("Excel.Application"), Excel.Application)
xlBook = CType(xlApp.Workbooks.Add, Excel.Workbook)
xlSheet = CType(xlBook.Worksheets(1), Excel.Worksheet)
xlSheet. Cells(1, 1) = "NAME"
xlSheet.Cells(1, 2) = "CITY"
xlSheet.Cells(1, 3) = "STATE
xlSheet.Cells(1, 4) = "ADDRESS"
xlSheet.Cells(1, 5) = "PINCODE"
Attached is my worksheet. I need to program column C to adjust the value in column A according to the rules set in table J2:K17, but ONLY if the value in column B = mens. If the value in B does not equal mens, then leave the C cell blank. I've manually populated column C to show the end result that I'm looking for.
I tried a simple =IF(ISNUMBER(SEARCH("Small",A2)),"S",""), etc., but I can't figure out how to incorporate the additional condition that would let the cell return a value ONLY when a condition in B is also met.
NBVC helped me with a similar request previously, but with that formula, if the condition wasn't met, the cell returned "#N/A" instead of being blank.
I been trying to create stuff that will make my work life real easy. I need creating a program that will send an email to different recipients. I created a spreadsheet the contains different information. When a persons name is selected on Column D, excel/outlook will generate an email to that person containing the info on Column A to D.
And then as soon as the work is processed and column G is filled, outlook will generate an email back to who created the requests column A.
I have some code below which looks at values added between a set range of cells. This works OK.
My problem is when i have to change the cell as it removes the background colour already set to certain columns ie Columns I, J, P, Q, W, X, AD, AE (these are coloured a light green).
The other cells in the range have no colour and so the code below works with no problem.
I'm trying to move my VBA programming to the next level and use more efficient code.
I'm wondering if there is a faster way to run the loop below, perhaps removing the 'For c = 2 to LastRow' as it seems a little clunky to me.
For c = 2 to LastRow
If Cells(c, Range("Product_Type").Column) = "" Then _
Cells(c, Range("Product_Type").Column).Interior.ColorIndex = 41
Next c
I've seen a similar thing somewhere where it was all done in one statement without the loop.
I'm building a macro thats copying 4 rows of data at a time from a spreadsheet (has 1500 rows of data total) and transposing it to a master spread sheet. There are blank rows in between each entry (the data source I'm using isn't clean), so how can I either have the macro jump to the first row it finds with a value, copy rows until it stops finding a value, paste+transpose into a new document and then repeat the process throughout the document.
If thats too complicated, a macro that finds rows based on a formula would work as well. E.g. Start at row 5, copy+paste+transpose 5-8, start at row 11 (5+6), copy + paste+transpose 11-14, start at row 17 (x+6) ...etc... Here's the code I have developed thus far:
I'm trying to set up a way to format column widths and row heights in a macro (so that it can read a value from a cell and format a column to that width). I've used the code below which can be repeated for the number of rows and columns desired below
Worksheets("Sheet1").Range("d1").ColumnWidth = Range("d1")
However, I want to be able to do this on a workbook that could potentially have 40+ sheets. Is there a way of applying this code to operate over the whole workbook rather than just one sheet at a time?
I am trying to set up a "diet log" for my nephew to track his eating habits for a school project. I am trying to make the "total" section of the attached spread sheet auto calculating depending on the information placed in the "breakfast / lunch / dinner / snack" catagories. I have two worksheets in the file. The first being the preferred method of a single cell and seperating the items using only a ",". The second sheet has a little bit different lay out which I don't think will work as nicely.
Honestly, I am not sure if this will even be possible, but I figured I would try here as a final resort. Currently there are just some sample foods in there as I will let him fill in the actual workbook for his use.
I'm new to Excel and I'd like to know since it's more organized are the scripts better than other programming language scripts such as Ajax, JavaScript, Java FX, etc.
View 4 Replies View RelatedI have a large amount of data on NBA teams and players that is extracted from external web pages. In order to have the data shown on separate sheets to do comparisons I have to use many array formulas and from what I have read that takes up a large amount of memory. I'm now at the point where I'm receiving a message that says "Excel cannot complete this task with available resources" when I open the workbook.
Is there any plausible way that I can resolve this situation? I have thought about converting the lookup formulas from arrays (index/match) to vlookups and hlookups.
I'm not as advanced with using Excel as most of you, and I realize I may be at a point to where I will need to use different software to analyze my data, but I would prefer to stick with Excel as it would be difficult to start from scratch and learn how to use a different program.
I am looking some suggestions for a good book i can buy online to learn about writing VBA for excel. I find this forum very useful for help on solutions to write VBA code but i would like to learn the basics so i can understand what it is i am adding into my excel files. Moderators... If this breaks the forum rules (i've read them and can't see anything).
View 3 Replies View RelatedI Have been working on a spreadsheet for attendance recording. I will be keeping a new one for each month. I need to be able to take accumulated data from one book and put it in the new one. I have the Following
View 2 Replies View RelatedWhat do I need to do to get my vlookup formulas to look into another workbook(or excel file) without having to open it up.
Here is a sample of formula that I have:
[=IF(C13="","",VLOOKUP(C13,Data,21,))]
I have data like this:
Sammi Alvarez-Vegan
1201 E. Ponce De Leon Blvd.
Coral Gables, FL 33134
Angie Penns
6870 SW 44th Street
Building G28- #110
Miami, FL 33155
Some names and addresses are 3 lines and some are 4 lines. All have a blank line between. There is a double blank between different name blocks.
I tried to Concatenate so all parts would be in B1 cell. =A1&","&A2&","&A3&","&A4&","&A5&","&A6&","&A7
That did what I wanted for B1, and when I copied it down, B2:B8 was part of an address.
It was not until B9 did the actual next name come into play.
I know there must be a better way
I am using WindowsXP and Excel2007
I am generating Excel reports (with different names) using VBA. The problem I'm having is that for a certain macro, it needs to create a new book, and then activate the original window. But because all the new reports have new names (but using same macros), the name written in code doesn't equal the book's new name. How can I set a variable to be the book name? I do know that the name of the original book will be equal to two letters plus the value in A7. The problem is this: I have written a macro that shows the following
Worksheets("Sheet2").Select
Workbooks.Add
Windows("FT Bi Test.xls").Activate
I need something more like this (though this exact code doesn't work):
Worksheets("Sheet2").Select
Workbooks.Add
Windows("FT " & Range("A7").Value ".xls").Activate
Or something like this:
Worksheets("Sheet2").Select
Workbooks.Add
Windows("FT " & Variable ".xls").Activate