As someone new to VBA, the biggest struggle when asking for help is terminology 
and communication.
 
YOU know what you see on the screen, but when you post a question, the people 
reading cannot see what you see.
 
First, some terminology and "structure":
Keep in mind that this description is more of a "lay" description, rather than 
pure "geek speak", and therefore, may not be 100% technologically accurate, but 
more of a practical description of concept!!!
 
An Excel file is called a Workbook.
a SHEET (or tab) in an excel file is called a WorkSheet.
Worksheets have "properties".
all of the worksheets together are called a Sheets "collection".
 
 
On the VB editor screen (sometimes called VBE)
You SHOULD have, on the left side, a VB Project Panel.
In a brand new workbook, this panel will have a folder called "Microsoft Excel 
Objects"
 
This is a list of the different type of VBA code "modules".
 
within this folder is at a MINIMUM, one module which is usually labelled 
"Sheet1(Sheet1)"
What this is saying is that a worksheet called "Sheet1" is NAMED "Sheet1"
If you rename the tab/worksheet in Excel to something like "Data",
you'll see this entry changed to:
Sheet1(Data)
These are specific types of modules called "Sheet Modules"
code written in these modules are specific to the sheet and are not shared 
between sheets.
There are some special rules that apply to code in these modules.
In some cases, code written in a Sheet module cannot modify properties of the 
entire workbook.
 
 
The last entry in this section is called "ThisWorkbook"
This is a special type of Module that handles code that applies to the entire 
workbook, not specific WorkSheets.
 
If you right-click in this area and select Insert->Module,
the panel will show a new folder called "Modules"
and the new module created will be called "Module1"
(which can be changed in a "Properties" window)
This is referred to as a "Standard" code module.
This type of module can be used for code that applies to all sheets in the 
workbook, as well as the workbook itself.
 
Some macros (called Subroutines or Functions) can be called on at any time.
 
Others run "automatically" when an "Event" takes place.
These are called, curiously enough, "Event Macros".
 
Now, you can "open" a workbook, but you "activate" a workSHEET.
Therefore, the "open" event for a workbook is called "Workbook_Open"
and MUST be placed in the ThisWorkBook module!
(since it applies to the workbook itself, not an individual sheet)
 
Now, if you want something to happen every time you activate a specific 
workSHEET:
like, clear previous filters, select cell A1, etc,
these apply to a specific sheet, so in THAT SHEET MODULE,
you'd create a Worksheet_Activate subroutine.
 
 
Now, if you wanted to do this for ALL sheets (or most), instead of copying a 
Worksheet_Activate macro to every sheet, you can create a 
Workbook_SheetActivate event macro in the Thisworkbook module. 
-------------------
So.. the answer to one of your statements/questions regarding a Workbook_Open 
macro not running is probably because this event ONLY runs if it is placed in 
the Thisworkbook module.
 
-------------------------
 
The Operating System (Windows, MAC, Unix) has a system for storing files.
Hence, when dealing with files, Microsoft (and VBA) utilizes a "FileSystem" 
object.
 
I usually create a variable fso (File System Object)
and set it to be defined as a File System Object:
 
Set fso = CreateObject("Scripting.FileSystemObject")
 
Using this, I can check to see if a folder exists:
if (fso.folderexists(foldername))
or if a file exists:
if (fso.fileexists(fullfilename))
 
if the file or folder exists, then I can use methods like:
 
fso.getfolder()
fso.getfile()
 
to get the attibutes and properties of the file or folder.
 
you have a function:
Public Function FileFolderExists(strFullPath As String) As Boolean
   'Author       : Usman Tariq
   'Macro Purpose: Check if a file or folder exists
    On Error GoTo EarlyExit
    If Not Dir(strFullPath, vbDirectory) = vbNullString Then FileFolderExists = 
True
EarlyExit:
    On Error GoTo 0
End Function
 
Normally a function stored in a "standard" module is only available to other 
macros within the module.
By placing the "Public" at the beginning, you're instructing the compiler to 
make this available to all modules.
 
This macro utilizes a Dir() function.
Basically, the Wizards of Microsoft wrote a function (much like your own) that 
accepts a filename and attribute and returns a filename.
 
The Dir() function can be used to loop through the files in a folder that match 
specific criteria (like checking all files ending in .xls)
but it doesn't have the capability to check dates.
 
To compare dates, you'd need to use the filesytem object.
 
in your case, I'd probably do something like:
 
Public Function FileFolderExists(strFullPath As String) As Boolean
    Dim fso, f
    Set fso = CreateObject("Scripting.FileSystemObject")
    On Error GoTo EarlyExit
    FileFolderExists = False
    If Not Dir(strFullPath, vbDirectory) = vbNullString Then
        Set f = fso.getfile(strFullPath)
        If (DateDiff("d", f.datelastmodified, Now()) = 0) Then
            FileFolderExists = True
        End If
    End If
EarlyExit:
     On Error GoTo 0
End Function
 
----------------------------------------------------------
I know, this explanation is long.
But I wasn't doing much else on my lunch break!
 
let me know if you have any questions.

Paul
-----------------------------------------
“Do all the good you can,
By all the means you can,
In all the ways you can,
In all the places you can,
At all the times you can,
To all the people you can,
As long as ever you can.” - John Wesley
-----------------------------------------

 From: USMAN TARIQ <usman.tariq1...@gmail.com>
>To: excel-macros@googlegroups.com 
>Sent: Wednesday, November 19, 2014 11:19 AM
>Subject: Re: $$Excel-Macros$$ Error in VBA
>  
>
>
>i apologize for confusion, actually i am new to VBA . So here is the final 
>thing i want 
>
>
>i have 2 VBA code in two separate sheets , and then i have placed the 
>declaration of the function (Private Sub TestFileExistence()) in the Module . 
>this function is being used in the two VBA.
>what this code is doing is looking for files name and putting the X mark in 
>the sheet
>
>
>Now there are these files that land in a folder everyday , and are Replaced by 
>new Files . Lets say we have a Report A that delivered yesterday , and today 
>we didnt get the today file, means we have the old yesterday , i want to show 
>empty if the new today file is not there . But if the file in the folder is of 
>Today then show the X mark 
>
>
>attached is the screen shot 
>
>
>you have advised me to use some code using Modified date , dont know where to 
>put that code .
>
>
>
>
>Fillowing is the code in the Module 
>
>
>
>
>Public Function FileFolderExists(strFullPath As String) As Boolean
>'Author       : Usman Tariq
>'Macro Purpose: Check if a file or folder exists
>    On Error GoTo EarlyExit
>    If Not Dir(strFullPath, vbDirectory) = vbNullString Then FileFolderExists 
> = True
>    
>EarlyExit:
>    On Error GoTo 0
>End Function
>
>
>
>
>
>
>On Wed, Nov 19, 2014 at 11:00 AM, Paul Schreiner <schreiner_p...@att.net> 
>wrote:
>
>What is not working?
>>Does it give an error?
>>
>>You've got several things in this email.
>>which are you referring to? 
>>
>>You said:
>>i want i have 2 sheets in my work book, want to use the Private Sub 
>>Workbook_Open() , its not working for me :(
>> 
>>the number of sheets has absolutely nothing to do with creating a 
>>Workbook_Open event macro.
>>Unless you're trying to put the macro in a Sheet module instead of the 
>>ThisWorkbook module.
>>
>>please provide more information for what is happening (or not happening) and 
>>what you WANT to happen.
>>
>>Paul
>>-----------------------------------------
>>“Do all the good you can,
>>By all the means you
 can,
>>In all the ways you can,
>>In all the places you can,
>>At all the times you can,
>>To all the people you can,
>>As long as ever you can.” - John Wesley
>>-----------------------------------------
>>
>>
>> From: USMAN TARIQ <usman.tariq1...@gmail.com>
>>>To: excel-macros@googlegroups.com 
>>>Sent: Wednesday, November 19, 2014 10:39 AM
>>>Subject: Re: $$Excel-Macros$$ Error in VBA
>>>  
>>>
>>>
>>>please advise 
>>>
>>>
>>>On Tue, Nov 18, 2014 at 12:50 PM, USMAN TARIQ <usman.tariq1...@gmail.com> 
>>>wrote:
>>>
>>>Following is not woreking 
>>>>
>>>>
>>>>
>>>>
>>>>PrivateSubWorkbook_Open()Dimws AsWorksheet ForEachws 
>>>>InThisWorkbook.Worksheets Withws .EnableOutlining =True.Protect 
>>>>UserInterfaceOnly:=True,AllowFiltering:=True,_ 
>>>>AllowFormattingColumns:=True,AllowInsertingRows:=TrueEndWithNextEndSub
>>>>
>>>>
>>>>On Tue, Nov 18, 2014 at 12:46 PM, USMAN TARIQ <usman.tariq1...@gmail.com> 
>>>>wrote:
>>>>
>>>>also i want i have 2 sheets in my work book, want to use the Private Sub 
>>>>Workbook_Open() , its not working for me :(
>>>>>
>>>>>
>>>>>On Tue, Nov 18, 2014 at 11:20 AM, USMAN TARIQ <usman.tariq1...@gmail.com> 
>>>>>wrote:
>>>>>
>>>>>is the following fine ?
>>>>>>
>>>>>>
>>>>>>Public Function FileFolderExists(strFullPath As String) As Boolean
>>>>>>'Author       : Usman Tariq
>>>>>>'Macro Purpose: Check if a file or folder exists
>>>>>>    On Error GoTo EarlyExit
>>>>>>    If Not Dir(strFullPath, vbDirectory) = vbNullString Then 
>>>>>> FileFolderExists = TrueAnd (DateDiff("d", f.datelastmodified, Now()) = 0)
>>>>>>    
>>>>>>    
>>>>>>EarlyExit:
>>>>>>    On Error GoTo 0
>>>>>>End Function
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>On Tue, Nov 18, 2014 at 11:18 AM, USMAN TARIQ <usman.tariq1...@gmail.com> 
>>>>>>wrote:
>>>>>>
>>>>>>following is the code in the Module 
>>>>>>>
>>>>>>>
>>>>>>>Public Function FileFolderExists(strFullPath As String) As Boolean
>>>>>>>'Author       : Usman Tariq
>>>>>>>'Macro Purpose: Check if a file or folder exists
>>>>>>>    On Error GoTo EarlyExit
>>>>>>>    If Not Dir(strFullPath, vbDirectory) = vbNullString Then 
>>>>>>> FileFolderExists = True
>>>>>>>    
>>>>>>>EarlyExit:
>>>>>>>    On Error GoTo 0
>>>>>>>End Function
>>>>>>>
>>>>>>>
>>>>>>>Please advise where to put if (datediff("d",f.datelastmodified,now()) = 
>>>>>>>0) then
>>>>>>>
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>>
>>>-- 
>>>Are you =EXP(E:RT) or =NOT(EXP(E:RT)) in Excel? And do you wanna be? It’s 
>>>=TIME(2,DO:IT,N:OW) ! Join official Facebook page of this forum @ 
>>>https://www.facebook.com/discussexcel
>>> 
>>>FORUM RULES
>>> 
>>>1) Use concise, accurate thread titles. Poor thread titles, like Please 
>>>Help, Urgent, Need Help, Formula Problem, Code Problem, and Need Advice will 
>>>not get quick attention or may not be answered.
>>>2) Don't post a question in the thread of another member.
>>>3) Don't post questions regarding breaking or bypassing any security measure.
>>>4) Acknowledge the responses you receive, good or bad.
>>>5) Jobs posting is not allowed.
>>>6) Sharing copyrighted material and their links is not allowed.
>>> 
>>>NOTE  : Don't ever post confidential data in a workbook. Forum owners and 
>>>members are not responsible for any loss.
>>>--- 
>>>You received this message because you are subscribed to the Google Groups 
>>>"MS EXCEL AND VBA MACROS" group.
>>>To unsubscribe from this group and stop receiving emails from it, send an 
>>>email to excel-macros+unsubscr...@googlegroups.com.
>>>To post to this group, send email to excel-macros@googlegroups.com.
>>>Visit this group at http://groups.google.com/group/excel-macros.
>>>For more options, visit https://groups.google.com/d/optout.
>>>
>>>
>>>    
>>-- 
>>Are you =EXP(E:RT) or =NOT(EXP(E:RT)) in Excel? And do you wanna be? It’s 
>>=TIME(2,DO:IT,N:OW) ! Join official Facebook page of this forum @ 
>>https://www.facebook.com/discussexcel
>> 
>>FORUM RULES
>> 
>>1) Use concise, accurate thread titles. Poor thread titles, like Please Help, 
>>Urgent, Need Help, Formula Problem, Code Problem, and Need Advice will not 
>>get quick attention or may not be answered.
>>2) Don't post a question in the thread of another member.
>>3) Don't post questions regarding breaking or bypassing any security measure.
>>4) Acknowledge the responses you receive, good or bad.
>>5) Jobs posting is not allowed.
>>6) Sharing copyrighted material and their links is not allowed.
>> 
>>NOTE  : Don't ever post confidential data in a workbook. Forum owners and 
>>members are not responsible for any loss.
>>--- 
>>You received this message because you are subscribed to a topic in the Google 
>>Groups "MS EXCEL AND VBA MACROS" group.
>>To unsubscribe from this topic, visit 
>>https://groups.google.com/d/topic/excel-macros/flur73p1oBA/unsubscribe.
>>To unsubscribe from this group and all its topics, send an email to 
>>excel-macros+unsubscr...@googlegroups.com.
>>
>>To post to this group, send email to excel-macros@googlegroups.com.
>>Visit this group at http://groups.google.com/group/excel-macros.
>>For more options, visit https://groups.google.com/d/optout.
>>
>
>
>-- 
>Are you =EXP(E:RT) or =NOT(EXP(E:RT)) in Excel? And do you wanna be? It’s 
>=TIME(2,DO:IT,N:OW) ! Join official Facebook page of this forum @ 
>https://www.facebook.com/discussexcel
> 
>FORUM RULES
> 
>1) Use concise, accurate thread titles. Poor thread titles, like Please Help, 
>Urgent, Need Help, Formula Problem, Code Problem, and Need Advice will not get 
>quick attention or may not be answered.
>2) Don't post a question in the thread of another member.
>3) Don't post questions regarding breaking or bypassing any security measure.
>4) Acknowledge the responses you receive, good or bad.
>5) Jobs posting is not allowed.
>6) Sharing copyrighted material and their links is not allowed.
> 
>NOTE  : Don't ever post confidential data in a workbook. Forum owners and 
>members are not responsible for any loss.
>--- 
>You received this message because you are subscribed to the Google Groups "MS 
>EXCEL AND VBA MACROS" group.
>To unsubscribe from this group and stop receiving emails from it, send an 
>email to excel-macros+unsubscr...@googlegroups.com.
>To post to this group, send email to excel-macros@googlegroups.com.
>Visit this group at http://groups.google.com/group/excel-macros.
>For more options, visit https://groups.google.com/d/optout.
>
>
>    

-- 
Are you =EXP(E:RT) or =NOT(EXP(E:RT)) in Excel? And do you wanna be? It’s 
=TIME(2,DO:IT,N:OW) ! Join official Facebook page of this forum @ 
https://www.facebook.com/discussexcel

FORUM RULES

1) Use concise, accurate thread titles. Poor thread titles, like Please Help, 
Urgent, Need Help, Formula Problem, Code Problem, and Need Advice will not get 
quick attention or may not be answered.
2) Don't post a question in the thread of another member.
3) Don't post questions regarding breaking or bypassing any security measure.
4) Acknowledge the responses you receive, good or bad.
5) Jobs posting is not allowed.
6) Sharing copyrighted material and their links is not allowed.

NOTE  : Don't ever post confidential data in a workbook. Forum owners and 
members are not responsible for any loss.
--- 
You received this message because you are subscribed to the Google Groups "MS 
EXCEL AND VBA MACROS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to excel-macros+unsubscr...@googlegroups.com.
To post to this group, send email to excel-macros@googlegroups.com.
Visit this group at http://groups.google.com/group/excel-macros.
For more options, visit https://groups.google.com/d/optout.

Reply via email to