Vraag


Acties:
  • 0 Henk 'm!

  • PeterVII
  • Registratie: Juni 2012
  • Laatst online: 27-07-2023
Beste Tweaker,

Mijn probleem is als volgt. Ik heb 1584 Word documenten (facturen) opgemaakt en hier ben ik een aardig tijdje mee bezig geweest. Nu kom ik tot de ontdekking dat elk document 3 extra pagina's heeft met informatie die totaal niet relevant is. Ik zou die dus graag uit alle facturen willen hebben.

Ik maak gebruik van office 2010. Op de zaak heb ik 2019 tot mijn beschikking. Ik heb zitten verzinnen hoe ik dit kan realiseren:

Optie1 was het programma "mGet batch replacer" gebruiken om alle overbodige tekst te verwijderen. Gevonden via Google. Dit werkt goed voor enkele karakters, maar met een paar extra "harde" enters, loopt dit programma vast. Uiteraard heb ik ook de batch was kleiner gemaakt om te kijken of het dan wel wil werken.. uiteindelijk heb ik de batch gereduceerd tot 1 document, waar het programma ook op vast loopt.

Optie 2 is een makro te bemachtigen om alle overbodige tekst uit het document te halen en te vervangen voor een spatie en dat de makro het document automatisch opslaat.

Optie 3 is een makro te bemachtigen om alle eerste pagina's van het document op te slaan in *.docx

Optie 4 is een makro te bemachtigen om alle eerste pagina's van het document op te slaan in *.pdf
(niet mijn voorkeur)

Tevens heb ik de zoekfunctie gebruikt op het forum, maar daar kom ik niet veel verder dan ik al had kunnen bereiken met de "mGet Batch replacer".

Zouden jullie mij kunnen helpen in deze case?

Heel hartelijk dank alvast.

Groetjes,
Peter

Beste antwoord (via PeterVII op 24-10-2019 06:52)


  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
PeterVII schreef op vrijdag 18 oktober 2019 @ 07:07:
Ik heb 1584 Word documenten (facturen) opgemaakt en hier ben ik een aardig tijdje mee bezig geweest. Nu kom ik tot de ontdekking dat elk document 3 extra pagina's heeft met informatie die totaal niet relevant is. Ik zou die dus graag uit alle facturen willen hebben.
In onderstaande oplossing wordt er vanuit gegaan dat alle 1584 Wordbestanden de extensie .docx hebben.
1. Open een nieuw Worddocument en sla het op als "Worddocument met ingeschakelde macro's (*.docm)" in dezelfde map als waarin je 1584 Worddocumenten staan. Welke naam je aan het document geeft, heeft geen belang.
2. Toets ALT-F11, je komt dan in de vba-editor.
3. Kies bovenaan in het menu: "Invoegen" - "Module" en plaats in de module onderstaande macro.
4. Plaats de cursor op een willekeurige plaats in de macro en druk op F5. In korte tijd worden dan van alle .docx-documenten alle pagina's na pagina 1 verwijderd.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub Verwijder_blz()
Dim mydoc As Document, myfile As String, mypath As String
Dim myrange As Range, pagescount As Long, x As Integer
mypath = ThisDocument.Path & "\"
myfile = Dir(mypath & "*.docx")
Application.ScreenUpdating = False
Do While myfile <> ""
Set mydoc = Application.Documents.Open(mypath & myfile)
Selection.EndKey wdStory
pagescount = Selection.Information(wdActiveEndPageNumber)
For x = pagescount To 2 Step -1
Selection.GoTo What:=wdGoToPage, Count:=pagescount
Set myrange = Selection.Bookmarks("\Page").Range
myrange.End = myrange.End + 1
myrange.Delete
Next x
mydoc.Close wdSaveChanges
myfile = Dir
Loop
Application.ScreenUpdating = True
End Sub

Alle reacties


Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

VBA ‘bemachtigen’ die de inhoud aanpast van facturen is een heel slecht idee als je niet precies weet wat iedere regel code doet ook in uitzonderingsgevallen. Je wilt niet het risico lopen dat de facturen corrupt raken. (Edit: wat dat betreft is het zo laten ook een idee, opslag is goedkoop).

Ik denk dat de plug-in vastloopt op het aantal pagina’s, maar dat is puur onderbuik.

Kom je niet al een heel eind met handmatig zoek&vervang te doen? De enter kan je zoeken/vervangen met ^p of ^l afhankelijk van welke enter is gebruikt. Als steeds dezelfde tekst dan moet een paar keer een deel vd tekst vervangen te doen zijn.

Is het altijd precies drie pagina’s? Dan is eerst alles naar pdf halen en dan met een batch pdf editor elke tweede en derde pagina verwijderen een idee. (Of om de drie pagina’s extracten naar een nieuw document). Bijv https://pdfsam.org/pdfsam-basic/ kan dat laatste al moet je dan zelf even een lijstje 1,4,7,...maken

[ Voor 7% gewijzigd door F_J_K op 18-10-2019 07:35 ]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

  • PeterVII
  • Registratie: Juni 2012
  • Laatst online: 27-07-2023
Bedankt JFK voor je snelle reactie.

Corrupte bestanden ben ik niet zo bang voor aangezien ik altijd mijn facturen backup. Ik ontkom er ook niet aan de facturen eerst door een ander na te laten kijken. Ik kan enkel niet bij de ander aankloppen... "Wil jij je ff nakijken ennne… haal ff die overige pagina's weg :D".

Met handwerk ben ik weer een aantal uur verder, dus ik wilde dit eigenlijk automatisch laten doen.

Het gaat om elke keer dezelfde tekst en dezelfde pagina's.

Die laatste suggestie lijkt mij dan het meest handig alhoewel ik de facturen het liefst nog niet in PDF wil hebben.

Heel hartelijk dank voor je reactie. Ik ga kijken hoe dit zal uitpakken. Ik houd je op de hoogte.

gr. Peter

Acties:
  • 0 Henk 'm!

  • Panzer_V
  • Registratie: April 2004
  • Laatst online: 18:57
Schrijf je eigen macro?

Ik doe wat ik kan, zodoende blijft er veel liggen.


Acties:
  • 0 Henk 'm!

  • PeterVII
  • Registratie: Juni 2012
  • Laatst online: 27-07-2023
Beste Panzer_V,

Dit is nou niet het aller beste antwoord ;).

Ik ben daar totaal niet goed in. Ik weet een beetje wat een makro zou kunnen doen,maar schijven heb ik nog nooit gedaan. Ik ben bang dat wanneer ik dit onder de knie heb, dan ik net zo goed alle documenten zelf kan aanpassen.

Sorry die eerst zin klonk als een sneer. ik hoop dat de emoticon dit een beetje recht heeft kunnen trekken.

Acties:
  • 0 Henk 'm!

  • DukeBox
  • Registratie: April 2000
  • Laatst online: 23:14

DukeBox

loves wheat smoothies

PeterVII schreef op vrijdag 18 oktober 2019 @ 07:51:
..alhoewel ik de facturen het liefst nog niet in PDF wil hebben.
Neem aan dat de klant deze uiteindelijk wel als PDF krijgt ?

Duct tape can't fix stupid, but it can muffle the sound.


Acties:
  • +1 Henk 'm!

  • PeterVII
  • Registratie: Juni 2012
  • Laatst online: 27-07-2023
Uiteraard krijgt de klant de factuur wel in PDF :-).

Oplossing met PDFsam is ook erg omslachtig. Ik moet elk bestand apart invoeren. Ik ga zo nog ff stoeien met een batch pdf editor.

Gr. Peter

Acties:
  • +1 Henk 'm!

  • Cheesy
  • Registratie: Mei 2006
  • Niet online
https://www.extendoffice....te-multiple-pages.html#a2
Net geprobeerd en het werkt :)

Wellicht combineren met een vba om multiple documents in a folder aan te passen, maar die zijn genoeg te vinden op internet. Dan ben je zo klaar toch?

[ Voor 63% gewijzigd door Cheesy op 18-10-2019 11:45 . Reden: Door een andere gebruiker ben ik erop gewezen dat het niet de bedoeling is om codes van andere websites op dit forum te plaatsen. ]


Acties:
  • +1 Henk 'm!

  • Patrock
  • Registratie: Augustus 2011
  • Laatst online: 19:40

Patrock

Eat - ride - sleep - repeat

Oei.

Hoe heb je de data opgeslagen waar je in eerste instantie de facturen mee hebt opgesteld?
Als het gaat om 1500+ facturen hoop ik niet dat je 1500+ documenten met de hand aan hebt lopen maken.

Als al deze gegevens gebundeld staan in een excel document kun je met verzendlijsten makkelijk een rits facturen genereren. Hiervoor maak je een template van de factuur, koppel je het excel document, en zet de velden op de juiste plek.

Als er dan iets mis gaat, is het enkel een kwestie van de template aanpassen, en opnieuw alles naar pdf afdrukken.

Hiermee vang je ook direct af dat je docx bestanden als factuur hebt. Gezien facturen niet achteraf gewijzigd mogen worden. ( factuurdatum e.d.)

Als alle gegevens dus in excel staan, kun je van 1 factuur de template maken, en vervolgens de rest generen zonder de extra pagina's er aan vast.

Acties:
  • 0 Henk 'm!

  • DukeBox
  • Registratie: April 2000
  • Laatst online: 23:14

DukeBox

loves wheat smoothies

PeterVII schreef op vrijdag 18 oktober 2019 @ 10:43:
Oplossing met PDFsam is ook erg omslachtig.
Wij automatiseren dat soort dingen altijd met imagemagick.

Maar ik kan mij voorstellen dat je je origineel (docx) ook correct wilt hebben.

[ Voor 16% gewijzigd door DukeBox op 18-10-2019 11:42 ]

Duct tape can't fix stupid, but it can muffle the sound.


Acties:
  • Beste antwoord
  • +2 Henk 'm!

  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
PeterVII schreef op vrijdag 18 oktober 2019 @ 07:07:
Ik heb 1584 Word documenten (facturen) opgemaakt en hier ben ik een aardig tijdje mee bezig geweest. Nu kom ik tot de ontdekking dat elk document 3 extra pagina's heeft met informatie die totaal niet relevant is. Ik zou die dus graag uit alle facturen willen hebben.
In onderstaande oplossing wordt er vanuit gegaan dat alle 1584 Wordbestanden de extensie .docx hebben.
1. Open een nieuw Worddocument en sla het op als "Worddocument met ingeschakelde macro's (*.docm)" in dezelfde map als waarin je 1584 Worddocumenten staan. Welke naam je aan het document geeft, heeft geen belang.
2. Toets ALT-F11, je komt dan in de vba-editor.
3. Kies bovenaan in het menu: "Invoegen" - "Module" en plaats in de module onderstaande macro.
4. Plaats de cursor op een willekeurige plaats in de macro en druk op F5. In korte tijd worden dan van alle .docx-documenten alle pagina's na pagina 1 verwijderd.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub Verwijder_blz()
Dim mydoc As Document, myfile As String, mypath As String
Dim myrange As Range, pagescount As Long, x As Integer
mypath = ThisDocument.Path & "\"
myfile = Dir(mypath & "*.docx")
Application.ScreenUpdating = False
Do While myfile <> ""
Set mydoc = Application.Documents.Open(mypath & myfile)
Selection.EndKey wdStory
pagescount = Selection.Information(wdActiveEndPageNumber)
For x = pagescount To 2 Step -1
Selection.GoTo What:=wdGoToPage, Count:=pagescount
Set myrange = Selection.Bookmarks("\Page").Range
myrange.End = myrange.End + 1
myrange.Delete
Next x
mydoc.Close wdSaveChanges
myfile = Dir
Loop
Application.ScreenUpdating = True
End Sub

Acties:
  • 0 Henk 'm!

  • PeterVII
  • Registratie: Juni 2012
  • Laatst online: 27-07-2023
@Patrock : Je hebt helemaal gelijk. Ik moet dit voor 2020 anders hebben geregeld.

@Cheesy : Dat was inderdaad op de goede weg.

grote ode aan @dix-neuf : dit script had ik inderdaad nodig om alle overbodige informatie te verwijderen. *big thumbs up*

Het idee is nu om een nieuw boekhoud programma te "schrijven" in Excel die automatisch een factuur opmaakt. maar daar heb ik nog 2 maanden de tijd voor. :)

Acties:
  • 0 Henk 'm!

  • Webgnome
  • Registratie: Maart 2001
  • Nu online
PeterVII schreef op donderdag 24 oktober 2019 @ 06:59:
@Patrock : Je hebt helemaal gelijk. Ik moet dit voor 2020 anders hebben geregeld.

@Cheesy : Dat was inderdaad op de goede weg.

grote ode aan @dix-neuf : dit script had ik inderdaad nodig om alle overbodige informatie te verwijderen. *big thumbs up*

Het idee is nu om een nieuw boekhoud programma te "schrijven" in Excel die automatisch een factuur opmaakt. maar daar heb ik nog 2 maanden de tijd voor. :)
Waarom zou je het wiel opnieuw uitvinden als er heel veel programma's op de markt zijn ?

Strava | AP | IP | AW


Acties:
  • 0 Henk 'm!

Verwijderd

PeterVII schreef op donderdag 24 oktober 2019 @ 06:59:
@Patrock : Je hebt helemaal gelijk. Ik moet dit voor 2020 anders hebben geregeld.

@Cheesy : Dat was inderdaad op de goede weg.

grote ode aan @dix-neuf : dit script had ik inderdaad nodig om alle overbodige informatie te verwijderen. *big thumbs up*

Het idee is nu om een nieuw boekhoud programma te "schrijven" in Excel die automatisch een factuur opmaakt. maar daar heb ik nog 2 maanden de tijd voor. :)
Als je googled op verkoopfactuur excel dan heb je 2 uur nodig ipv 2 maanden
Pagina: 1