Refresh Input Cell And Capture All Outputs From Each Loop
Jul 10, 2014
Assuming I have three worksheets:
1) input: col A has a series of product code (string)
2) calculation: where I want to automatically copy and paste each product code from "input" worksheet into "calculation" cell B4, and through many steps of calculations, return the outputs in cell B8 and B9 (parameters are numeric)
3) output: how to automatically record B8 and B9 from "calculation" sheet to this sheet Row 5 and 6 from each loop? (format of output doesn't really matters)
In the Data tab under Connection Properties, I have "Refresh every x minutes" checked. Question is how do I capture in a cell within a sheet the last time it was refreshed?
I would like an input box that asks users a select a range of cells....After this certain range of cells is selected....I would than like that range to be copied to a different sheet.
I have this code in an active worksheet that works with the exception that when I try refresh other Pivot Tables with the file that it goes into a constant loop.
Private Sub Worksheet_Change(ByVal Target As Range) ' ' Update the pivot table on this worksheet if data in columns A or B is changed ' If (Target.Column = 1) Or (Target.Column = 2) Then ActiveSheet.PivotTables(1).RefreshTable End If End Sub
I'm hoping to automate some pivot table refreshes. I've got a dozen pivot tables on a sheet all with different numbers. I'm hoping I can write a code that loops through the pivot table names and runs the refresh. Here is the code as it is right now. I've essentially copied, pasted, and changed the name of the pivot table for the refresh.
I would like to create an array in vba (22,21,20,19,18...) that renames the PivotTable and runs the code.
sub Refresh () Dim pt4 As PivotTable Dim Field4 As PivotField Dim NewCat4 As String
Firstly you don't need to know anything about Bloomberg to answer this query, only that Bloomberg has various functions that take time to update.
The code Application.Run "RefreshEntireWorkbook" will update these functions but Application.OnTime (Now + TimeValue("00:00:25")), "RunList" is required to allow them time to get the data from the feed. However this only works if the refresh and wait commands are in a seperate function. So in simplified terms it must go like this in vba:
The weather data I receive from a web query pulls data in oddly. For example, some days it pulls the weather for today into cell A1, and the forecasts for the following 3 days are in A4, A9, then A19. The cells in between are blank, and the problem is that it pulls it in randomly otherwise I could just have the cells reference it (ex. some days it pulls it into A2, A8, etc) What I need to do is arrange it, in order, without the blank rows, but I want to do this without deleting the rows.
I have an input box that request the user to enter a vlue between 1 and 6, and uses the answer to multiply another range of cells.
Now I'm not sure how to add a couple of other features. I would like to: 1. Loop the input box until an acceptable answer is given, (numeric, between 1 and 6), with a message box prompt that says "Try Again". 2. Exit the macro if the user hits "Esc".
Sub Copydata() Dim emre As Integer For emre = 100 To 121 Sheets("CP TB").Select ActiveSheet.Range("$B$8:$G$10000").AutoFilter Field:=3, Criteria1:=emre Range("E8:F8").Select
[Code] .....
I want to skip values when the selection is a value I choose. I tried to put a "If" statement but I couldn't make it work.
The IF statement will check the selection after red colored code. if cell value is "a" then it will go for Next emre.
I have a range (C3:C56). I have a set number in each of these cells. I also have a range out to the side that calculates a number after input a % in cell BI2. The formula reads as "=AE3-(AE3*$BI$2)". Basically it is reducing the values in my range. If a number is in my range is 8 and i input 25% in cell BI2, then my result would be 6.
I have a few steps I want to happen with this range.
1 Display an input box asking for a percentage 2 I want to loop through my range and use that percentage to reduce the numbers 3 (optional but would be amazing to have) after the reduced value is determined, round down to the nearest multiple of 4.
I am trying create a macro which asks for the Sheet name as an input for a Sub. I've gotten it to work but there is just one problem: The Cancel button does not work on the MsgBox. Everything else works just as I want to: it shows a dialog box to enter a name for the worksheet and if the worksheet does not exist, it loops and shows a message saying that it does not exist.
However, the cancel button does the same thing as entering nothing in the box and it does not end the process. I would want it so that the cancel button kills the process. Here is the code:
Code: Option Explicit Function WorksheetExists(WSName As String) As Boolean On Error Resume Next WorksheetExists = Worksheets(WSName).Name = WSName On Error GoTo 0
I have several hundred workbooks with multiple worksheets(15-35) that I am trying to tidy up, so the data can be entered into a database. Its my first attempt at VBA and between the forum and macro recorder I made an attempt which is below. I just can't seem to get over the last part. I have searched the forum but can't seem to find any relevant information. I have a couple of questions.
1. I need to be able to run this macro over all the worksheets in the workbook, so how can I loop it? All the worksheets are named differently i.e. peoples names.
2. In my code I have inserted 4 columns. These columns will be the only thing common between all the worksheets. A1 to A30 = Week number, B1 to B30 = Shift Number, C1 to C30 = Supervisor number. Column D is blank. I'd like to be able to be prompted to enter these 3 numbers at the start if possible? Can this be done in such a way as you are only prompted the once and not on each worksheet? I picked 30 rows because the amount of rows in each worksheet varies but never exceeds this. The end of my code "Delete rows where cell B is blank" will delete any excess data where 30 rows of week numbers etc are not needed.
Sub CleanCost1_1() ' ' CleanCost1_1 Macro ' Macro recorded 04/09/2009 '
I am basically creating a questionnaire style program where the user gets asked 50 questions, one by one and they input their answer and press another button (submit button). They initially press a start button to start the questionnaire.
So far, I have created a range of questions and it fills one row where the questions are entered. In intend to use a for loop to go though all 50 questions.
Now this is where I’m stuck. I have a submit button and after each question is displayed, I want the user to enter their answer and then click the submit button to then continue to the next question.
However, I can’t think of how to do this.
1.Firstly, how can I loop through the questions and yet allow the user to input their answers after each iteration?
2.Also can I even click the submit button during the loop phase? I.e. when already running.
The code below first asks a user to input a weekending date (which must be a Saturday). The value of the input box goes to cell C1 of my spreadsheet. That part works fine. I also have a function in Cell G1 with the function:
=TEXT(C1, "dddd") I don't know if this is the best way to test for a Saturday but it is what I have,
Where is goes bad is if the date is not a Saturday. I have a loop to force a new date install via a input box but it won't update C1 with the inputed data to recheck for the Saturday value. Below is the whole code I am working with...
Dim aa As String Dim bb As String
If Range("C1") = "" Then Do While bb = "" bb = InputBox("Please Enter a Weekending Date!") Loop Range("C1").Value = bb End If If Range("G1") "Saturday" Then Do While aa "Saturday" aa = InputBox("Weekending Must Be a Saturday. Please Enter a New Weekending Date") Loop Range("C1").Value = aa End If
I have a query with ODBC connection to a SQL database. This query's parameter is linked to a cell. The resultant data is the source for a pivot table. I want to refresh the pivot table, when the query is run. I've tried using the cell that triggers the query....but the problem is that the query takes about 10 seconds to run. By the time the query returns new data....the pivot has already refreshed. I need it to refresh AFTER the query is complete.
I tried adding a cell that sums up the data from the query...thinking when THAT changes (due to updated data), to trigger the pivot refresh. Problem is that I don't know the trigger for when the sum cell changes (ie....formula change, not typed in.)
I want to extract just the last name from a cell that contains the full name and put just the last into a seperate cell.
WHAT I AM DOING: i copy the contents of a internal screen onto a spreadsheet that i use to check various peices of info and calculations. when i save I like to save my sheet with the last name and then acct number. The internal system screen combines the customers names into a single cell. Right now i have to type the last name into a new cell and have a simple save macro that concatenates that last name with the acct number and saves it into the appropriate folder.
The field i am pulling from is always formatted with FIRST NAME then MI (IF PROVIDED) and then LAST NAME. So when i dump the screen contents into excel A20 may be MIKE SMITH, or MIKE T SMITH. so i need something that looks backwards in the cell and stops at the first space and dumps SMITH into another cell of my choosing (B1 in this case)
How to modify this code so that I select only one column triggers the time stamp update? For e.g. if i make any changes in column A, the date stamp is updated in the corresponding cell in column B. Basically, I am trying to narrow down to only one cell in the row, but it should work for any row in the sheet.
Refer to the below post: [URL] ....
VB: Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row > 1 Then Cells(Target.Row, "B") = Now() End Sub
I am trying to capture the value of a cell before a change even. The attached Macro will report the value before the change but does not store it so that I can use it in another module. What I am trying to do is capture the value before the change and then look that value up in another worksheet (in the same workbook) so I can make the same change in the second workbook.
The values will always be in Column B and will always be string characters.
The code I am using for the change event is as follows: ....
I would like to know how to capture a cell value at a specific date each month in a situation where this cell can change value as it is a formula. For example, the cell returns a percentage that is derived from other data that can change regularly. It may be 45% today, but a user may alter other data in the spreadsheet and it could be 67% tomorrow (or any other percentage).
I want to graph a monthly trend of how this cell value changes by capturing the cells value on the 20th day of every month, or it would also be ok to work on a periodic snapshot of every 30 days.
I'm trying to write a routine that will display the Red, Green and Blue RGB properties of a cell's interior colour.
I found the following function:
Code:
Function SingleColorFromRGB(colorWanted As String, RGBValue As Long) As Long Dim rColor As Long, gColor As Long, bColor As Long If RGBValue < 0 Then GoTo ReturnError rColor = RGBValue Mod 256 RGBValue = Int(RGBValue / 256) gColor = RGBValue Mod 256
[Code]...
How I should call this function in a worksheet, or failing that, come up with something better e.g. a message box that will display the numeric values of each RGB property for the selected cell, or a single cell worksheet name?
i have an excel spreadsheet with 27 or so workeets. it contains sales figures in it. I want to be able to link mutiple cells of this workbook to another workbook so that it retreives that data, So that when I hit the refresh (!) button it will automatically put the data in. I will recieve new sales figures (new files) on a monthly basis so i want it to be able to update the figures to the new figures.
i have used two form and a macro in a workbook. First one captures data via text box. This data is captured in a cell. Form two adds a new sheet with the name that is captured in a cell, then perforns some task in the newly created sheet. Macro does the formatting of the newly created sheet and saves the sheet. Again when i reopen the the workbook the value is captured in next blank cell and the procedure follows. This works fine as far as there is a single. But not in case of multiple user at the same time. Is there a way to directly capture the value to form 2 and macro so that multiple user can work on the same time.
I have date values in a range of cells, and have named the range "ChangeRange".
How would I:
1. loop through the range to store the current value of each cell in a scripting directory? 2. use vba to compare the values in that dictionary to the current value of the cell when it changes (NOTE: the change is by formula, not by manual insertion of a new value? 3. write that old cell value in the cell immediately to the right of the cell when it changes and update the dictionary value with the "new" old value? 4. do this for more than one range of dates on the same page?
I am trying to create a macro which gives me an input box. I need to enter 2 numbers into the input box. It would be as follows:
Input Box Msg 1 - "What is your labor cost?" (NUM1) Input Box Msg 2 - "What is your productivity rate?" (NUM2)
Then I need the macro to take this info and enter it into a formula which changes according to the row which you are on. (I need the macro to work based on which ever cell I currently have selected). The formula would be this if I currently had a cell on row 10 selected:
=(NUM1*(NUM2*$H10))/$H10
So, if I currently had cell L10 selected, and I ran the macro and put 100 in for "NUM1" and 10 for "NUM2" and my sheet had 20 in cell H10, then the macro would enter the number 1,000 into cell L10. If I had L500 selected, then the macro would enter the final number into cell L500 based on what value H500 contained.
Here A and B value is keep on changing from external source, when A1=9.30am, the B1 value 120, then C1 should capture the B1 value and stored in it. like wise it captured and stored for every 5 minit or as per requirement.
I'm trying to do is definetly simple to a lot of you, but I'm struggling on how to get started. I attached a workbook that clearly shows my work! I'm almost there but not quiet. Basically the user will be able to make a slection that will be used to lookup values from a different sheet. Each selection triggers a ranking number at the bottom (red pattern) in the worksheet. Now I would like to capture all scenarios and display the ranking.