Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: subdirectory's aanmaken en verplaatsen afbeeldingen  (gelezen 4647 keer)

0 leden en 1 gast bekijken dit topic.

Offline woutje26

  • Nieuw lid
  • Berichten: 5
  • Geslacht: Man
  • Oplossing.be
subdirectory's aanmaken en verplaatsen afbeeldingen
« Gepost op: 14 mei 2007, 19:30:13 »
Beste,

Ik heb een probleempje die via een VBA macro kan verholpen worden ...

Situatie is als volgt:

Ik heb een map met 100 afbeeldingen, elke afbeelding heeft een unieke bestandsnaam.

Aan de andere kant heb ik een Excel bestandje met 2 velden nl. ID en de bestandsnaam.

Het ziet er als volgt uit:

ID             BESTANDSNAAM
---             --------------------
1               oplossingTest.jpg
2               oplossingHosting.jpg
3               oplossingWeb.jpg
.....
100           oplossingPrinting.jpg

De bedoeling van het script zou zijn dat het per lijn in het Excel bestand een subdirectory aanmaakt en daarna de juiste file (uit de bronmap) kopieert naar die subdirectory.

De eerste lijn uit het voorbeeld praktisch gezien zou het volgende geven:

ID=1
BESTANDSNAAM=oplossingTest.jpg

Script maakt subdirectory met naam 1 en kopieert het bestand met als naam oplossingTest.jpg in die subdirectory met naam 1

Hierna moet er geloopt worden doorheen het volledige Excel bestand.

Laatste lijn zou dan een subdirectory opleveren met naam 100 waarna het bestand met als naam oplossingPrinting.jpg gekopieerd wordt naar de subdirectory 100

Alvast hartelijk dank voor een snelle reactie!!!

groeten,
Wouter



Standaard emailprogramma: Office Outlook
Standaard Operating System: Windows Vista
Standaard Browser:Internet Explorer 6

Offline Erik Van Geit

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 306
  • Geslacht: Man
Re: subdirectory's aanmaken en verplaatsen afbeeldingen
« Reactie #1 Gepost op: 14 mei 2007, 19:54:38 »
Dag, woutje26,
Welkom op dit forum  :)

Snelle reactie?
Je hebt puur geluk! Eens kijken of we kunnen helpen...
Citaat
Ik heb een probleempje die via een VBA macro kan verholpen worden ...
Als je dat zelf vertelt, geef je sterk de indruk dat je wel wat weet over macros.

Je hebt nodig:
1. een "loop" uitvoeren doorheen de 100 rijen
2. de functie Name
basis-syntax (namen met volledig pad)
Name "OudeNaam" As "NieuweNaam"3. MkDir (afkorting voor Make Directory)

Als je al wat van macros kent, kan je wellicht punt 1. oplossen zonder Helpfiles te bestuderen. Voor punt 2. en 3. kan je in VBAhelp kijken.

Kan je hiermee van start gaan?

beste groeten,
Erik

Offline woutje26

  • Nieuw lid
  • Berichten: 5
  • Geslacht: Man
  • Oplossing.be
Re: subdirectory's aanmaken en verplaatsen afbeeldingen
« Reactie #2 Gepost op: 14 mei 2007, 20:07:43 »
Beste,

Bedankt voor de snelle reactie! :)

Ik ken echt bijna niets van VBA Excel ... Ken wel een beetje vbscript ...

Standaard emailprogramma: Office Outlook
Standaard Operating System: Windows Vista
Standaard Browser:Internet Explorer 6

Offline Erik Van Geit

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 306
  • Geslacht: Man
Re: subdirectory's aanmaken en verplaatsen afbeeldingen
« Reactie #3 Gepost op: 14 mei 2007, 21:35:40 »
Als je er niets van kent, is dit het moment om te leren.

Keek je al in de HELPfiles (niet Excel maar VBA)?
Name, instructie
Daar kan je makkelijk mee experimenteren.

Steeds code in een Subroutine plaatsen, maar dat weet je wellicht wel, hé?
Sub test()
Name ....
End Sub

Wat MkDir betreft, dat is net hetzelfde. Een experiment is gauw gedaan.

Nu nog leren een "loop" maken en je bent er ongeveer.
Je beste vriend in Excel is niet die keivervelende paperclip, maar de macrorecorder. (zie menu Extra/Macro/Nieuwe macro opnemen)
1. start opname
2. plaats eens wat waarden in cellen
3. stop opname
4. kijk naar de code die aangemaakt is
5. vervang eens enkele waarden in de code...

Volgende stap: wat variabelen leren gebruiken en je bent weer een flink eind verder.
Deze code
Range("A1") = 1evolueert dan naar
Sub test()
Dim i As Long
i = 1
Range("A1") = i
End Sub
ALs je nu die variabele in een "loop" gebruikt met "For ... Next", ben je weer een stap verder.

Ken je wat engels? Hier een site van een goede kennis  ;)
https://www.tushar-mehta.com/excel/vba/beyond_the_macro_recorder/index.htm

Als je wat wegwijs geraakt in de diverse elementen, kunnen ze in een volgende fase tot een eenheid worden verwerkt.
 
goeie nacht,
Erik

Offline woutje26

  • Nieuw lid
  • Berichten: 5
  • Geslacht: Man
  • Oplossing.be
Re: subdirectory's aanmaken en verplaatsen afbeeldingen
« Reactie #4 Gepost op: 15 mei 2007, 00:15:28 »
Hey,

Ondertussen opgelost ...

Eigenlijk een makkie naderhand bekeken ... heb het wel met vbscript gedaan!

Alvast bedankt!

gr

w

Standaard emailprogramma: Office Outlook
Standaard Operating System: Windows Vista
Standaard Browser:Internet Explorer 6

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.280
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: subdirectory's aanmaken en verplaatsen afbeeldingen
« Reactie #5 Gepost op: 15 mei 2007, 09:11:32 »
Wouter, zou je ons ook willen laten zien hoe je dit hebt opgelost? (De code aub tussen 'code-tags' plaatsen.) We leren namelijk graag van anderen met goede ideeën en bovendien geeft dit een mooie afsluiting van je topic en is de site goed als 'naslagwerk' bruikbaar... ;)

Groet, Leo

P.s. Welkom op de site trouwens.... ;D
______________________________

Groet, Leo

Offline Erik Van Geit

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 306
  • Geslacht: Man
Re: subdirectory's aanmaken en verplaatsen afbeeldingen
« Reactie #6 Gepost op: 15 mei 2007, 09:54:43 »
Ja, 'k zou Leo willen bijtreden.
Sommige mensen komen hier gewoon wat opzoeken, vinden dan de vraag maar geen volledig antwoord.

Dus Woutje26, wil je zo vriendelijk zijn om hier even je oplossing te tonen? Aangezien het geen gewone VBA is, ook even er bij zeggen hoe je het gebruikt.
Daarna kunnen we eventueel ook een VBA-oplossing tonen.

beste groeten,
Erik

Offline woutje26

  • Nieuw lid
  • Berichten: 5
  • Geslacht: Man
  • Oplossing.be
Re: subdirectory's aanmaken en verplaatsen afbeeldingen
« Reactie #7 Gepost op: 15 mei 2007, 14:07:33 »
Hey,

Uiteraard, oplossing volgt hieronder.

Dim objExcel, strPathExcel, strID, strImage
Dim objFile, intRow

intRow = 1
' wil zeggen dat er een heading is, zal pas op 2de lijn data beginnen ophalen

Set objExcel = CreateObject("Excel.Application")
strPathExcel = "C:\test\Import.xls"

' importbestand in excel bestaat uit 2 velden
'id bestandsnaam
' 1 testje.jpg
' 2 testjeAuto.jpg

objExcel.Workbooks.open strPathExcel
Set objSheet = objExcel.ActiveWorkbook.Worksheets(1)
Do Until objSheet.Cells(intRow,1).Value = ""
  strID = Trim(objSheet.Cells(intRow, 1).Value)
  strImage = Trim(objSheet.Cells(intRow, 2).Value)

'Tonen van de waarden in een msgbox
  'WScript.Echo strID
  'WScript.Echo strImage

' Aanmaken van de juiste ID map in de hoofdmap pictures

dim FSOMaakFolder, NewFolder, NewFolderPath
NewFolderPath = "pictures/" & strID & ""
set FSOMaakFolder=CreateObject("Scripting.FileSystemObject")
     If Not FSOMaakFolder.FolderExists(NewFolderPath) Then
                    Set newfolder = FSOMaakFolder.CreateFolder(NewFolderPath)
     End If
Set FSOMaakFolder = Nothing

' Moven van pictures naar juiste ID map

dim FSOMove, NewFile
     set FSOMove = CreateObject ("Scripting.FileSystemObject")
     set NewFile = FSOMove.GetFile("C:\test\pictures\" & strImage &"")
     NewFile.Move ("C:\test\pictures\" & strID & "\" & strImage & "")
Set FSOMove = Nothing

intRow = intRow + 1

Loop

objExcel.Quit



Standaard emailprogramma: Office Outlook
Standaard Operating System: Windows Vista
Standaard Browser:Internet Explorer 6

Offline Erik Van Geit

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 306
  • Geslacht: Man
Re: subdirectory's aanmaken en verplaatsen afbeeldingen
« Reactie #8 Gepost op: 15 mei 2007, 16:38:51 »
dankjewel, woutje26

Het ziet er perfect uit, ook te gebruiken in VBA, misschien een klein detail te wijzigen, maar ik denk het niet.

dit soort lijnen zal niet werken
WScript.Echo strIDmaar je hebt deze lijn "uitgeREMd"  :)

fijne dag verder,
Erik

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.280
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: subdirectory's aanmaken en verplaatsen afbeeldingen
« Reactie #9 Gepost op: 18 mei 2007, 09:50:42 »
Wouter, dank voor het plaatsen van je oplossing. Toch iets waar anderen nog veel plezier aan kunnen beleven. Maareh...
Citaat van: wouter
Ik ken echt bijna niets van VBA Excel ... Ken wel een beetje vbscript ...
Ehhh... 'een beetje vbscript'?? Ik vind het er klasse uit zien!

Groet, Leo
______________________________

Groet, Leo

Offline woutje26

  • Nieuw lid
  • Berichten: 5
  • Geslacht: Man
  • Oplossing.be
Re: subdirectory's aanmaken en verplaatsen afbeeldingen
« Reactie #10 Gepost op: 18 mei 2007, 11:44:52 »
danku

wat een nacht toch allemaal kan doen met onze hersenen hé :)
Standaard emailprogramma: Office Outlook
Standaard Operating System: Windows Vista
Standaard Browser:Internet Explorer 6

 


www.combell.com