From: RyGuy on
This code used to work in my Word 2002; not working in 2007:
Sub Foo()
Dim i As Long
Application.ScreenUpdating = False
Documents.Add
With Application.FileSearch
'Search in foldername
..LookIn = "C:\Documents and Settings\Excel\Desktop\Word Files\"
..SearchSubFolders = False
..FileName = "*.doc"
..Execute
For i = 1 To .FoundFiles.Count
If InStr(.FoundFiles(i), "~") = 0 Then
Selection.InsertFile FileName:=(.FoundFiles(i)), _
ConfirmConversions:=False, Link:=False, Attachment:=False
Selection.InsertBreak Type:=wdPageBreak
End If
Next i
End With
End Sub

The error is: Run-Time error 5111
This command is not available on this platform.

This is the line that errors out:
With Application.FileSearch

From: Doug Robbins - Word MVP on
You will need to use the Dir$ method as done in the article
http://www.word.mvps.org/FAQs/MacrosVBA/InsertFileNames.htm

--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP, originally posted via msnews.microsoft.com

"RyGuy" <RyGuy(a)discussions.microsoft.com> wrote in message
news:6F9BF86D-CD9F-42F9-8EED-1C454890B73E(a)microsoft.com...
> This code used to work in my Word 2002; not working in 2007:
> Sub Foo()
> Dim i As Long
> Application.ScreenUpdating = False
> Documents.Add
> With Application.FileSearch
> 'Search in foldername
> .LookIn = "C:\Documents and Settings\Excel\Desktop\Word Files\"
> .SearchSubFolders = False
> .FileName = "*.doc"
> .Execute
> For i = 1 To .FoundFiles.Count
> If InStr(.FoundFiles(i), "~") = 0 Then
> Selection.InsertFile FileName:=(.FoundFiles(i)), _
> ConfirmConversions:=False, Link:=False, Attachment:=False
> Selection.InsertBreak Type:=wdPageBreak
> End If
> Next i
> End With
> End Sub
>
> The error is: Run-Time error 5111
> This command is not available on this platform.
>
> This is the line that errors out:
> With Application.FileSearch
>
From: ryguy7272 on
Thanks Doug. I tried the code below:

Sub Foo()
Dim i As Long
Application.ScreenUpdating = False
Documents.Add

With FileSystemObject
MyName = Dir$(MyPath & "*.*")

Do While MyName <> ""
.SearchSubFolders = False
.FileName = "*.doc"
.Execute
'Selection.InsertAfter MyName & vbCr
MyName = Dir
Loop

For i = 1 To .FoundFiles.Count
If InStr(.FoundFiles(i), "~") = 0 Then
Selection.InsertFile FileName:=(.FoundFiles(i)), _
ConfirmConversions:=False, Link:=False, Attachment:=False
Selection.InsertBreak Type:=wdPageBreak
End If
Next i

End With
End Sub

Now I getting a Run-Time Error 424
Object Required

Error occurs here:
..SearchSubFolders = False

Any thoughts on how to resolve this?

Thanks,
Ryan---

--
Ryan---
If this information was helpful, please indicate this by clicking ''Yes''.


"Doug Robbins - Word MVP" wrote:

> You will need to use the Dir$ method as done in the article
> http://www.word.mvps.org/FAQs/MacrosVBA/InsertFileNames.htm
>
> --
> Hope this helps.
>
> Please reply to the newsgroup unless you wish to avail yourself of my
> services on a paid consulting basis.
>
> Doug Robbins - Word MVP, originally posted via msnews.microsoft.com
>
> "RyGuy" <RyGuy(a)discussions.microsoft.com> wrote in message
> news:6F9BF86D-CD9F-42F9-8EED-1C454890B73E(a)microsoft.com...
> > This code used to work in my Word 2002; not working in 2007:
> > Sub Foo()
> > Dim i As Long
> > Application.ScreenUpdating = False
> > Documents.Add
> > With Application.FileSearch
> > 'Search in foldername
> > .LookIn = "C:\Documents and Settings\Excel\Desktop\Word Files\"
> > .SearchSubFolders = False
> > .FileName = "*.doc"
> > .Execute
> > For i = 1 To .FoundFiles.Count
> > If InStr(.FoundFiles(i), "~") = 0 Then
> > Selection.InsertFile FileName:=(.FoundFiles(i)), _
> > ConfirmConversions:=False, Link:=False, Attachment:=False
> > Selection.InsertBreak Type:=wdPageBreak
> > End If
> > Next i
> > End With
> > End Sub
> >
> > The error is: Run-Time error 5111
> > This command is not available on this platform.
> >
> > This is the line that errors out:
> > With Application.FileSearch
> >
From: Doug Robbins - Word MVP on
You have omitted an essential part of the code in the article to which I
referred you and you need to completely re-write your macro. At the moment,
it still includes inappropriate elements of your original attempt

Use:

Dim MyPath As String
Dim MyName As String

'let user select a path
With Dialogs(wdDialogCopyFile)
If .Display() <> -1 Then Exit Sub
MyPath = .Directory
End With

'strip quotation marks from path

If Len(MyPath) = 0 Then Exit Sub

If Asc(MyPath) = 34 Then
MyPath = Mid$(MyPath, 2, Len(MyPath) - 2)
End If

'get files from the selected path
'and insert them into the doc
MyName = Dir$(MyPath & "*.doc")
Do While MyName <> "" And InStr(MyName, "~") = 0
Selection.InsertFile FileName:=MyPath & MyName, _
ConfirmConversions:=False, Link:=False, Attachment:=False
Selection.InsertBreak Type:=wdPageBreak
MyName = Dir
Loop



--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP, originally posted via msnews.microsoft.com

"ryguy7272" <ryguy7272(a)discussions.microsoft.com> wrote in message
news:740D363B-6723-4C4A-BABF-F7B3E3C6F526(a)microsoft.com...
> Thanks Doug. I tried the code below:
>
> Sub Foo()
> Dim i As Long
> Application.ScreenUpdating = False
> Documents.Add
>
> With FileSystemObject
> MyName = Dir$(MyPath & "*.*")
>
> Do While MyName <> ""
> .SearchSubFolders = False
> .FileName = "*.doc"
> .Execute
> 'Selection.InsertAfter MyName & vbCr
> MyName = Dir
> Loop
>
> For i = 1 To .FoundFiles.Count
> If InStr(.FoundFiles(i), "~") = 0 Then
> Selection.InsertFile FileName:=(.FoundFiles(i)), _
> ConfirmConversions:=False, Link:=False, Attachment:=False
> Selection.InsertBreak Type:=wdPageBreak
> End If
> Next i
>
> End With
> End Sub
>
> Now I getting a Run-Time Error 424
> Object Required
>
> Error occurs here:
> .SearchSubFolders = False
>
> Any thoughts on how to resolve this?
>
> Thanks,
> Ryan---
>
> --
> Ryan---
> If this information was helpful, please indicate this by clicking ''Yes''.
>
>
> "Doug Robbins - Word MVP" wrote:
>
>> You will need to use the Dir$ method as done in the article
>> http://www.word.mvps.org/FAQs/MacrosVBA/InsertFileNames.htm
>>
>> --
>> Hope this helps.
>>
>> Please reply to the newsgroup unless you wish to avail yourself of my
>> services on a paid consulting basis.
>>
>> Doug Robbins - Word MVP, originally posted via msnews.microsoft.com
>>
>> "RyGuy" <RyGuy(a)discussions.microsoft.com> wrote in message
>> news:6F9BF86D-CD9F-42F9-8EED-1C454890B73E(a)microsoft.com...
>> > This code used to work in my Word 2002; not working in 2007:
>> > Sub Foo()
>> > Dim i As Long
>> > Application.ScreenUpdating = False
>> > Documents.Add
>> > With Application.FileSearch
>> > 'Search in foldername
>> > .LookIn = "C:\Documents and Settings\Excel\Desktop\Word Files\"
>> > .SearchSubFolders = False
>> > .FileName = "*.doc"
>> > .Execute
>> > For i = 1 To .FoundFiles.Count
>> > If InStr(.FoundFiles(i), "~") = 0 Then
>> > Selection.InsertFile FileName:=(.FoundFiles(i)), _
>> > ConfirmConversions:=False, Link:=False, Attachment:=False
>> > Selection.InsertBreak Type:=wdPageBreak
>> > End If
>> > Next i
>> > End With
>> > End Sub
>> >
>> > The error is: Run-Time error 5111
>> > This command is not available on this platform.
>> >
>> > This is the line that errors out:
>> > With Application.FileSearch
>> >
From: Jay Freedman on
Hi Ryan,

The Dir$ method works without any need for a FileSystemObject. Try
this version:

Sub Foo()
Dim i As Long
Dim MyName As String, MyPath As String
Application.ScreenUpdating = False
Documents.Add

MyPath = "C:\temp\" ' <= change this as necessary

MyName = Dir$(MyPath & "*.doc") ' not *.* if you just want doc files

Do While MyName <> ""
If InStr(MyName, "~") = 0 Then
Selection.InsertFile _
FileName:="""" & MyPath & MyName & """", _
ConfirmConversions:=False, Link:=False, _
Attachment:=False
Selection.InsertBreak Type:=wdPageBreak
End If

MyName = Dir ' gets the next doc file in the directory
Loop

End Sub


If you do want to use a FileSystemObject instead (*not* in addition),
then the first thing you need to do is (in the VBA editor) go to the
Tools > References dialog and put a check mark next to "Microsoft
Scripting Runtime". That's the library that contains the code for the
FileSystemObject. Then you need to learn how to use the FSO and its
methods properly. Here's the equivalent macro:

Sub Foo2()

' Uses File System Object
' Need to have reference to Microsoft Scripting Runtime

On Error GoTo Show_Err
Dim oFS As FileSystemObject
Dim MyName As String, MyPath As String
Dim MyFolder As Folder, MyFile As File

Application.ScreenUpdating = False
Documents.Add

Set oFS = New FileSystemObject
MyPath = "C:\temp\" ' <= change this as necessary

Set MyFolder = oFS.GetFolder(MyPath)
For Each MyFile In MyFolder.Files
If (InStr(MyFile.Name, ".doc") = Len(MyFile.Name) - 3) _
And (InStr(MyFile.Name, "~") = 0) Then
Selection.InsertFile _
FileName:="""" & MyPath & MyFile.Name & """", _
ConfirmConversions:=False, Link:=False, _
Attachment:=False
Selection.InsertBreak Type:=wdPageBreak
End If
Next

If Not oFS Is Nothing Then Set oFS = Nothing

Show_Err:

If Err <> 0 Then
MsgBox Err.Number & " - " & Err.Description
Err.Clear
End If
End Sub

--
Regards,
Jay Freedman
Microsoft Word MVP FAQ: http://word.mvps.org
Email cannot be acknowledged; please post all follow-ups to the
newsgroup so all may benefit.


On Sat, 27 Mar 2010 14:42:01 -0700, ryguy7272
<ryguy7272(a)discussions.microsoft.com> wrote:

>Thanks Doug. I tried the code below:
>
>Sub Foo()
>Dim i As Long
>Application.ScreenUpdating = False
>Documents.Add
>
>With FileSystemObject
>MyName = Dir$(MyPath & "*.*")
>
> Do While MyName <> ""
> .SearchSubFolders = False
> .FileName = "*.doc"
> .Execute
> 'Selection.InsertAfter MyName & vbCr
> MyName = Dir
> Loop
>
> For i = 1 To .FoundFiles.Count
> If InStr(.FoundFiles(i), "~") = 0 Then
> Selection.InsertFile FileName:=(.FoundFiles(i)), _
> ConfirmConversions:=False, Link:=False, Attachment:=False
> Selection.InsertBreak Type:=wdPageBreak
> End If
> Next i
>
>End With
>End Sub
>
>Now I getting a Run-Time Error 424
>Object Required
>
>Error occurs here:
>.SearchSubFolders = False
>
>Any thoughts on how to resolve this?
>
>Thanks,
>Ryan---
>
>--
>Ryan---
>If this information was helpful, please indicate this by clicking ''Yes''.
>
>
>"Doug Robbins - Word MVP" wrote:
>
>> You will need to use the Dir$ method as done in the article
>> http://www.word.mvps.org/FAQs/MacrosVBA/InsertFileNames.htm
>>
>> --
>> Hope this helps.
>>
>> Please reply to the newsgroup unless you wish to avail yourself of my
>> services on a paid consulting basis.
>>
>> Doug Robbins - Word MVP, originally posted via msnews.microsoft.com
>>
>> "RyGuy" <RyGuy(a)discussions.microsoft.com> wrote in message
>> news:6F9BF86D-CD9F-42F9-8EED-1C454890B73E(a)microsoft.com...
>> > This code used to work in my Word 2002; not working in 2007:
>> > Sub Foo()
>> > Dim i As Long
>> > Application.ScreenUpdating = False
>> > Documents.Add
>> > With Application.FileSearch
>> > 'Search in foldername
>> > .LookIn = "C:\Documents and Settings\Excel\Desktop\Word Files\"
>> > .SearchSubFolders = False
>> > .FileName = "*.doc"
>> > .Execute
>> > For i = 1 To .FoundFiles.Count
>> > If InStr(.FoundFiles(i), "~") = 0 Then
>> > Selection.InsertFile FileName:=(.FoundFiles(i)), _
>> > ConfirmConversions:=False, Link:=False, Attachment:=False
>> > Selection.InsertBreak Type:=wdPageBreak
>> > End If
>> > Next i
>> > End With
>> > End Sub
>> >
>> > The error is: Run-Time error 5111
>> > This command is not available on this platform.
>> >
>> > This is the line that errors out:
>> > With Application.FileSearch
>> >