View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
RB Smissaert RB Smissaert is offline
external usenet poster
 
Posts: 2,452
Default Code to list concurrently open workbooks

Forgot to post the FileFromPath function:

Function FileFromPath(ByVal strFullPath As String, _
Optional bExtensionOff As Boolean) As String

Dim FPL As Long 'len of full path
Dim PLS As Long 'position of last slash
Dim pd As Long 'position of dot before exension
Dim strFile As String

On Error GoTo ERROROUT

FPL = Len(strFullPath)
PLS = InStrRev(strFullPath, "\", , vbBinaryCompare)
strFile = Right$(strFullPath, FPL - PLS)

If bExtensionOff = False Then
FileFromPath = strFile
Else
pd = InStr(1, strFile, ".", vbBinaryCompare)
FileFromPath = Left$(strFile, pd - 1)
End If

Exit Function
ERROROUT:

End Function


RBS


"RB Smissaert" wrote in message
...
The posted code will miss out on add-ins that are open, but not loaded as
an add-in.
This code will correct that:

Sub test2()

Dim i As Long
Dim oProject
Dim oWB As Workbook
Dim collWorkbooks As Collection

Set collWorkbooks = New Collection

On Error Resume Next

For Each oProject In Application.VBE.VBProjects
collWorkbooks.Add FileFromPath(oProject.Filename, False), _
FileFromPath(oProject.Filename, False)
Next oProject

For Each oWB In Application.Workbooks
collWorkbooks.Add FileFromPath(oWB.Name, False), _
FileFromPath(oWB.Name, False)
Next oWB

For i = 1 To collWorkbooks.Count
MsgBox collWorkbooks(i)
Next i

End Sub


RBS


"DaveO" wrote in message
...
That's what I was looking for, thanks!