• 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 kopieeren naar een andere locatie

  • Onderwerp starter Onderwerp starter HWV
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

HWV

Terugkerende gebruiker
Lid geworden
19 feb 2009
Berichten
1.213
Beste,

Ik heb een klantenmap op onze schijf staan, met 16.000 klantenmappen.
In de klantmappen zitten allemaal andere submappen, met daarin ook submappen.
Doordat er geen eenheid is en alle mappen niet het zelfde zijn opgebouwd heb ik de bestandsnamen naar excel gehaald incl locatie naam.
Daarnaast staat de nieuwe locatie waar het heen gekopieerd moet worden.

Nu is het ook zo dat in de map die gekopieerd moet worden naar de nieuwe map, submappen zitten die nog niet bestaan in de nieuwe klantenmap.

De vraag

- Kunnen we deze bestanden uit de mappen gekopieerd worden naar de nieuwe locatie
- Als de locatie niet bestaat dat deze dan aangemaakt kan worden, zodat de bestanden erin gekopieerd kunnen worden

Bekijk bijlage Helpmij_Verplaatsen.xlsx

Alvast dank!

HWV
 
Dat kan best, maar je wilt al die locaties en bestandsnamen in Excel gaan ingeven???
Je kan dan beter eens kijken naar Norton Commander of de Xcopy opdracht in een command prompt.

Gaat het echt om alle bestanden en mappen uit P:\Verkoop\Klanten old\ die moeten worden gekopiëerd naar P:\Verkoop\Klanten\?
 
Laatst bewerkt:
Beste.

Al deze bestanden staan al in dit format in excel.

Ik heb wel wat gevonden hier op het form maar ik krijg dit niet werkend op mijn bestand:

Code:
Sub Verplaats_Data()

Call Eerst_Sorteren

LSearchRow = 2
While Len(Range("A" & CStr(LSearchRow)).Value) > 0

Dim Welk_Bestand As Range
Dim Van_Welke_Locatie As Range
Dim Naar_Welke_Locatie As Range

Set Welk_Bestand = ActiveSheet.Range("$B$" & LSearchRow)
Set Van_Welke_Locatie = ActiveSheet.Range("$C$" & LSearchRow)
Set Naar_Welke_Locatie = ActiveSheet.Range("$D$" & LSearchRow)


'Het wordt nu in een message box weer gegeven als je echt uit wil voeren kan je deze weg halen
'MsgBox "Verplaatsen " & Van_Welke_Locatie & Welk_Bestand & "Naar " & Naar_Welke_Locatie & Welk_Bestand

'Hier wordt gecontroleerd of de directory al bestaat. Zo niet dan word deze aangemaakt
If Dir(ActiveSheet.Range("$D$" & LSearchRow).Value, vbDirectory) = "" Then
      MakeMultiStepDirectory (ActiveSheet.Range("$D$" & LSearchRow).Value)
End If

' Als je echt wil gaan verplaatsen moet je voor onderstaande regel de ' weg halen
Name Van_Welke_Locatie & Welk_Bestand As Naar_Welke_Locatie & Welk_Bestand

LSearchRow = LSearchRow + 1
Wend

MsgBox "Verplaatsen van bestanden is klaar"

End Sub

Sub Eerst_Sorteren()
'
' Eerst_Sorteren Macro
'

'
    Columns("A:D").Select
    ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear
    ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range("A2:A60000") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.ActiveSheet.Sort
        .SetRange Range("A:D")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("A1").Select
End Sub

Groet HWV
 
Laatst bewerkt:
Wat ik kan proberen is met total commander die heb ik wel bij ons op de zaak, ik zal eens kijken of ik hiermee gedaan krijg
Mijn gedacht was dit sneller gedaan zou worden met VBA, zoals de script hierboven.

Maar bedankt voor je reactie'

Groet HWV
 
Als het om snelheid gaat kan je, zoals ik al zei, het beste Xcopy gebruiken.
Dan regel je dat met 1 opdracht.
 
Ik ga ermee aan de gang, net al wat testen mee gedaan maar zonder resultaat.
Zal er even in moeten verdiepen.
Maar bedankt voor hé advies

HWV
 
Voorbeeld xcopy in batch-file MS-DOS

Code:
Cls
Cd\
P:
xcopy "P:\Verkoop\Klanten old\klantnaam - PROSPECT\Offerte`s\Lopende offerte`s" "P:\Verkoop\Klanten\klantnaam - PROSPECT\Offerte`s\Lopende offerte`s" /i/s/e/v

Maak altijd back-ups!
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan