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

Lezen, kopieren en usb stick leegmaken.

  • Onderwerp starter Onderwerp starter MrBob
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.
Hoi Hsv,

De mappen structuur op het moment:

Boekhouding_1 en of _2
in deze map de volgende mappen:
"Initieel" met daarin een *csv file
"Uitkomst" met daarin verschillende *.llc files
"Totalen" met daarin een paar zip bestanden

Van alles wat dus, maar dit word zo door het boekhoud programma gedaan en op de Usb stick gezet en kan ik helaas niets aan veranderen.

Nogmaals bedankt voor het meedenken. :)
 
En in welke map bevindt zich een bestand met een variabele naam zoiets als 'boekhouding_2_26-3-2019.xlsx' ?
 
Hoi Hsv,

Nergens de structuur zoals hierboven word aangeleverd via een Usb stick vanuit een boekhoud programma. Graag zou ik willen dat hij de complete inhoud van de Usb stick kopieert naar bijvoorbeeld c:/boekhoudingen/ en in die map een map aanmaakt Boekhouding_1 en of _2 en dan erachter een datum plaats. De map op de schijf wil ik graag dat het er gaat uitzien zoiets als Boekhouding_1_07-04-2019. Zit te twijfelen of ik er dan meteen een tijd achter wil hebben als er bijvoorbeeld meerdere malen per dag een stick word aangeleverd. Maar dit is iets voor een update denk ik.

Intussen heb ik je regel veranderd en heb ik je regel werkend gekregen. Ik heb de regel aangepast naar

Code:
CreateObject("scripting.filesystemobject").movefile DrL & ":\Boekhouding_2\Uitkomst\*.llc", sFile & "\"

Dit kopieert zoals gevraagd deze files en delete die op de usb stick. het begint langzaam te werken waarvoor mijn dank. Ik heb ook geprobeerd om zelf nog een knop erbij te maken waar ik het userform kan vernieuwen zodat als ik de usbstick later in mijn pc doe dan het programma heb opgestart de zaak kan vernieuwen echter blijft deze knop uit. Hoe krijg ik deze knop op de juiste manier weer actief ? Ik heb mijn aangepaste bestand aan deze post gehangen.
 

Bijlagen

Onderstaande regels....
Code:
sv = Array("boekhouding_1", "boekhouding_2")
      For i = 1 To 2

...aanpassen in:
Code:
sv = Array("boekhouding_1", "boekhouding_2",[COLOR=#ff0000] "boekhouding_3"[/COLOR])
      For i = 1 To[COLOR=#ff0000] 3[/COLOR]
 
@Hsv,

Ja dat is als je zeg boekhouding_3 erbij wil maken, dat is me al duidelijk, waarvoor mijn dank.

Ik heb intussen een "Vernieuwen" knop en een "Stoppen" knop gemaakt en ze werken allebei. Wil je even met mij mee kijken of het op deze manier ook correct werkt want "Private Sub UserForm_Initialize" laten loopen zou niet verstandig zijn volgens Vena en werd me al afgeraden of zeg jij als je deze code toevoegt heb je geen vernieuwen knop nodig maar refreshed de boel zelf bij het erin en of eruit steken/halen van een usbstick met bijvoorbeeld Boekhouding_1 ?

Voor wat betreft de files moet ik nog aan de slag. Wil dus een 1 op 1 kopie van de usb stick in een bepaalde directorie met als het kan tijdens het kopieren dat de hoofdmap word gerenamed naar Boekhouding_1_07-04-2019_14:00 bijvoorbeeld.
Heb je tips zijn ze welkom ik kom al een heel stuk verder en wil je nogmaals bedanken voor je hulp. Ik leer zo heel snel weer erg veel bij. Ik ben blij tot zover. ;)

@Vena heb je link bekeken bedankt daarvoor, veel was al bekend maar heb er ook weer leuke dingetjes van geleerd voor toekomstige projectjes. Thanks ! :thumb:

Mvg,
MrBob
 

Bijlagen

Laatst bewerkt:
Mij mij werkt het niet met het Userform geopend.
De USB wordt niet ready gemaakt bij het plaatsen ervan en Excel loopt vast op "If it.drivetype = 1 and it.isready Then"
Beste remedie lijkt mij gewoon Userform pas openen nadat de de USB er inzit.

De test of de USB ready is bij een geopend formulier en dan pas de USB erin.
Hier loopt de code voorbij aan 'if it.ready then' omdat het niet ready is.
Code:
Private Sub UserForm_Activate()
Dim it As Object, sv, i As Long
CommandButton1.Enabled = False
CommandButton2.Enabled = False
  For Each it In CreateObject("Scripting.FileSystemObject").drives
    If it.drivetype = 1 Then
      If it.isready Then
     DrL = it.driveletter
     sv = Array("boekhouding_1", "boekhouding_2")
      For i = 1 To 2
        Me("Commandbutton" & i).Enabled = Dir(it.driveletter & ":\" & sv(i - 1) & "*", 16) <> ""
      Next i
     Exit For
    End If
   End If
  Next it
End Sub
 
@Hsv

Heb je wel mijn laatste file gebruikt, 1 bericht boven jouw bericht want hij staat nog op 0 views, want bij mij werkt het zoals ik graag wil.

Mvg,
MrBob
 
Ja hoor, dat duurt soms even met het bijwerken.
Als het bij jou werkt is het prima toch?
Ik zou het in de activate zetten zoals in mijn vorig bericht.
 
Bedankt ik heb het aangepast in mijn file.

Dan nog 1 vraagje. Zijn erop de usbstick geen files aanwezig dan krijg ik nu een fout53 melding. Kun je me uitleggen wat ik moet toevoegen om een net schermpje te krijgen met de melding file is niet aanwezig op de usb stick en dus geen foutmelding meer.
 
Dan zouden de buttons uitgeschakeld moeten zijn.
 
Zo ik het nu heb kopieerd hij alleen de *.llc files wat voor mij goed is, de directorie op de usb blijft bestaan. Stop ik nu dus de usb stick erin ziet hij nog wel de directory maar niet meer de files. Dus als ik dan nogmaals op de knop druk krijg ik een fout53. Hopelijk is het nu wat duidelijker geformuleerd en vandaar mijn vraag. Bedankt alvast voor het meedenken. :thumb:
 
Pas onderstaande code eens aan zoals de mapstructuur is op de USB.

Code:
Me("Commandbutton" & i).Enabled = Dir(it.driveletter & ":\Boekhouding\" & sv(i - 1) & "*", 16) <> ""
 
Code:
Me("Commandbutton" & i).Enabled = Dir(it.driveletter & ":\Boekhouding_1\Uitkomst\*.llc" & sv(i - 1) & "*", 16) <> ""

Bedoel je dit ?
 
Nee,

Hoeveel mappen staan er op de USB die gaan over de boekhouding?
Is dat maar een map genaamd boekhouding met een map Uitkomst?

F:\Boekhouding\Uitkomst\boekhouding_1.llc
F:\Boekhouding\Uitkomst\boekhouding_2.llc


Of is het?
F:\Boekhouding_1\Uitkomst\boekhouding_1.llc
F:\Boekhouding_2\Uitkomst\boekhouding_2.llc
 
Usbstick 1

F:\Boekhouding_1\Uitkomst\boekhouding_1.llc
F:\Boekhouding_1\Uitkomst\boekhouding_2.llc

en
Usbstick 2

F:\Boekhouding_2\Uitkomst\boekhouding_1.llc
F:\Boekhouding_2\Uitkomst\boekhouding_2.llc

Het mooiste zou dus zijn dat de regel niet alleen de files kopieert maar ook de mappen en dat doet het script nu niet alleen de files worden verplaatst. Als ik deze regel zo toe pas:

Code:
Me("Commandbutton" & i).Enabled = Dir(it.driveletter & ":\Boekhouding_1\Uitkomst\*.llc" & sv(i - 1) & "*", 16) <> ""
 
Dan moet er het een en ander gewijzigd worden.

In de Activate.
Code:
 Me("Commandbutton" & i).Enabled = Dir(it.driveletter & ":\" & sv(i - 1) & "\Uitkomst\*", 16) <> ""

Code:
Private Sub CommandButton1_Click()
 flpic
 If sFile <> "" Then
  CreateObject("scripting.filesystemobject").movefolder DrL & ":\Boekhouding_1", sFile & "\"
  CommandButton1.Enabled = False
 End If
End Sub
 
Ik heb alles even in mijn file gezet zoals gevraagd. De usb stick word gevonden als de map Boekhouding_1/Uitkomst/ aanwezig is maar krijg een fout 70 melding tijdens het kopiëren van de files. Het bestand hangt weer aan de post.
 

Bijlagen

Excuses, dat gaat niet vanaf een USB.

Eerst kopiëren en dan verwijderen maar.
Code:
Private Sub CommandButton1_Click()
 flpic
 If sFile <> "" Then
    With CreateObject("scripting.filesystemobject")
     .copyfolder DrL & ":\Boekhouding_1\Uitkomst", sFile & "\"
     .deletefolder DrL & ":\boekhouding_1"
    End With
  CommandButton1.Enabled = False
 End If
End Sub
 
Met deze regels gaat het kopiëren goed, echter fout 70 op

Code:
.deletefolder DrL & ":\boekhouding_1"
 
Vreemd, werkt hier uitstekend.

probeer eens...
Code:
.deletefolder DrL & ":\boekhouding_1", true
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan