• 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.

Bestanden verplaatsen van map naar Map VBA

Status
Niet open voor verdere reacties.

Khalid23

Gebruiker
Lid geworden
12 aug 2015
Berichten
48
Allen,

Kan iemand mij helpen.

Ik gebruik deze macro voor het verplaatsen van bestanden van een map naar andere map.

Als de file bestaat in het tweede map dan loopt hij vast.

alvast bedankt.

Code:
Sub Verplaatsen()
Application.DisplayAlerts = False
    Set FSO = CreateObject("scripting.filesystemobject")
    FSO.MoveFile Source:="U:\Desktop\Nieuwe map\Test\**.xlsx", Destination:="U:\Desktop\Nieuwe map\Test\PREVIOUS REPORTS\" ' replace with source and destination as required.
'
End Sub
 
Gebruik dit eens:
Code:
Sub FC()
    Dim SourceFile, DestinationFile
    SourceFile = "SRCFILE"
    DestinationFile = "DESTFILE"
    
    If Dir(DestinationFile) <> "" Then
        If MsgBox("Doelbestand bestaat al. Overschrijven?", vbQuestion + vbYesNo) = vbYes Then
            FileCopy SourceFile, DestinationFile
        End If
    End If
End Sub
 
Of dit, want je wilt natuurlijk niet kopieren maar verplaatsen:
Code:
Sub Verplaatsen()
Const bMap As String = "U:\Desktop\Nieuwe map\Test\"
Dim arr() As Variant, i As Integer
Dim fSO As Object
    
    Set fSO = CreateObject("Scripting.FileSystemObject")
    tmp = Dir(bMap & "*.xls*")
    Do While Not tmp = ""
        ReDim Preserve arr(i)
        arr(i) = tmp
        i = i + 1
        tmp = Dir
    Loop
    
    For i = LBound(arr) To UBound(arr)
        If Dir(bMap & "PREVIOUS REPORTS\" & arr(i)) = "" Then
            fSO.MoveFile Source:=bMap & arr(i), Destination:=bMap & "PREVIOUS REPORTS\"
        End If
    Next i
End Sub
 
Je moet natuurlijk wel eerst vertellen wat er moet gebeuren als de bestandsnaam al bestaat.

'Verplaatsen' in VBA doen we zó:

Code:
Sub M_snb()
   Name "G:\OF\voorbeeld.xlsx" As "J:\Download\voorbeeld.xslx"
End Sub
 
Er zijn meerdere manieren om bestanden te verplaatsen. Name is er inderdaad ook één van :).
 
Je moet natuurlijk wel eerst vertellen wat er moet gebeuren als de bestandsnaam al bestaat.

Antwoord:

Bestand vervangen.
 
Bedankt voor jullie reacties.

Ik heb bovenstaande codes gebruikt maar helaas werkt het niet.

De bedoeling is al volgt:

De macro moet alle bestanden (xls, xlsm en xlsx) in MAP A verplaatsen naar MAP B.
Als het bestand al bestaat in MAP B dan vervangen.

Is dit duidelijk?

Alvast bedankt
 
Probeer het dan eens zo

Code:
Sub jec()
 Dim it, srcPath, destPath, sq
 srcPath = "U:\Desktop\Nieuwe map\Test\"
 destPath = "U:\Desktop\Nieuwe map\Test\PREVIOUS REPORTS\"
 
 With CreateObject("scripting.filesystemobject")
   For Each it In .getfolder(srcPath).Files
     sq = destPath & it.Name
     If .FileExists(sq) Then Kill sq
    .movefile it, destPath & it.Name
   Next
 End With
End Sub
 
Laatst bewerkt:
Of zo:
Code:
Sub Verplaatsen()
    Bron = "U:\Desktop\Nieuwe map\Test"
    Doel = "U:\Desktop\Nieuwe map\Test\PREVIOUS REPORTS"
    
    BST = Dir(Bron & "\*.xls*")
    While BST <> ""
        If Dir(Doel & "\" & BST) <> "" Then Kill Doel & "\" & BST
        Name Bron & "\" & BST As Doel & "\" & BST
        BST = Dir()
    Wend
End Sub
 
Laatst bewerkt:
Bron: G:\OF\
Doel: G:\OF\OF1\

Code:
Sub M_snb()
   Shell "cmd /c copy G:\OF\*.xls* G:\OF\OF1\", 0
   Kill "G:\OF\*.xls*"
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan