VBA aanmaken van gevulde directory

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • liter
  • Registratie: Februari 2010
  • Laatst online: 19-09 14:49
Beste bouwers,

Helaas is mijn kennis van VBA nog 'groeiende' en vraag jullie hulp of onderstaande kan, en hoe de code eruit moet komen te zien.

Ik heb een Excel lijst waar we de code neerzetten van een bepaald product. Nu wil ik dat er een directory wordt aangemaakt en de inhoud van een voorbeeldmap daarin komt te staan met een aantal bestanden die vervolgens handmatig gevuld kunnen worden.

Tot nu toe heb ik:

code:
1
2
3
4
5
6
7
8
9
10
Sub MakeDirs()
Dim MyRange As String
      MyRange = Range("T1")
Dim vFolderList As Variant, i As Long
vFolderList = Range("A2:A" & Cells(Rows.Count, "A").End(xlUp).Row).Value
On Error Resume Next
For i = 1 To UBound(vFolderList, 1)
    MkDir MyRange & vFolderList(i, 1)  'amend the directory as required (it must exist)
Next
End Sub


Deze maakt keurig een directory aan. Maar:

1: Hoe kan ik de inhoud van bijvoorbeeld C:\Test\Voorbeeld\ laten kopieren naar de aangemaakte directory?
2: Ook wil ik de macro automatisch uit laten voeren bij het vullen van bijv. kolom A. als ik 'Private Sub Worksheet_SelectionChange(ByVal Target As Range)' gebruik werkt het niet. Wat doe ik daar fout?

Alvast bedankt voor jullie hulp _/-\o_

Acties:
  • +1 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 14:49
In VBA is het FileSystemObject wel handig als je dat soort dingen wil doen. Alternatief is zelf lopen pielen met FileCopy.


Fuck me for still knowing this shit. }:|

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • liter
  • Registratie: Februari 2010
  • Laatst online: 19-09 14:49
Ok, dank voor je reactie. En kan je ook aangeven hoe de VBA code eruit komt te zien? Of is dit niet zo gemakkelijk in een macro aan Excel te plaatsen?

Mijn kennis van VBA nog 'groeiende' moet je lezen als 'net begonnen' om eerlijk te zijn

[ Voor 7% gewijzigd door liter op 27-09-2016 20:56 ]


Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
liter schreef op dinsdag 27 september 2016 @ 19:41:
1: Hoe kan ik de inhoud van bijvoorbeeld C:\Test\Voorbeeld\ laten kopieren naar de aangemaakte directory?
[google=vba copy directory]
2: Ook wil ik de macro automatisch uit laten voeren bij het vullen van bijv. kolom A. als ik 'Private Sub Worksheet_SelectionChange(ByVal Target As Range)' gebruik werkt het niet. Wat doe ik daar fout?
Ik gok dat je niet gebruik hebt gemaakt van de juiste Sheet om de code in te stellen met de dropdowns, maar dat je iets hebt geplakt in een Module waar je toevallig al in stond binnen het VBAProject. Dit werkt alleen binnen een Sheet.

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


  • Joep
  • Registratie: December 2005
  • Laatst online: 14:40
1: Gebruik een FileSystemObject om te kloten met bestanden en mappen
https://www.google.nl/sea...esystemobject+copy+folder
http://www.rondebruin.nl/win/s3/win026.htm

2: Zoek op google naar de syntax van het worksheet_change event en controleer of jouw syntax klopt. Zet een breakpoint in je code en gebruik F8 om stapje voor stapje door je code te gaan. Gebruik watches om de waardes van variabelen te controleren en kijk waar het misgaat.

  • liter
  • Registratie: Februari 2010
  • Laatst online: 19-09 14:49
Automatisch uitvoeren van de macro werk. Ook zitten spelen met Sub Copy_Folder(), maar zit met het volgende: het kopiëren van FromPath moet maar één keer uitgevoerd worden. en daarna niet overschreven.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim MyRange As String
      MyRange = Range("T1")
Dim vFolderList As Variant, i As Long
vFolderList = Range("A2:A" & Cells(Rows.Count, "A").End(xlUp).Row).Value
On Error Resume Next
For i = 1 To UBound(vFolderList, 1)
    MkDir MyRange & vFolderList(i, 1)  'amend the directory as required (it must exist)
Next
End Sub
Sub Copy_Folder()
    Dim FSO As Object
    Dim FromPath As String
    Dim ToPath As String

    FromPath = "C:\Test\Voorbeeld"
    ToPath = "C:\Test\??????"
Next
End Sub



Wat moet ik neerzetten bij ToPath = "C:\Test\??????"

[ Voor 58% gewijzigd door liter op 28-09-2016 22:19 ]


  • ajakkes
  • Registratie: Maart 2004
  • Laatst online: 16-05 22:32

ajakkes

👑

De locatie waar de map naar toe moet lijkt me.

Productnaam = ActiveCell.Value

ToPath = "C:\mapje\" & Productnaam

Probeer zelf ook even te zoeken naar het antwoord op je vraag. Want ik heb niet het idee dat je deze vraag niet kon beantwoorden. Of je vraag was niet duidelijk.

👑

Pagina: 1