Access Public Constant From Another Workbook's Vba
Jul 31, 2008how I can refer to a public constant in a different workbook's (which is already open) VBA from the workbook which I am currently working on's VBA?
View 9 Replieshow I can refer to a public constant in a different workbook's (which is already open) VBA from the workbook which I am currently working on's VBA?
View 9 RepliesI have a userForm (Form1) that contains a persons name that I would like to reference in a separate UserForm (Form2). In the separate UserForm (Form2) I need to reference this persons name many times, so I was wondering if there was a was to declare this name in the separate UserForm (Form2) as a constant. Only thing is that a constant, to the best of my knowledge, must be an expression and not a variable. Mainly, I'm trying to avoid declaring the myName variable in each Sub within Form2, which it will be needed for a ton of Sub's.
Code for Form2: Const myName As String = Form1.txtName.Value
I am trying to bring up a form after clicking the "ok" button on another form. Both forms are defined in my public sub, so basically, the module creates both forms, calls the first form, and hides the second form. Then the first form hides itself and shows the second form. However, when second form is defined using "dim", the first form can't find it to show it, and when I make the second form "public" in my public sub, I get the error that it is an invalid attribute or function.
Here is the code from my sub that applies to this error:
Code:
Public Sub PutInEngine()
Dim InputForm As New FrmInputs
InputForm.Show
[Code].....
While in a workbook called "Main_Workbook.xls", I use a sub to open another workbook called "SecondWorbook.xls". Here's the code to do that:
Sub OpenWorkbook()
ExcelFile = Application. GetOpenFilename(FileFilter:="Microsoft Excel
Files(*.xls),*.xls", Title:="Choose an Excel file To open...")
Workbooks.Open FileName:=ExcelFile
End Sub
This works fine. When you view the workbooks in the Project Explorer you will see:
VBAProject(Main_Workbook.xls)
Module1
Sheet1(ABC)
Sheet2(Sheet2)
Sheet3(Sheet3)
ThisWorkbook
VBAProject(SecondWorkbook.xls)............
I need to know that how can we share excel workbook. Is it possible over LAN? Also how many users can access the shared workbook. If 50 users are accessing shared workbook and each one working on different workbook. Is this scenario feasible? Will there be any issue if 50 users working on 50 different worksheets of same workbook?
View 2 Replies View RelatedI have a problem with the Excel UserName & opening of a second xls File. Info:
The first file macro, looks as to the Excel UserName, and sets which worksheets from a second file in the network the person can see. then changes the Excel UserName to "helpdl", this is done because only 4 people have access to the Workbook on a network drive, see Code below (only the interesting part of the macro)
'Set the Excel UserName to "helpdl"
'(from Sub Change_UserName)
MyName = Application.UserName
OName = MyName
NewName = "HelpDL"
UserName = NewName
'Set the name of the Active File To "Slave"
Set wbSlave = ActiveWorkbook
'Open the Master from the Network (Wiesbaden server sv030100)
Workbooks.Open "\sv030100GruppenDL60116_MEWA Car Policy_Neukonzeption.xls"
'Set the name of the Active File to "Master"
Set wbMaster = ActiveWorkbook...........................
I wish to send a workbook but need to ensure that this workbook stays on the computer it is destined for. I understand that for ultimate security excel may not be the best option, however im using excel and with that need to look at the best options available to me.
My thoughts were along the lines of sending a simple application for better words in excel, and having the user fill in a few details, this would trigger a events macro recording A the machine id ( which i have forgotten how to do any any help would be great with that ) or B the user ID to a hidden cell, then on receiving this back be able to use that as a key in the application before sending it out.
Then if the user was to pass this to another person it would not work as the code would not match. Does this seem like a best approach or is there a better way that a similar effect could be had?
I have a workbook which will open another workbook on a server, but i see it on the open and close on the task bar. Because I have 4 pc's with the main workbook open as single applications and one book on the server which collects info everytime a button is pressed, I would like it not to show on the on the task bar, needs to be invisable, is there any way of this?
Also
Can i see if a workbook is open, regardless of which PC (out of 4), which may not be the one i am using. So a way to see if a workbook is open anywhere else?
I have created a workbook which both imports data from an access database and exports data to same. Some of the data I need to access is dependent on parameters which the user will change in excel e.g. I need to extract PeriodID (ID for a month end date) based on a date in a speified cell in excel.
MS Query is a very handy way to achieve this as the wizards automate almost everything. However, this workbook will be shared on a common drive on a server (as will the database). Initial testing suggests that the connection and queries I'm making on my machine do not work on other people's machines.
What is the best way to achieve the queries in excel which query data from an Access Database, but will work on all machines accessing the sheet from a shared drive? Is there any way I can avoid writing complex VBA code for this? I have an awful lot of specific queries like the one I mentioned above to perform.
I have two workbooks wkA and wkB. I have a named range in wkB called BName.. can someone tell me whether it is possible to set a range variable (say, raA) from wkA to this named range in wkB. I have tried something to the effect of set raA = wkB.range("BName") but this doesn't work.. I've also tried set raA = [wkB.name].range("BName") to no avail. I'm wondering whether named ranges can actually be read from other workbooks.
View 4 Replies View RelatedI want to write some code that runs everytime the workbook is initialized. I found out that the code should be placed in the following "Private Sub":
Private Sub Workbook_Open()
'My code
End Sub
I know that this code should be placed in the Private Module of the Workbook! I just can not find where is the Private Module of the Workbook in Excel 2007... =/
Using Microsoft ® Office Excel 2003 (11.8220.8221) SP3, I started with a sheet, Sheet7, that pulled the first non-blank error message found in a common cell (i.e., A7) in Sheet3.1, Sheet3.2, ... , Sheet3.15, Sheet3.16. All of these sheets resided in a single workbook, and worked correctly using the following VBA code snippet:
View 5 Replies View RelatedI would like to know how to migrate an Access database to a spreadsheet, I do not mean Exporting.
More specifically, the migration is conditional. The spreadsheet only needs a few fields from specific tables in the database. It is basically a data dump, however, the magnitude of the amount of information that I will be handling will be far too time consuming and not within the scope of the budget to do this all by-- Exporting-->Copy-->Paste method.
Also, changes often need to be made "The night before..." so the macro will need to be able to ran possibly a number of times to update the additional data or changes in data.
In my research I have found a few snipets of VBA code from the MSDN website as well as some other websites, however none of it seems to be consistent with one another and ultimately results in it not working.
Is this possible?
For my project , I am using Excel as a frontend and Access as a backend. Now, I want to write the code in workbook_Open event that will copy data in Column L,M,N,O from Access table. The query should select data from Access table where Date=Todays Date. All the Queue Names and corresponding Queue Numbers are stored in Sheet2 of the attached workbook. In Access table , there are three fields named as Type,Type1,Type2 which make up Queue numbers.
In Sheet1 , There are Queue Names and we have to store Total Batches,Totl Envelopes,total Documents and total Pages for the corresponding Queue Names in Sheet1. SO for this we need to check the Queue Numbers of the Queue names in SHeet2 but in table Queue Numbers are equal to Type & Type1 & Type2.
See attached workbook : WBExcel.xls‎
I am Generating Excel file with Macro using my asp.net (c#) application.
I am able to generate Excel file in development environment, but in Production it gives following error:
"Programmatic access to Visual Basic Project is not trusted Line: Microsoft Office Excel"
I did googling a bit and found that I have to open Excel file physically make few security related changes in macro as below.
1. Open the Office application in question. On the Tools menu, click Macro, and then click Security to open the Macro Security dialog box.
2. On the Trusted Sources tab, click to select the Trust access to Visual Basic Project check box to turn on access.
3. Click OK to apply the setting. You may need to restart the application for the code to run properly if you automate from a Component Object Model (COM) add-in or template.
Can i do above changes at runtime (using some code)?
I have an Excel file ( named "Classes.xsl"), that has a worksheet (named "RawData") that is layed out something like:
Name Dept Class
John 0547 Class 1
Jane 0368 Class 1
Jim 0368 Class 2
Sue 1235 Class 2
I am trying to get an Access-Like report without utilizing Access. Is there a way to generate a report similar to below using Excel as the data source (could be mail merge, perhaps a macro with a printout) I am not sure which way to try and was hoping someone could point me in the right direction...and possibly provide an example.
Class EnrollmentClass 1John 0547
Jane 0368Class 2Jim 0368
Sue 1235
Setting the Public Statement does not work. These are my codes:
Option Explicit
Public Ankis_makro As Boolean
Sub Makro2_Ankis_veckor()
On Error Resume Next
Application. ScreenUpdating = False
Sheets("Listan").Activate
Selection. AutoFilter Field:=1
Selection.AutoFilter Field:=2
Selection.AutoFilter Field:=3
Selection.AutoFilter Field:=4
Selection.AutoFilter Field:=5
Selection.AutoFilter Field:=6
Selection.AutoFilter Field:=7
Selection.AutoFilter Field:=8
Selection.AutoFilter Field:=9
Range(Range("J2"), Range("I65536").End(xlUp).Offset(0, 1)).FormulaR1C1 = "=TEXT(RC[-9],""ÅÅÅÅ"")" ...................
What ever I do I can't get the Ankis_makro set to True.
Is it possible to use a contstant array in Excel VBA? I have tried several differnt ways to declare it, but the VBA editor keeps yelling at me. The following did not work:
View 2 Replies View Relatedi have problem with a long code.
So I divided that code in 4 parts.
So I have
module1 -> Sub Macro1()
module2 -> Sub Macro2()
module3 -> Sub Macro3()
module4 -> Sub Macro4()
I have declared
Option Explicit
Dim mdNextTime1 As Double
Dim myEnter As Integer
'Dim myK1 As Integer
'Dim myK2 As Integer
'Dim myK3 As Integer
Dim myK4 As Integer
Const myC As Integer = 82
Dim Lastrow As Integer
Dim myActualRow As Integer
all my sub have the following structure:
what does the symbol # means in VBA? (but I couldn't put the # in the subject of my message )
I'm trying to understand someone's code... at some point he wrote:
sum_LU_Area = 0#
I thought that the # was used to declare a constant but I'm not too sure because in his code earlier he declared
Public sum_LU_Area As Double
Beside, sum_LU_Area is calculated somewhere further in the program.
I am trying to declare a public (or global) array and it's values so I don't have to keep dimensioning it for each function I create.
I was trying things such as:
Public whatever(10) as string
whatever(0) = "something"
whatever(1) = "somethin else"
....
And tried creating an initialize macro in "ThisWorkbook".
I have declared one variable outside of Sub. And in a Sub I gave it a value. Then I run a macro, which should take that value and print it to the cell. However, it is printing a blank cell, not even "0" (I run a macro and anything in that cell is removed).
[Code].....
and then my macro:
[Code]......
How to make so macro see my variable declared outside of this macro?
I am using a set of arrays in a module. The arryas are set as public as the module that loads the data is called many times from diffrent other modules that then use the data.
How so I reset the array at the start of the module so each level is "Empty"
so new data can be loaded with no data left over from the last time the array was used.
I'm using a public declaration for a worksheet but I seem to have to initialize it in each routine. Is there a way to set it and leave it? So in a module I have:
View 4 Replies View RelatedI have a combo box which is on a worksheet and it's always active/visible. I need to pass on the selection data to another project. I thought I had successfully converted it to a public variable but it doesn't work.
I've indicated that the Tr variable is public and it does populate with the results of the case select but to no avail.
What do I have to do?
Public Tr As String
Public Sub ComboBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim a As String
Select Case ComboBox1.Value
Case "NYF PT"
[Code] .........
I am trying to use a public variable but it is not holding the value when I call another sub.
Here is basically what I have:
Public AcctName as Long
Sub Statments()
There is much more code in here but it is not relevent
AcctName = an account name lets say "frank"
If X XX then
Call Title
End If
End Sub
It then goes to the title sub and executes the code however it is supposed to write out the value held in acctname but it comes up blank instead of as Frank which is the value it held when it left the statments sub. I am new to this public thing and need any help I can get.
Just a note: the spelling is correct and the variable does hold the correct value before title sub is called.
I have a number of userforms that all reference the same worksheet. I wanted to create a public variable for that worksheet so I don't have to keep referencing it in each userform/commandbuttons etc. So I inserted a module and placed this declaration.
Option Explicit
Public MySh As Worksheet
Set MySh = ActiveWorkbook.Sheets("sheetName")
And I referenced it in a UserForm commandbutton
Private Sub CommandButton2_Click()
MySh.Range("i4") = Me.ComboBox1
MySh.Range("i5") = Me.TextBox1
End Sub
I have a VBA application that uses data from a sheet in the excel workbook. It accesses this data with an ADO connection. On workbook open I open this connection--I declare it as public variable so I can continue to use it throughout the session. My problem is that the connection really doesn't ever dissappear. I have the problem that once I close the workbook, the project still exists in the VB Editor. How do I get rid of the connection? I am stuck because I declared it as public? I want to keep it open, rather than opening every time I want to use it, because it is faster to keep the connection open.
My code is below.
Option Explicit 'requires variable declaration
'declare global connection
Public cn As ADODB.Connection
Sub OpenDBConnection()
'open db connection
'this happens on workbook open
If cn Is Nothing Then
Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & WCHSBook.FullName & ";" & _
"Extended Properties=""Excel 8.0;HDR=Yes;"""
.Open
End With
End If
End Sub
I've recently been experiencing some strange phenomena in relation to public variables. It seems that if I run separate routines in quick enough succession (e.g. press a button twice within a couple of seconds), the memory of the public variable "hangs over" into the second routine.
The routines, however, are completely separate events. And I'm not using userforms or anything like that in order to keep VBA running in the background. In which case it seems that Public variables don't always get set to nothing with the end of the final sub in a routine. Has anyone else experienced anything like this? I was under the impression only Static variables could do this.
explain the difference between declaring a variable as global or as public. Aren't they both available to the entire project including forms?
View 9 Replies View Related