Ga naar inhoud

Macro


Aanbevolen berichten

Helaas, het werkt niet 100% er moet ergens een fout inzitten.\r\n\r\nDeze moeten dus omgezet worden naar mapnamen. Soms gaat het wel en soms niet.\r\n\r\nDOS (besturingssysteem)\r\nLijst van MS-DOS-commando\'s\r\nAutoexec.bat\r\nBatchbestand\r\nCommand.com\r\nCONFIG.SYS\r\nDR-DOS\r\nFreeDOS\r\nMS-DOS\r\nOpenDOS\r\nPTS-DOS\r\nStandaard stromen\r\nTerminate and Stay Resident\r\nVisi On\r\n\r\nKun jij nog even kijken/testen waar de oorzaak ligt.\r\nSub MaakMap()\r\n Dim Dirname As String\r\n Dirname = Selection\r\n MkDir \"E:\\AANGEMAAKTE NIEUWE MAPPEN (macro)\\\" & Dirname\r\nEnd Sub\r\n\r\nJij had alleen E maar als ik alles in de root van e krijg is dat erg verwarrend. Probeer jij eens die lijst dan zul je zien dat het soms niet lukt.
Link naar reactie
Hier loopt het lijstje zonder problemen. Waar het fout gaat is bij selecteren. Achter de teksten staat in word ook nog een onzichtbaar einde regel teken. Als je de selectie maakt met dat einde regel teken, gaat het fout. Selecteer je het zonder dat teken, gaat het goed. \n\nHeb het script even aangepast, nu zit er een filter in die dat soort tekens eruit haalt\n\nSub test()\nDim Dirname As String\n\nFor teller = 1 To Len(Selection)\n If Asc(Mid(Selection, teller, 1)) > 31 Then Dirname = Dirname + Mid(Selection, teller, 1)\nNext\n\nMkDir \"c:\\test\\\" & Dirname\nEnd Sub
Link naar reactie
[QUOTE=stroke33;572140]Ik blijf erbij dat het geen :idea: [URL=\"https://secure.wikimedia.org/wikipedia/nl/wiki/Macro_%28software%29\"]Macro[/URL] is maar een script.;)\n\nMaar als het voor de TS werkt dan kan ik er wel mee leven:cool::D:p[/QUOTE]\n\nHet is initiëel gemaakt door het opnemen van een macro en daarna aangepast.\nDus nog steeds een macro. Alleen als het buiten de context van Office zou draaien is het een script.
Link naar reactie
[QUOTE=De Hulk;572125]Helaas, het werkt niet 100% er moet ergens een fout inzitten.[/QUOTE]\n\nVandaar dat ik zei dat er nog wel het 1 en ander aan controles en foutafhandeling gedaan kan worden.\nIn de eerste versie mag je geen mapnamen gebruiken waar een spatie in voor komt. En daar zit het probleem waar je nu tegenaan loopt.\nBepaalde andere tekens zijn ook niet toegestaan in een mapnaam en zouden eruit gefilterd moeten worden.\n\nOok moet worden gecontroleerd of de map al bestaat en zo is er nog wel meer te verzinnen.\nAls ik vanavond terug ben zal ik de macro zo voor je aanpassen dat hij een submap maakt en dat spaties in de naam zijn toegestaan.
Link naar reactie
De macro is aangepast.\nMarc H heeft helemaal gelijk wat betreft een onzichtbaar teken maar dat is alleen wanneer het aan het einde van een regel is.\nIk heb dat daarom iets anders opgelost.\n\n[CODE]Sub MaakMap()\n Dim Dirname As String\n \n Dirname = Selection.Text\n If Right(Dirname, 1) = vbCr Then\n Dirname = Left(Dirname, Len(Dirname) - 1)\n End If\n MkDir = \"E:\\AANGEMAAKTE NIEUWE MAPPEN (macro)\\\" & Dirname\nEnd Sub[/CODE]Nu wordt er gebruik gemaakt van de bestaande submap E:\\AANGEMAAKTE NIEUWE MAPPEN (macro) en de mapnamen mogen een spatie bevatten.\n\nN.B.:\nvbCR is wat men noemt een constante (vaste waarde) en staat voor visual basic Carriage Return.\nDat is het teken dat er voor zorgt dat de cursor naar het begin van de volgende regel gaat en deze wordt er nu af gesloopt.\nCarriage Return staat voor Wagen Terugloop, zoals je dat wel kent van de ouderwetse typemachine.
Link naar reactie
Volgens mij waren de spaties het probleem niet. Ik heb gisteren willekeurig delen uit een stuk tekst gepakt en toen werkte het wel, inclusief spaties e.d. Later heb ik het gekopieerd en geplakt zonder opmaak in Word en dan zit je misschien zoals Marc aangeeft met onzichtbare regeleinden/returns e.d.\r\n\r\nAangepast naar de gegevens van Marc en nu werkt het wel goed. Ik zal in ieder geval alle gegevens opslaan. Nu heb ik nog een vraag. Ik ga die van Marc dus nog even laten staan. Is het mogelijk dat je een opdracht meegeeft bij het aanmaken van de map, dit altijd in hoofdletters te doen, aangezien ik mappen altijd in hoofdletters aanmaak. De bestaande tekst in Word mag dus niet veranderen. Bedankt allemaal voor de aanvullingen en wijzigingen. Vanmiddag kon ik helaas niets doen.\r\n\r\nDeze staat er nu:\r\nSub MaakMap()\r\nDim Dirname As String\r\n\r\nFor teller = 1 To Len(Selection)\r\n If Asc(Mid(Selection, teller, 1)) > 31 Then Dirname = Dirname + Mid(Selection, teller, 1)\r\nNext\r\n\r\nMkDir \"E:\\AANGEMAAKTE NIEUWE MAPPEN (macro)\\\" & Dirname\r\nEnd Sub
Link naar reactie
Die van Marc werkt ook prima. Het verschil is dat hij alle zogenaamde CONTROL characters uit de hele string verwijderd.\nControl characters zijn alle zgn. [URL=\"http://nl.wikipedia.org/wiki/ASCII_%28tekenset%29\"]ASCII[/URL] waarden van 0 t/m 31. Die vbCR bijvoorbeeld heeft de ascii waarde 13.\nIn de code van Marc kun je zien dat hij ieder teken in de hele Selection bekijkt en alleen de tekens met een ascii waarde groter dan 31 in Dirname zet. Voor een klein programma zoals deze die maar 1 string bekijkt kan dit prima.\nAls je echter grote programma\'s maakt met veel tekst strings moet je dit zoveel mogelijk voorkomen omdat het nogal wat capaciteit vraagt.\nVandaar dat ik alleen het laatste teken controleer op de waarde 13 (vbCR)\n\nHoofdletters van de mapnaam maken kun je doen door net voor de Mkdir opdracht het volgende op te nemen:\n\n[CODE]Dirname = UCase(Dirname)[/CODE]of (netter)\n[CODE]MkDir \"E:\\AANGEMAAKTE NIEUWE MAPPEN (macro)\\\" & Ucase(Dirname)[/CODE]\n\nVolgens mij begint dit een leerzaam topic te worden :-)
Link naar reactie
Je kunt er inderdaad veel van leren, helaas komt dergelijke stof niet bij mij over. Ik neem het niet op, vroeger ook grote problemen met wiskunde. Bedankt voor de uitleg en ik heb de eerste code gebruikt.\r\nIs er in die scripttaal ook zoiets als bij DOS het [B]rem[/B] plaatsen voor de opdrachtregel die dan niet wordt uitgevoerd.
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...