• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

VBA help / macro werkt niet (meer)

Status
Niet open voor verdere reacties.

brandernl

Gebruiker
Lid geworden
19 okt 2004
Berichten
445
Ik heb een macro ooit eens van het web gehaald, die in een directory het eerste bestand opent en daar iets mee doet, het bestand sluit en het volgende opent enzovoorts tot hij alle bestanden gehad heeft.
Maar...............hij doet het niet meer en ik kom er niet uit waar de fout zit, graag jullie hulp

Sub OpenEveryDirFile()
++++++++++++++++++++++++++++
'met dank aan Steve Aprahamian
++++++++++++++++++++++++++++
Dim strPath As String
Dim lFile As Long
Dim wkb As Workbook
Dim Source As String


Application.ScreenUpdating = False
'zoek de juiste map op
strPath = Application.GetOpenFilename _
(Title:="Choose file in Folder to Document")
If strPath = "False" Then
MsgBox "Canceled by User"
Exit Sub
End If
Do Until Right(strPath, 1) = "\"
strPath = Mid(strPath, 1, Len(strPath) - 1)
Loop

With Application.FileSearch
.NewSearch
.LookIn = strPath
.SearchSubFolders = False
.MatchTextExactly = False
.FileType = msoFileTypeExcelWorkbooks
If .Execute() < 1 Then
MsgBox "There were no files found."
Exit Sub
End If

For lFile = 1 To .FoundFiles.Count
Set wkb = Workbooks.Open(FileName:=.FoundFiles(lFile), _
updatelinks:=False, ReadOnly:=True, _
IgnoreReadOnlyRecommended:=True)
' doe hier iets (een andere macro)
wkb.Close (False)
Next lFile
End With
Set wkb = Nothing
ActiveWorkbook.Close SaveChanges:=True
End Sub
 
Ik heb een klein stukje verander, waar de folder wordt geselcteerd. Bij mij werkt het prima zo:

Sub OpenEveryDirFile()
'++++++++++++++++++++++++++++
'met dank aan Helpmij.nl Excel forum
'++++++++++++++++++++++++++++
Dim strPath As String
Dim lFile As Long
Dim wkb As Workbook
Dim Source As String


Application.ScreenUpdating = False
'zoek de juiste map op
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = Application.DefaultFilePath & "\"
.Title = "Selecteer een folder"
.Show
If .SelectedItems.Count = 0 Then
MsgBox ("Ophalen download-bestand gecanceled")
Else
strPath = .SelectedItems(1)
End If
End With


With Application.FileSearch
.NewSearch
.LookIn = strPath
.SearchSubFolders = False
.MatchTextExactly = False
.FileType = msoFileTypeExcelWorkbooks
If .Execute() < 1 Then
MsgBox "There were no files found."
Exit Sub
End If

For lFile = 1 To .FoundFiles.Count
Set wkb = Workbooks.Open(Filename:=.FoundFiles(lFile), _
UpdateLinks:=False, ReadOnly:=True, _
IgnoreReadOnlyRecommended:=True)
' doe hier iets (een andere macro)
wkb.Close (False)
Next lFile
End With
Set wkb = Nothing
ActiveWorkbook.Close SaveChanges:=True
End Sub




Succes

John
 
John,
Bedankt voor je snelle reactie; ik ben inmiddels thuis, maar zal hem morgen proberen. Ik laat het nog weten.
btw leuke verandering in "met dank aan"
 
De macro van Bernard werkt bij mij wel, die van John niet. Deze loopt fout op filedialog. Vermoedelijk te oude (97) versie van Excel.
Zal die van John eens proberen in XP komend weekend.

Is in elk geval een zeer makkelijk tool bij upgradesessies om snel veel sheets aan te passen.
:thumb:
 
John,
De macro bliijft hangen bij de regel
"with application.filesearch"
met de melding
"methode FileSearch van object_Application is mislukt"

En de opmerking van Jan:
Ik ben inmiddels over van 97 naar XP, dus dat zou een oorzaak kunnen zijn, dat de oorspronkelijke macro niet meer werkt.
 
Bij mij loopt de macro goed.

Ik ben meer van de trial en error methode, dus via het forum oplossen van dit probleem is een beetje lastig...

Ik heb enkele invoegtoepssingen in excel aanstaan, zou eens kunnen proberen of het activeren van deze invoegtoepassingen helpt....
In de bijlage een schermprint
 

Bijlagen

Die invoegtoepassingen heb ik ook aanstaan.
Verder ben ik (net) niet genoeg ver genoeg in VBA om de oorzaak van dit probleem te begrijpen
 
Ik heb een 97 machine gevonden en daar werken beide macro's perfekt.
Het draait om Application.Filesearch, hoewel dat een gewone opdracht is.
Misschien is het een netwerkprobleem; bijvoorbeeld de standaard zoekfunctie van Windows is hier niet beschikbaar.
Ik neem de boel mee naar huis en ga het daar proberen.
WinXP en OfficeXP
 
Als je lokaal zoekt gaat het zeker goed, als je op een netwerk zoekt dan kun je problemen krijgen met mappings. Ik heb dat zelf wel eens gehad, omdat op mijn pc een locatie E:\ heet en op een server heet dat \\Filserver001\LocalUsers\
Je zou dit in de macro kunnen inbouwen dat E vervangen wordt door de correcte naam...
 
Dank John, ik zal er naar kijken. Op mijn thuismachine werkt de macro als een speer, het moet dus daar ergens in zitten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan