Best Practices For Structuring Customized Applications
Mar 5, 2008
so i'm building an application that'll allow users to manipulate records in Excel with just a GUI, using Userforms, Modules and Class Modules. it's all working but i'm feeling like i skipped a little on structuring it properly.
for example (from my Java work in college), you'd call just one object from the main method, which would create a GUI object, and create/manipulate instances of the different Classes when buttons are pushed. basically you one object whose main created other objects, who ran procedures, etc. what i'm hoping for is to make it as modular and easy to maintain as possible. would anyone have a good resource for optimising a medium-sized application? (the tips Excel/VBA Golden Rules. These Should NOT Be Optional were very good, by the way.)
View 3 Replies
ADVERTISEMENT
Nov 28, 2013
If the admins or you would like to change or recommend a change, I am trying to figure out what the code would look like for cells B22:B28. I need it to count the number of occurrences of the part number in A4:A17 and then combine the applications from the corresponding cells in column F (F4:F170 into a single cell (B22:B28).
On sheet 2 I would manually copy/paste the list of part #s from sheet 1 and remove duplicates. The add the formula that I can't figure out into column 2.
View 6 Replies
View Related
Dec 27, 2008
I have the following section of code and i am trying to make it faster. Currently when this procedure runs the screen "changes" durings its execution. Now i know i can "turn off screen updating" and this will increase speed but are there commands in the code which will prevent the screen from updating. I know activating or selecting things causes the screen to change. Also, any inputs to make this faster/better would be greatly appreciated.
View 14 Replies
View Related
Apr 20, 2014
Here is what I am trying to accomplish - note that I need the formula to exist in an unrelated cell - in this example I use A6
Cell A1 is a drop down with "Proposed" and "Actual" as the choices.
Cell A2 allows user input ("Proposed") until the "Actual" value is known.
The "Actual" value is pulled from a different workbook (Workbook2).
The "Proposed" number can change many times before the "Actual" number is pulled in...this means that I cannot place the formula into A1 as it will be overwritten when the user puts in their "Proposed" number.
I would like to place the formula into an unrelated cell to continue to allow A1 to be user edited.
Formula would reside in A6 and the statement I am trying to execute would be something like:
If(A1="Actual", A2=Workbook2.xlsx]Actual!A2)
I have tried the formula in it's simplest structure to confirm it works before I reference workbook2 but it doesn't seem to work (formula resides in A6): =IF(A1="Actual",A2="hello"). I just get a "FALSE" result in A6. If I remove the = before IF excel does not recognize the statement as a formula.
View 1 Replies
View Related
Aug 23, 2009
I have a two workbooks, one which is a daily schedule and the other is a yearly summary. The worksheet in the yearly summary uses a date in the first column and the daily sheets each have a date on them. I've isolated my data in the daily schedule and I've retrieved the date in its numerical equivilant. I have data that is 6 cells wide by "x" amount deep on any given day. Essentially, I schedule different things to be made and each row has that designation, process, dimensions, quantity, etc.
I want to test the contents of the first cell in the array, copy the pertinent data, switch to the proper worksheet, and paste it into the line where it goes. I believe I need to check a few cells to narrow down exactly which group of cells on which sheet they would be copied to.
I am not trained at all as far as programming goes, but I've been practicing for a few years now. What I am just going to start doing is testing the cells in the rows in the array of data and trying to divide it out that way. This just seems like the long way around.
View 2 Replies
View Related
Apr 4, 2014
I am trying to run multiple applications. I can run one application i.e.
Application.Run (Sheets("Sheet2").Range("A8").Value) but not multiple i.e Application.Run (Sheets("Sheet2").Range("A8").Value) & Application.Run (Sheets("Sheet2").Range("A9").Value) at the same time.
I have also tried Application.Run (Sheets("Sheet2").Range("A8:A9").Value) but to no avail.
View 4 Replies
View Related
Sep 7, 2009
How can I control non-Microsoft applications using VBA? For example, how can I open a pdf file, print it and then close Acrobat Reader?
View 5 Replies
View Related
Dec 7, 2011
A VBA macro uses the Shell command to open several DOS command boxes. Each DOS command box is copying a file from one location to another. Since I am copying the files over a network, it is most efficient to copy the files in parallel (simultaneously) rather than sequentially. I would like to pause the program until all of the files are copied, i.e., until all of the DOS command boxes have closed. Is there a way to pause the program until all command boxes are complete?
View 1 Replies
View Related
Apr 8, 2013
I have a macro that cycles every 5 minutes. I have tried everything I can to get this program to run while I modify a sheet in the workbook to no avail. I have however figured out that if I open up a separate excel application that my macro can continuously run without preventing me from modifying the other application. Now I need to figure out a way toggle between the two excel application windows if a condition is met. The basis of this is to allow production associates to create a schedule and modify it while a macro looks into the defect database and if a defect becomes too problematic, the macro interrupts the schedule to display the issue.
View 2 Replies
View Related
May 29, 2009
Is there any way to access all the applications which are opened through only Excel.. Like creating a menu which will list all applications that are running.. like Word., other excel workbooks,Notepads etc?
View 9 Replies
View Related
Apr 12, 2007
I am using MS Word to create a list to go into Excel, it seems advantageous to do it this way because I'm using the Heading Outline Numbering feature of Word.
Presently my macro assumes the word document is closed. How do I modify the macro to:
1. check if the file is open?
2. if already open, switch the focus to word?
3. switch the focus back to excel?
Sub GetDataFromWordDoc()
Dim FileToOpen As String
FileToOpen = ThisWorkbook.Path & "5Whys.doc"
Sheets("Data1").Select
' MsgBox "Active sheet is " & ActiveSheet. Name ' My check
ActiveSheet.Range("WordClear").Select ' Existing data to remove
Selection.Clear
Set appWD = CreateObject("Word.Application")
' here I would like to check if the word file is open
appWD.Documents.Open Filename:=FileToOpen '
appWD.Visible = True
appWD.Selection.WholeStory
appWD.Selection.Copy
Range("WTarget").Select ' Single cell range to start paste
ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:= _
False
'Range("D3").Select
'ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Sheets("5_Why_O").Select
' At this point word in the fore, excel in the back,
End Sub
View 3 Replies
View Related
Oct 15, 2007
Is it possible to have a query that takes data from external applications?
View 3 Replies
View Related
Jan 4, 2007
I'm using a VBA UserForm (ShowModal=False) as the front-end on a spreadsheet for logging purposes. Here's the progression of the problem:
1. I have the UserForm loaded and the cursor is in any given textbox/ combobox on the form.
2. I switch to another program, then come back to the UserForm.
3. The cursor no longer appears in whatever textbox/combobox I was in when I left the UserForm. If I type, nothing happens (I have to click the field again first, then type).
However, if I TAB, it will go to the next field in the Tab Order just fine. It seems that the control has "pseudo-focus"--it knows which field to tab to next, but the control won't accept input unless you click it. The odd thing is--this UserForm has a button which launches another "child" UserForm. That "child" UserForm does not have this problem.
View 3 Replies
View Related
Apr 14, 2006
The VBA shell command is as follows:
programPath = "C:Program FilesInternet Exploreriexplore.exe" ' works
'programPath = "iexplore.exe" ' does not work
Shell programPath + " " + fileToLaunch, vbNormalFocus
but the drawback is that the invoked program (iexplore.exe, at least in my case) needs to have the FULL PATH to where the program exists = the "C:Program FilesInternet Explorer" which may or may not work on someone elses computer. This hardcoding will not work and is not transportable.
Is there a trick to find where the executing program lives? or launching it without the path?
View 9 Replies
View Related
May 20, 2009
Is there a way to have customized cell backgrounds that are more complex that Excel's preset colors and patterns?. For instance, I have a merged cell (it has to stay merged) with a value that is located at the bottom-center of the merged cell. I want to have either a fading gradient (the top of the cell is white fading to a blue bottom towards the value), or just have the bottom portion of the merged cell colored. I have Excel 2003 so I don't know if any other version has this feature.
View 3 Replies
View Related
Mar 26, 2007
I need to have all cells locked and protected, but I need to be able to select all cells in column A only. With 2003 I can chose to be able to select locked cells in the Protection Properties, but that allows at the same time to select all cells and I want a property to allow selection in column A only.
View 9 Replies
View Related
Nov 14, 2008
I have an txtBox in a userForm. I need the value of the userform in a customized format i.e. the user will be able to enter only 5 digit numbers and after the value has been entered the txtBox should dispaly the value with prefix "A".
For example:
1. If user enters values as 56, then txtBox should display as A00056.
2. If user enters values as 12346, then txtBox should display as A12346.
View 9 Replies
View Related
Nov 20, 2012
I have a piece of code from a form command button. its supposed to colect data and put it to appropriate cells.
VB:
FoundColumn = 0
For Each c In Sheet19.Range("A5:A33").Cells
If c.Value = student1.Value Then
'check if date allready exists
For Each cc In Sheet19.Range("c4:nc4").Cells
If Calendar1.Value = cc.Value Then
[Code] .....
I need this for Sheet19 and to 10 more worksheets like Sheet20, Sheet21 etc. I can manually copy paste the code and change the Sheet19 to whatever but it just does not seem the right thing to do. I tried:
VB:
For i = 1 To 6
naming = "Sheet" & i
MsgBox naming.Cells(1, 2).Value
Next i
but that gives an object required error.
View 2 Replies
View Related
Apr 14, 2009
I have a table
item_desc
a
b
c
a
b
c
a
b
c
As you can see, a,b and c is repeated times.
How do you make it so that it would look like
item_desc
a
b
c
item_desc2
a
b
c
item_desc3
a
b
c
Is there a shortcut in doing this instead of copy pasting it?
I have a record just like this with about 572+ rows and 13 repeating items with that 13 items having their own column so copy pasting is really a tedious task. Kindly please help me solve this?
View 14 Replies
View Related
Aug 23, 2013
I'm making a task sheet for my employees and would like them to see the option in the ribbon automatically that allows you to add a picture. I have made my custom ribbon with the "picture" command right under the Home tab. I want to email my workbook as an attachment to my employees and have that picture button right there in their ribbon when they open up the attachment. Is this possible?
View 3 Replies
View Related
Jan 21, 2010
I have created a custom submenu in Excel that uses the "SheetBeforeRightClick" event in the "ThisWorkbook" object to initialize. In the custom submenu, I want to use one of the choices to load a form that I have created. I am trying to do this directly when selecting the submenu entry, by using "MyForm.Show", but this doesn't work. As a workaround I use an intermediary subroutine, "Sub Load_MyForm" where I put the same command, and then it works! Anyone who knows how to load the form directly from the submenu click event without going through an intermediary subroutine?
The workaround (which works) in "ThisWorkbook":
View 9 Replies
View Related
Feb 17, 2012
I have been using a scroll bar in my project to select a value from 0 - 3
Is it possible to have a customised slider (whether a form control or something created from scratch) whereby the numbers 0 1 2 3 are displayed in a grey, red, yellow and green box respectively adjacent to eachother and a slider can be moved over the top to select a value?
View 7 Replies
View Related
Apr 1, 2008
I have a workbook.
I would like to automate with code the process of extracting one worksheet from that workbook, and saving it as a separate workbook, with a file name equal to the text value of a cell (date formatted dd-mm-yy) from within that workbook. (ie d1="10/07/08" save file with one worksheet 10-07-08.xls)
View 9 Replies
View Related
Aug 30, 2006
I wrote my function as it is shown below:
Function MyFunction1(r, n, xrange, yrange)
If r <= n Then
For i = 1 To 5
MyFunction1 = MyFunction1 + xrange(i)
Next
Else
For i = 1 To 5
MyFunction1 = MyFunction1 + xrange(i) * yrange(i)
Next
End If
End Function
This is just a very basic idea of what I need to do, so it might not make sense why I am doing it, but I am just trying to test that the function works. Anyhow, the thing is that it works with something like this when I input it in a cell in a worksheet: =MyFunction1(RAND(),0.5,{5,6,7,8,9},{10,20,40,50,100})
However, if I try to define the range or set {5,6,7,8,9} with other cells, it does not work. so for example if I try the following:............
View 3 Replies
View Related
Apr 11, 2013
1.On Man' work sheet I Have a Project No (actual one is a big one) and project code,i have made the project code because it cannot be entered on the time sheet as the original project no is very big and i have legends,then Empl nos and OT Rates
Now on the time sheet if i enter the Project Code A to C it should be counted as "P" present for work, rest as usual.
2.On Summary' work sheet Columns D to J should calculate it automatically based on employee no or name and Project No.
View 6 Replies
View Related
Apr 25, 2013
I have created a spreadsheet that requires the buttons on a customised tab/ribbon in order to use it.
If this is on my machine where I have customised the ribbon it works fine. However I need to email this spreadsheet to another person - but wanted them also to have my customised ribbon. Is there anyway to do this - or would I have to go and customise their ribbon on their machine?
View 1 Replies
View Related
Jan 10, 2012
I'm trying to work with a user form with a customized SUM button.
What I want is that the user can select a range and then press SUM and it will sum (and store) the range and then the user can click another button to place the sum in any other cell.
Here is the code I have on the SUM button but it fails
Code:
Private Sub CommandButton1_Click()
MsgBox (Application.Sum(ActiveWorkbook.ActiveSheet.Selected))
End Sub
I'm using a userform1.show vbmodeless so the user can click off the form. I tested it being able to work cross workbooks and sheets and I could see where it was returning the activeworkbook/worksheet but I don't understand the range/selected part.
Excel 2007
View 6 Replies
View Related
Sep 20, 2013
I have a sheet where some data is entered in A1 to C1 and i use concatenate to string them together. The problem is in cell C1, where I used cell format to customize the number of zeros in front of the number.
EG:
A1: Photos
B1: 2013
C1: 00001
the concatenate result is Photos2013\1, instead of the desired result of Photos2013\0001.
View 3 Replies
View Related
Aug 16, 2013
I'm using the following code to create a customized userform, and it works perfectly on my computer, as I've enabled all macro settings.
Code:
Function GetOption(OpArray, Default, Title)
Dim TempForm 'As VBComponent
Dim NewCheckBox As MSForms.CheckBox
Dim NewLabel As MSForms.Label
Dim NewCommandButton1 As MSForms.CommandButton
[Code] .......
However when my coworkers need to use the code it creates an error, as the VBA project is unsafe.
Now my question is, can you write some code that enables all macro settings temporarily, in such a way that my coworkers can use this code?
View 4 Replies
View Related
Jul 4, 2008
My company uses a customized accumulative code week system, as in the year 2000 to today is about 442 weeks with the year 2008 starting around week 416.
Here is how my formula works(or how I would like it to work), if the date (in cell F8) is blank, nothing is displayed, if there is a date (format 2008-07-03) and it falls within 2008, WEEKNUM+416(416 is a fixed reference in J4), if the date falls within 2009, WEEKNUM+416(J4)+52, if the date falls within 2010, WEEKNUM+416(J4)+104. I only need it to go from 2008 to 2010.
This way J4 is a fixed code week reference where 416 is added to each week number, but it does not work for years 2009 and 2010 as it does not add the weeks from the starting reference.
Here is a copy of my formulas:
=IF(AND(F8)=0,""*(IF(AND(F8)
View 9 Replies
View Related