Help!

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

Hulp bij posten

Recente topics

Auteur Topic: Macro laten stoppen aan begin document  (gelezen 3324 keer)

0 leden en 1 gast bekijken dit topic.

Offline Frans1949

  • Lid
  • *
  • Berichten: 64
  • Geslacht: Man
  • Oplossing.be
Macro laten stoppen aan begin document
« Gepost op: 13 oktober 2020, 19:23:24 »
Hallo allemaal.

Ik ben bezig met een macro te fabriceren, die het tussenvoegsel "van" zoekt en deze plaatst van het ene veld achter de achternaam in het volgende veld.

Dit gaat goed tot en met de laatste gevonden "van". Dan blijft de cursor achter deze "van" staan.
Zie voorbeeldbestand

Wat ik graag zou zien is dat de macro na  de laatste gevonden "van" stopt met zoeken en automatisch terug gaat naar het begin van het document. Om daarna verder te kunnen gaan met de volgende opdracht.

Nu krijg ik een MSGBOX met de vraag om vooraan te beginnen, bij ja gaat de macro alles weer opnieuw verplaatsen. Uiteraard gaat dit niet goed.
Bij nee en ik kies fout dan is "selection.cut" geel gearceerd omdat deze leeg is.

Wie helpt me verder?


bvd. Frans

Online SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.129
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Macro laten stoppen aan begin document
« Reactie #1 Gepost op: 13 oktober 2020, 20:24:40 »
Hallo Frans1949,

Welkom op Oplossing.be  :)
Ik deel je geboortejaar, dus mogelijk komt er iets positiefs uit.

Mooi dat je een voorbeeldbestand meegestuurd hebt, maar dat is geen bestand met macro's.
De helpers hier zullen een voorbeeld van je macro zeker weten te smaken, dus als je dat even kan in orde brengen....

Groet,

:) 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 Frans1949

  • Lid
  • *
  • Berichten: 64
  • Geslacht: Man
  • Oplossing.be
Re: Macro laten stoppen aan begin document
« Reactie #2 Gepost op: 13 oktober 2020, 21:45:01 »
Staat de macro niet onder Beeld, macro,s, macro,s weergeven, macro 8 uitvoeren?

Frans

Online SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.129
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Macro laten stoppen aan begin document
« Reactie #3 Gepost op: 13 oktober 2020, 21:51:42 »
Hallo Frans1949,

Negatief, ik kan geen macro vinden. En je bestand zou dan ook een *.docm moeten zijn.

Ben je zeker dat je het bestand hebt opgeslaan als .docm nadat je de macro's hebt gemaakt?

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 Frans1949

  • Lid
  • *
  • Berichten: 64
  • Geslacht: Man
  • Oplossing.be
Re: Macro laten stoppen aan begin document
« Reactie #4 Gepost op: 13 oktober 2020, 22:03:53 »
Sorry, eventjes niet aan gedacht.

Bij deze de juiste bijlage.
Frans

Online SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.129
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Macro laten stoppen aan begin document
« Reactie #5 Gepost op: 13 oktober 2020, 22:51:31 »
Hallo Frans1949,

Je zal je huiswerk nogmaals moeten overdoen, vrees ik.

Je hebt de macro ('s) opgeslagen in je normal.dot, niet in je Document zelf.
Als er bij jou geen problemen zijn, dan is dit omdat normal.dot gestart wordt met het starten van Word.

In de versie van het werkboek dat je in bijlage stuurt staan geen macro's, wel een module "Verwijzing naar normal" (alhoewel ik betwijfel of dat nodig is).

Open Word, Beeld, Macro's, Macro's weergeven, Bewerken.
In de projectverkenner rechtsklik je op je project (Blad1 of Blad1 (1)) en kies voor "Invoegen", "Module".

In de VBA Editor knip je (Ctrl + X) de macro's uit de map Normal.dot en plak ze (Ctrl + V) in de zopas aangemaakte module van je project.

Sla op en test of je macro's nu ook werken.

Stuur dan een kopie van je bestandje. Ik zal zien wat ik kan doen. Zelf heb ik geen ervaring met Word, maar wel een redelijk beetje met macro's in Excel, dus dat moet genoeg zijn om jou te helpen bij je vraag.
Mocht ik te kort schieten, er zijn hier nog veel helpers die veel meer ervaring hebben met Word  :)

Succes,

:) 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 Frans1949

  • Lid
  • *
  • Berichten: 64
  • Geslacht: Man
  • Oplossing.be
Re: Macro laten stoppen aan begin document
« Reactie #6 Gepost op: 13 oktober 2020, 23:55:24 »
Ik krijg de macro niet verder dan:  Alle active documenten sjablonen en documenten.
Hopelijk is het zo wel goed.

Voor het geval dat heb ik de macro hieronder in een code geplaatst.

Frans

Sub Macro8()
Selection.HomeKey Unit:=wdStory
 While Selection.Type = wdSelectionIP And Selection.End <> ActiveDocument.Content.End - 1

       Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "van"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = True
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
    Selection.Cut
    Selection.MoveRight Unit:=wdCell
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.TypeText Text:=" "
    Selection.PasteAndFormat (wdFormatOriginalFormatting)
    Wend
End Sub

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Macro laten stoppen aan begin document
« Reactie #7 Gepost op: 14 oktober 2020, 10:16:03 »
Hallo,

Ook ik ben, bij wijze van understatement van formaat, wat meer met Excel bezig dan met Word.
Of en hoe je die vraag om van voor opnieuw te beginnen kan vermijden is me niet duidelijk (die zou wel eens vast kunnen hangen aan 'zoeken en vervangen'), dus mocht je het niet erg vinden om dan op 'nee' te moeten klikken dan raakt de rest als volgt wel opgelost (ik heb enkel de nodige code toegevoegd zonder de bestaande in vraag te stellen; die kan mogelijk efficiënter, maar daarvoor dus ook: over naar de Word-specialisten) :
Sub Macro8()

On Error GoTo einde

Selection.HomeKey Unit:=wdStory
While Selection.Type = wdSelectionIP And Selection.End <> ActiveDocument.Content.End - 1
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "van"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = True
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
    Selection.Cut
    Selection.MoveRight Unit:=wdCell
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.TypeText Text:=" "
    Selection.PasteAndFormat (wdFormatOriginalFormatting)
Wend

Exit Sub

einde:
Selection.HomeKey Unit:=wdStory

End Sub

Groeten,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline Frans1949

  • Lid
  • *
  • Berichten: 64
  • Geslacht: Man
  • Oplossing.be
Re: Macro laten stoppen aan begin document
« Reactie #8 Gepost op: 14 oktober 2020, 11:54:24 »
Pitufo,

Bedankt voor het meedenken, maar met jouw aanpassing verandert er niets.

Ik verwacht, althans ik ben zoekende daar naar, dat zodra Selection.cut 'leeg' is,
dat dan de macro moet stoppen en uit de cyclus While.....Wend moet gaan.

En dan pas weer verder kan met de opdracht: "Selection.HomeKey Unit:=wdStory"


Frans

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Macro laten stoppen aan begin document
« Reactie #9 Gepost op: 14 oktober 2020, 12:19:36 »
Citaat
met jouw aanpassing verandert er niets

Bij mij nochtans wel, hoor!
Tussen haakjes: als de macro stopt, kan hij moeilijk daarna weer verder...

Hierbij je bestand met daarin de aangepaste macro, identiek aan mijn eerdere.
Probeer je nog eens?
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline Frans1949

  • Lid
  • *
  • Berichten: 64
  • Geslacht: Man
  • Oplossing.be
Re: Macro laten stoppen aan begin document
« Reactie #10 Gepost op: 14 oktober 2020, 12:51:36 »
 :thumbsup:

Bij mij nu ook. Dit is wat ik zocht.

Ik had On Error Go To einde aan het begin niet geplaatst.

Als er nu nog iemand de melding kan laten verdwenen om op 'NEE' te ontwijken, zou helemaal fantastisch zijn.

Frans

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Macro laten stoppen aan begin document
« Reactie #11 Gepost op: 14 oktober 2020, 15:06:15 »
Met mijn zéér rudimentaire kennis van Word toch nog iets geprobeerd, Frans.
Zie nieuwe bijlage.

Vooraan de procedure wordt ervoor gezorgd dat er geen meldingen worden getoond.
Hij zal dan in theorie telkens opnieuw beginnen.
Daarom houden we verderop de positie bij van de te behandelen selectie. Als deze op zeker ogenblik kleiner is dan de laatst verwerkte ontsnappen we uit de while/wend-loop.

Succes ermee!

"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline Frans1949

  • Lid
  • *
  • Berichten: 64
  • Geslacht: Man
  • Oplossing.be
Re: Macro laten stoppen aan begin document
« Reactie #12 Gepost op: 15 oktober 2020, 13:04:53 »
pitufo,

Dit is precies wat ik bedoelde, echter Word heeft hier toch wat problemen.
Met name met de hoeveelheid rijen.

In mijn voorbeeld hier geplaatst, werkt het uitstekend.

Maar pak ik een test voorbeeld met 275 rijen dat kan ik ondertussen de hond uitlaten.
Word geeft dan ook de melding boven in "NOT RESPONDING", maar gaat wel rustig verder.
Eenmaal klaar staat alles toch wel op de juiste plaats.
Het is de bedoeling om dadelijk bestanden van 1000 tot 1500 rijen te bewerken.

Ik heb in Exel een voorbeeld gevonden, die splits kolom A in kolom B,C,D
In een mum van tijd komt dan in kolom B de voornaam, in kolom C tusenvoegels en kolom D de achternaam.

Nog liever zo ik zoiets gelijk in Acces hebben. Maar ik kan het dan altijd nog naar Acces kopieren.

Mocht ik in Excel er niet uitkomen, mag ik dan op jouw Excel expertise rekenen?

In ieder geval hartelijk dank voor je voorbeelden.

Mvg, Frans

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Macro laten stoppen aan begin document
« Reactie #13 Gepost op: 15 oktober 2020, 14:07:49 »
Dag Frans,

Ik vond het in je korte voorbeeld ook al niet supersnel gaan. 'Application.Screenupdating=False' aan het begin van je procedure toevoegen zou de snelheid enigszins opdrijven, maar vermoedelijk niet om er een wow-gevoel aan over te houden.

Als het voor de echte opdracht iets is waarvoor je naar Excel kan overschakelen, dan is het overduidelijk dat daar de voorkeur mag aan gegeven worden. Als je daar vragen over hebt en ik ben er even niet, dan wordt dat gegarandeerd door iemand anders opgepikt: aan Excel-liefhebbers geen gebrek hier :)
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline Frans1949

  • Lid
  • *
  • Berichten: 64
  • Geslacht: Man
  • Oplossing.be
Re: Macro laten stoppen aan begin document
« Reactie #14 Gepost op: 15 oktober 2020, 15:35:49 »
 :thumbsup:

Nogmaals dank.


Frans

 


www.combell.com