Files met variabele namen verplaatsen/copieren

Status
Niet open voor verdere reacties.

ExcelTonnie

Gebruiker
Lid geworden
5 jul 2016
Berichten
308
Dagelijks komen er .txt files in een map MEETING terecht.
De bestandsnaam heeft altijd met de datum en tijd te maken.
De eerste 3 karakters veranderen nooit.

Voorbeeld: 03M010271500, morgen 03M010280615 enz. enz.

4e 0=jaartal (altijd 1 decimaal)
5e/6e 10 = Maand (altijd 2 decimalen)
7e/8e 27 = Dag (altijd 2 decimalen)

Laatste 4 is de tijdsaanduiding wat altijd varieert. (dit moet dus geen issue zijn)

Dan heb ik een map waar ik alleen de files naar toe wil hebben van bijv. =Vandaag()
Hij moet dus alle files kopieeren naar CONTROLE.
Wanneer ik dus de makro start =vandaag() dan moet hij dus alle files van 03M01027.... meenemen, ongeacht welke tijd.
Hoop dat het een beetje te begrijpen is wat de bedoeling is.

even een voorbeeldje bijgevoegd.
 

Bijlagen

  • Export_Controle.xlsm
    36 KB · Weergaven: 20
Laatst bewerkt:
Code die ik tot nu getest heb werkt natuurlijk alleen maar met alle .txt bestanden wat ik dus niet wil.
I.p.v. *.txt moet die dus de files doen met de waarde uit J3 waar ook nog de tijd achterstaat wat genegeerd moet worden.


Code:
Sub Testbeoordeel()
    'Basis map, hieronder worden mappen aangemaakt met de naam uit de waarde op G3
    c00 = "S:\QADeventer\Quality Data\1.Solex Nestle Files van bloktijden\"
    c01 = c00 & Range("J3").Value
    If Dir(c01, 16) = "" Then MkDir c01
    

    'Basis map waarin alle *.txt files vanaf de solex inkomen
    c02 = Dir("S:\SolexData4\Black\Gemetendossiers\NDG3\2020\*.txt")
    Do Until c02 = ""
      Name "S:\SolexData4\Black\Gemetendossiers\NDG3\2020\" & c02 As c01 & "\" & c02
      c02 = Dir
    Loop
End Sub
 
Code:
Sub M_snb()
  c00 = "F:\OF\"
  If Dir(c00, 16) = "" Then MkDir c00
  CreateObject("scripting.filesystemobject").MoveFile "G:\OF\03M0" & Format(Date, "mmdd") & "???.txt", c00
End Sub
 
hallo snb

Zou je een korte uitleg kunnen geven wat jou script precies doet want ik krijg hem niet werkend.
Graag hoor ik van je.

Gr.Tonnie
 
Heb je de paden aangepast aan juuw situatie ?
Bij welke regel gaat het mis ?
 
Paden zijn aangepast.
verder wordt er een map aangemaakt "OF" en stopt op onderstaande regel.

Code:
Sub SNBtest()
  c00 = "H:\TVE\OF\"
  If Dir(c00, 16) = "" Then MkDir c00
  [I][B]CreateObject("scripting.filesystemobject").MoveFile "S:\OF\03M0" & Format(Date, "mmdd") & "???.txt", c00[/B][/I]
End Sub


Ik begrijp deze regel ook niet hoe hij de txt check en overzet in de andere map.
Waar vergelijk hij dit mee welke datum hij moet nemen.
 
Welke bestanden staan in directory "S:\OF" ?
 
De volgende bestanden staan op deze locatie.

Waar het mij omgaat, ik heb in een bepaalde cel bijv. "S3" een waarde staan bijv. 03M01027...
De .... staan voor de tijd wat altijd verschilt en dus genegeerd moet worden.
De 03M01027 veranderd ook dagelijks dus alleen (copy) wat correspondeert met S3.


Schermafbeelding 2020-10-28 om 13.37.13.png

Heb het werkend maar zou dit graag willen zoals bovenstaand, nu pakt die alleen de huidige datum.

Werkend iets anders gemaakt vanwege thuis werk.

Code:
Sub SNBtest()
  'Hier komen de solexbestanden te staan na start makro
  c00 = "Y:\Werk\Beoordeel\"
  If Dir(c00, 16) = "" Then MkDir c00
  'Hier staan de solexfiles in
  CreateObject("scripting.filesystemobject").MoveFile "Y:\Werk\Solexfiles\03M0" & Format(Date, "mmdd") & "????.txt", c00

End Sub
 
Laatst bewerkt:
Hier verandert alles met een t.
 
Hier verandert alles met een t.

Misschien zijn mijn vragen te onduidelijk, het deel wat je hebt gegeven werkt deels en kan dit eventueel wel gebruiken.
Enige is wanneer er geen bestand aanwezig met de huidige datum dan krijg ik een fout.
Hoe kan ik deze afvangen, mag eventueel ook met een MSGbox.
Heb diverse testjes gedaan maar het lukt mij niet.

Code:
Sub SNBtest()
  'Hier komen de solexbestanden te staan na start makro
  c00 = "Y:\Werk\Beoordeel\"
  If Dir(c00, 16) = "" Then MkDir c00
  'Hier staan de solexfiles in
  CreateObject("scripting.filesystemobject").MoveFile "Y:\Werk\Solexfiles\03M0" & Format(Date, "mmdd") & "????.txt", c00

End Sub
 
Gebruik Dir("bestandsnaam")

Geen idee hoe dit te gebruiken.
Bij het laatste object daar bestaan er dus geen files die aan de criteria voldoen en stopt de makro.

Code:
Sub NDG3trans()
'Hier komen de solexbestanden te staan na start makro
  c00 = "S:\QADeventer\Verhuist\"
If Dir(c00, 16) = "" Then MkDir c00
  
  
   'c01 = "S:\QADeventer\SOLEXin\"
'If Dir("bestandsnaam") = "" Then

    'Hier staan de solexfiles in, ipv Copy kun je ook Move gebruiken
    CreateObject("scripting.filesystemobject").CopyFile "S:\QADeventer\SOLEXin\03M0" & Format(Date, "mmdd") & "????.txt", c00
CreateObject("scripting.filesystemobject").CopyFile "S:\QADeventer\SOLEXin\03M0" & Format(Date, "mmdd") - 1 & "????.txt", c00
     

    CreateObject("scripting.filesystemobject").CopyFile "S:\QADeventer\SOLEXin\05M0" & Format(Date, "mmdd") & "????.txt", c00
CreateObject("scripting.filesystemobject").CopyFile "S:\QADeventer\SOLEXin\05M0" & Format(Date, "mmdd") - 1 & "????.txt", c00

 
 
 

 
 End Sub
 
Het zou toch wel handig zijn als je eerst eens wat basisbegrippen bestudeert uit een VBA-beginnersboek.
 
Dit is toch een forum om dingen te vragen.
De taal probeer je op deze manier te begrijpen.
Mensen zoals ik zijn dan ook heel blij met zo'n forum.
Het lijkt mij de bedoeling dan ook als je vragen hebt om zo duidelijk mogelijk uit te leggen wat je precies wil en dan is het aan de experts of ze dit willen beantwoorden of niet.
Natuurlijk zou het prettig zijn als iedereen wat meer kennis hiervan zou hebben maar dan hebben we de experts ook niet meer nodig.
Vaak wordt er een kort antwoord gegeven waar je als leek niets van begrijpt en vraag je dan verder dan krijg je zulke antwoorden.
Willen jullie niet antwoorden op vragen doe dit dan niet.
Als iedereen boeken zou kopen en cursussen zou gaan volgen dan wordt dit forum overbodig.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan