Help!

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

Hulp bij posten

Recente topics

Auteur Topic: macro loopt vast  (gelezen 10071 keer)

0 leden en 1 gast bekijken dit topic.

coolsluc

  • Gast
macro loopt vast
« Gepost op: 26 februari 2015, 10:28:40 »
Aan iedereen die wil helpen, mijn macro loopt steeds vast op de lijn  MkDir jaarmap zie beneden.
ps:als ik de mappen opzoek staan deze er wel??

     mvg,Luc


Sub kopie_opslaan()

datum = Sheets("Perso-BZM").Cells(3, 5)
jaar = Trim(Str(Year(datum)))

hoofdmap = "C:\Documents\exell\werk\ploegboek test\allerlei"
jaarmap = hoofdmap & "exell " & jaar & "\"
If Dir(jaarmap, vbDirectory) = "" Then
    MkDir jaarmap
End If

Online SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.128
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: macro loopt vast
« Reactie #1 Gepost op: 26 februari 2015, 10:51:25 »
Luc,

Mappen kan je enkel aanmaken per laag, als de bovenlaag al bestaat.
C:\ bestaat, dus daar kan je een map in aanmaken, ééntje bvb Documents

MkDir "C:\Documents"

Nu bestaat C:\Documents en kan je daar weer in ondermap in maken:
MkDir "C:\Documents\excell"

enzovoort....

Speel even (met je verkenner geopend) en deze macro:

Sub map_maken()

MkDir "C:\Documents"
MkDir "C:\Documents\excell"
MkDir "C:\Documents\excell\werk"
MkDir "C:\Documents\excell\werk\ploegboek test"
MkDir "C:\Documents\Excell\werk\ploegboek test\allerlei"

End Sub

Variabelen en datums toevoegen dat kan je dan naar believen ;)

En ...je End Sub mankeert in je voorbeeld ...?

Een vlugge genezing toegewenst... 8)

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

coolsluc

  • Gast
Re: macro loopt vast
« Reactie #2 Gepost op: 26 februari 2015, 12:15:38 »
SoftAid,dit is de volledige macro (heeft in het verleden steeds gewerkt en heb reeds verschillende macro's op deze wijze opgebouwd) maar deze stopt op de rij                 MkDir jaarmap
ps:"C:\ bestaat
      Documents\bestaat
      Excell\Bestaat
      Werk\bestaat
      Ploegboek test\bestaat
      Allerlei"Bestaat

de rest word AUTM. aangemaakt dacht ik ??

    mvg,Luc


Sub kopie_opslaan()

datum = Sheets("Perso-BZM").Cells(3, 5)
jaar = Trim(Str(Year(datum)))

hoofdmap = "C:\Documents\exell\werk\ploegboek test\allerlei"
jaarmap = hoofdmap & "exell " & jaar & "\"
If Dir(jaarmap, vbDirectory) = "" Then
    MkDir jaarmap
End If

maand = Month(datum)
Select Case maand
    Case 1: tmaand = "01" & " " & "Januari"
    Case 2: tmaand = "02" & " " & "Februari"
    Case 3: tmaand = "03" & " " & "Maart"
    Case 4: tmaand = "04" & " " & "April"
    Case 5: tmaand = "05" & " " & "Mei"
    Case 6: tmaand = "06" & " " & "Juni"
    Case 7: tmaand = "07" & " " & "Juli"
    Case 8: tmaand = "08" & " " & "Augustus"
    Case 9: tmaand = "09" & " " & "September"
    Case 10: tmaand = "10" & " " & "Oktober"
    Case 11: tmaand = "11" & " " & "November"
    Case 12: tmaand = "12" & " " & "December"
End Select

maandmap = jaarmap & tmaand & " " & jaar & "\"

If Dir(maandmap, vbDirectory) = "" Then
    MkDir maandmap
    seleniummap = maandmap & "Selenium\"
    MkDir seleniummap
End If

maand = Trim(Str(maand))
If Len(maand) = 1 Then maand = "0" & maand

dag = Trim(Str(Day(datum)))
If Len(dag) = 1 Then dag = "0" & dag
bestandsnaam = dag & "-" & maand & "-" & jaar & "Selenium.xlsm"
ActiveWorkbook.SaveCopyAs Filename:=maandmap & "Selenium\" & bestandsnaam

End Sub


Online SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.128
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: macro loopt vast
« Reactie #3 Gepost op: 26 februari 2015, 12:55:49 »
Hallo Luc,

als je in je code volgende hebt staan:

hoofdmap = "C:\Documents\exell\werk\ploegboek test\allerlei"
jaarmap = hoofdmap & "exell " & jaar & "\"

dan wordt de waarde van de variabele jaarmap =   C:\Documents\exell\werk\ploegboek test\allerleiexell2015\

Verander
hoofdmap = "C:\Documents\exell\werk\ploegboek test\allerlei" eens in
hoofdmap = "C:\Documents\exell\werk\ploegboek test\allerlei\"
:) SoftAid :)             

Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

coolsluc

  • Gast
Re: macro loopt vast
« Reactie #4 Gepost op: 26 februari 2015, 13:09:40 »
SoftAid, de map Allerleiexcell2015 bestaat ook
voor uw 2de opmerking (had in al geprobeerd, zonder resultaat).
in ieder geval bedankt voor het mee zoeken (dit werkte vroeger wel??)kan dit te maken hebben met de verschillende versies van Excel.

ps. fout 76 kan pad niet vinden( verschijnt op het scherm).


   mvg,Luc

Online SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.128
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: macro loopt vast
« Reactie #5 Gepost op: 26 februari 2015, 13:19:14 »
Luc,

ik zie nog wat verdachte zaken.
Citaat
ps:"C:\ bestaat
      Documents\bestaat
      Excell\Bestaat
      Werk\bestaat
      Ploegboek test\bestaat
      Allerlei"Bestaat
Ik denk dat je nu thuis die mappen op jou PC aangemaakt hebt om te testen.

Maar de macro heb je waarschijnlijk meegebracht van het werk.
Je schrijft dat:
  Excell\ bestaat  ................ maar in je macro heet die map exell\                  (kleine e en geen c)
  Werk\ bestaat  ..............      "                   "                         werk\                 (kleine w)
  Ploegboek test\ bestaat          "                   "                         ploegboek test\   (kleine p)
  Allerlei bestaat                      "                   "                          allerlei                 (kleine a)  (geen backslash na allerlei)

Verder: voeg zeker de lijn:
Dim hoofdmap As Variant, jaarmap As Variantin net onder Sub kopie_opslaan()
Dat kan soms nodig zijn

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Online SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.128
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: macro loopt vast
« Reactie #6 Gepost op: 26 februari 2015, 13:32:57 »
Deze werkt al heel zeker:

Sub CoolsLuc()

Dim hoofdmap As Variant, jaarmap As Variant

datum = Sheets("Perso-BZM").Cells(3, 5)
jaar = Trim(Str(Year(datum)))

hoofdmap = "C:\Documents\excel\werk\ploegboek test\allerlei\"
jaarmap = hoofdmap & "exell " & jaar & "\"
If Dir(jaarmap, vbDirectory) = "" Then
MkDir jaarmap & "\"
End If
End Sub

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

coolsluc

  • Gast
Re: macro loopt vast
« Reactie #7 Gepost op: 26 februari 2015, 13:37:03 »
SoftAid, Ik heb de lijn toegevoegd (werking idem).
voor het overige, de mappen hebben wel degelijk de juiste benaming(mijn fout van ingeven).
De macro + mappen zijn van de pc thuis (niet van de fabriek) deze werden in het verleden aangemaakt om de file thuis te testen (wat toen wel lukte)
wat ik nu met de file wil doen is de macro een beetje aanpassen (maar dan moet hij eerst werken)er is een spook opgedoken denk ik ;)

ps:was reeds aan mijn antwoord bezig als jou bericht verscheen!!
Ik heb een nieuwe lijst met mappen gemaakt en bij mij lukt het niet??



m.v.g. Luc

Online SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.128
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: macro loopt vast
« Reactie #8 Gepost op: 26 februari 2015, 13:59:57 »
Hallo Luc,

mag ik even meekijken?




Als je "Hulp op afstand" wilt dan nemen we je PC even over om deze acties door te voeren.
  • Download het tooltje TeamViewerQS (KLIK) en start het.
  • Je ziet een ID xxx xxx xxx   en een WachtWoord xxxx 
  • Stuur het ID en het WW per gewone mail naar SoftAid@oplossing.be
  • Laat het venstertje van TeamViewer open staan.

Voorbeeld van het TeamViewerQS venster met het Uw ID: xxx xxx xxx   en het Wachtwoord: xxxx


:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.277
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: macro loopt vast
« Reactie #9 Gepost op: 26 februari 2015, 20:48:06 »
Waarom sluit je elke "jaarmap" en "maandmap" bij het vullen van de variabele af met  & "\"  ???
Als je daarna gaat testen of de samengestelde string als directory bestaat, zoek je volgens mij dus naar een lege directory die niet gevonden wordt en dus treedt je "MkDir" in werking die daar weer niets mee kan. Naar mijn idee is dat & "\" dus je boosdoener...
______________________________

Groet, Leo

Online SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.128
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: macro loopt vast
« Reactie #10 Gepost op: 26 februari 2015, 22:03:19 »
Hallo Redhead,

werkt nochtans prima in de testen. Het was juist het ontbreken van die "\" backslash dat de macro deed vastlopen.

Je moet aan het eind van de string hoofdtekst een backslash zetten, anders wordt het laatste woord  "tekst" in die string samengevoegd met de "tekst" in:
jaarmap =hoofdmap & "tekst"
en bekom je ........\teksttekst\....


Als je de backslash vooraan in die lijn zou zetten, dus jaarmap = "\" & hoofdmap & "tekst", dan geeft dit bij:
MkDir jaarmap juist wel een foutmelding:  (Fout 52: Ongeldige bestandsnaam).
De backslash vooraan wordt duidelijk niet herkent.
Kijk je naar de inhoud van jaarmap dan zie je dat die backslash ontbreekt in de string.



Deze code werkt
Sub CoolsLuc()
Dim hoofdmap As Variant, jaarmap As Variant
datum = Sheets("Perso-BZM").Cells(3, 5)
jaar = Trim(Str(Year(datum)))
hoofdmap = "C:\Documents\excel\werk\ploegboek test\allerlei\"
jaarmap = hoofdmap & "-tekst" & "\"
If Dir(jaarmap, vbDirectory) = "" Then
MkDir jaarmap
End If
End Sub
Deze code werkt niet
Sub CoolsLuc()
Dim hoofdmap As Variant, jaarmap As Variant
datum = Sheets("Perso-BZM").Cells(3, 5)
jaar = Trim(Str(Year(datum)))
hoofdmap = "C:\Documents\excel\werk\ploegboek test\allerlei"
jaarmap = "\" & hoofdmap & "-tekst " & "\"
If Dir(jaarmap, vbDirectory) = "" Then
MkDir jaarmap
End If
End Sub

Groeten,

:) SoftAid :)             

EDIT:
Je kan de beginmappenstructuur maken met deze kleine macro:
Sub map_maken()
MkDir "C:\Documents"
MkDir "C:\Documents\excel"
MkDir "C:\Documents\excel\werk"
MkDir "C:\Documents\excel\werk\ploegboek test"
MkDir "C:\Documents\excel\werk\ploegboek test\allerlei"
End Sub

Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

coolsluc

  • Gast
Re: macro loopt vast
« Reactie #11 Gepost op: 28 februari 2015, 18:13:23 »
SoftAid/RedHead: de macro loopt perfect ,SotAid bedankt voor het verhelderend gesprek heb er wat van opgestoken.
PS spijtig dat ik met mijn zotte kop de verkeerde file heb weggegooid (deze met de ganse uiteenzetting)MAAR er is nog wat blijven hangen in mijn hoofd :-[ :-[

voor het afsluiten en terug openen van de file zal ik best een nieuwe vraag stellen denk ik!!
nogmaals bedankt aan beide.


    mvg,Luc

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.277
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: macro loopt vast
« Reactie #12 Gepost op: 01 maart 2015, 12:55:27 »
@SoftAid. Uiteraard werkt dit niet: jaarmap = "\" & hoofdmap & "-tekst " & "\" en krijg je een foutmelding.
De reden is namelijk een backslash voor je drive-letter (dus: \C:\Documents\excel\werk\ploegboek test\allerlei), en die syntax bestaat nou eenmaal niet.
Maar het gaat mij dus om die afsluitende backslash aan het einde van het complete pad. DIE hoort daar volgens mij niet thuis omdat je dan test op een lege directory. Doorloop deze procedure maar 'ns... (en kies dan voor de testen 1 t/m 3 even voor een eigen pad waar je kleine aanpassingen in maakt)
Citaat
Sub ff()
' Testpad 0: "C:\Documents\excel\werk\ploegboek test\allerlei"
' Testpad 1: "C:\Users\Leo\Documents\Oplossing.BE\Opgelost"
' Testpad 2: "C:\Users\Leo\Documents\Oplossingen.BE\Opgelost"
' Testpad 3: "C:\Users\Leo\Documents\Oplossing.BE\Opgelost\"

    sPad1 = "C:\Users\Leo\Documents\Oplossing.BE\Opgelost\"
    sPad2 = Split(sPad1, "\")(0)
   
    For i = 1 To UBound(Split(sPad1, "\"))
        sPad2 = Join(Array(sPad2, Split(sPad1, "\")(i)), "\")
        MsgBox "Test   " & i & "  ; Bestaat het volgende pad " & vbCrLf & sPad2 & ":    " & CStr(Len(Dir(sPad2, vbDirectory)) > 0)
    Next i

End Sub
Test0 is het pad wat Coolsluc had opgegeven, maar ik niet wilde toevoegen aan mijn structuur. Vandaar dat ik even een op mijn pc bestaand pad heb gekozen en daar wat verschillen heb aangebracht.
Je zal dus zien dat je een extra test krijgt als je de complete string afsluit met die backslash.

Ik vraag me daarmee af wat bijvoorbeeld de inhoud is van deze variabelen...
datum = Sheets("Perso-BZM").Cells(3, 5)
jaar = Trim(Str(Year(datum)))
Want HOE ziet die datum er uit dat je de Str en de Trim functies nodig hebt om het jaartal uit een datum te krijgen?

En eigenlijk vraag ik me dus met alle ingezette variabelen af wat de waarde daarvan is.

Maar goed, het blijkt nu te werken en daar gaat het om. Het gaat mij er dus niet om het wel of niet gelijk hebben (dat dát graag wel ff duidelijk is ;)) maar om de verbazing van de werking van de procedure.
______________________________

Groet, Leo

Online SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.128
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: macro loopt vast
« Reactie #13 Gepost op: 01 maart 2015, 13:50:59 »
Hallo Leo,
Citaat
Uiteraard werkt dit niet: jaarmap = "\" & hoofdmap & "-tekst " & "\" en krijg je een foutmelding.
Dus moet je de backslash ergens anders zetten, je voegt tenslotte tekst (in de vorm van de variabele hoofdmap) samen met andere tekst, om de variabele jaarmap te maken. Die backslash kan je enkel on het einde zetten in de aanmaak van de variabele hoofdmap.

Citaat
Maar het gaat mij dus om die afsluitende backslash aan het einde van het complete pad. DIE hoort daar volgens mij niet thuis omdat je dan test op een lege directory.
Je mag van mij stellen dat die daar niet thuishoort, maar de macro werkt WEL met, NIET zonder...

Citaat
Doorloop deze procedure maar 'ns... (en kies dan voor de testen 1 t/m 3 even voor een eigen pad waar je kleine aanpassingen in maakt)
Je werkt hier bewust met [split], een functie die niet gebruikt wordt in de macro van Luc. Ik kan die code zelfs niet lezen. Vergeet niet dat wij maar amateurtjes zijn, en jij een pro.

Citaat
Ik vraag me daarmee af wat bijvoorbeeld de inhoud is van deze variabelen...
datum = Sheets("Perso-BZM").Cells(3, 5)
jaar = Trim(Str(Year(datum)))
Want HOE ziet die datum er uit dat je de Str en de Trim functies nodig hebt om het jaartal uit een datum te krijgen?
Als je gewoon eens Stap per Stap door de macro gaat, dan zie je toch de inhoud van die variabelen.
Ik zal niet beweren dat het niet veel eenvoudiger kan, maar het werkt, en zoals je zelf zegt, daar gaat het om.

Groeten,

:) SoftAid :)             

Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.277
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: macro loopt vast
« Reactie #14 Gepost op: 01 maart 2015, 14:05:00 »
Als je gewoon eens Stap per Stap door de macro gaat, dan zie je toch de inhoud van die variabelen
Ha ha ha... ik zou wel willen maar ik heb dat bestand niet ter beschikking? Jij wel? En natuurlijk kan ik zelf iets opbouwen, maar daarmee heb ik niet wat Coolsluc misschien ziet... Voor het zelfde geld staat de datum daar als "maandag 3 Maart 2015" en dan als tekst en niet als datumgetal (met de opmaak van een datum). Dát zou namelijk verklaren waarom de Trim-functie nodig zou kunnen zijn.

O ja, ik bedoelde met het "doorlopen van mijn testprocedure" niet om dit inhoudelijk te doen, maar 'm een zet te geven en kijken hoeveel keer je een Msgbox zou zien verschijnen. De Split-functie is niet zoveel bijzonders hoor. Die kan een tekststring in stukjes knippen op het opgegeven character. De Join-functie doet het omgekeerde... Die maakt van de losse delen (= een array) weer 1 string.
______________________________

Groet, Leo

 


www.combell.com