[VBA] Do while (er nog tekst is) loop

Pagina: 1
Acties:
  • 131 views sinds 30-01-2008
  • Reageer

  • killerflappy
  • Registratie: Februari 2002
  • Laatst online: 29-08-2021
Ben een groentje in VBA. Dit is geen script request.

Het volgende is er aan de hand.

Probeer een simpele Do While te maken. Die er als volgt uitziet.


----------------------------------------
code
code
code
do while (er nog tekst is)
In deze code worden er bewerkingen aan de tekst verricht.
Vervolgens komt de cursor onder een tekst te staan en moet hij de bewerkingen opnieuw uitvoeren.
Loop
code
code
code
----------------------------------------

Ik moet dus aangeven dat de code moet worden herhaald zolang er nog tekst onder de cursor staat. Kan iemand mij op weg helpen?

  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 14:25

The Eagle

I wear my sunglasses at night

Zal vast wel ergens een functie zijn als "do while noet EOF" (End Of File), of "Do while not EOL (End Of Line). Zoek eens op internet op VBA Command reference :)

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)


  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05-2025

GX

Nee.

code:
1
2
3
4
do
..
..
while not eof(string arg)

Vermoedelijk

  • killerflappy
  • Registratie: Februari 2002
  • Laatst online: 29-08-2021
GX schreef op 13 augustus 2004 @ 12:32:
code:
1
2
3
4
do
..
..
while not eof(string arg)

Vermoedelijk
Hiermee gaat ie ook als maar door.

Is het niet mogelijk om hem te laten stoppen zodra hij bij de laatst pagina is gearriveerd?

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-05 16:53
Welke cursor verplaats je dan ? Waar in/op/door bevindt zich de tekst die je moet bewerken ?

Vind je vraagstelling zeer vaag.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • killerflappy
  • Registratie: Februari 2002
  • Laatst online: 29-08-2021
farlane schreef op 13 augustus 2004 @ 19:44:
Welke cursor verplaats je dan ? Waar in/op/door bevindt zich de tekst die je moet bewerken ?

Vind je vraagstelling zeer vaag.
Hieronder vind je de code:


Sub Pakbonnen()
'
' Pakbonnen Macro
' Macro opgenomen op 13-8-2004 door db1
' Selecteer 7 regels verwijderen
Selection.MoveDown Unit:=wdLine, Count:=7, Extend:=wdExtend
Selection.TypeBackspace
' 14 regels naar beneden
Selection.MoveDown Unit:=wdLine, Count:=14
-------------------------------------------------------------------------------------
' Selecteer 11 regels verwijderen
Selection.MoveDown Unit:=wdLine, Count:=11, Extend:=wdExtend
Selection.TypeBackspace
' 62 regels naar beneden
Selection.MoveDown Unit:=wdLine, Count:=62
' Selecteer 11 regels verwijderen
Selection.MoveDown Unit:=wdLine, Count:=11, Extend:=wdExtend
Selection.TypeBackspace
' Selecteer 60 regels verwijderen
Selection.MoveDown Unit:=wdLine, Count:=60
--------------------------------------------------------------------------------------
End Sub


Hetgeen dat tussen de stippellijnen staat moet herhaald worden tot er geen test meer is.

[ Voor 6% gewijzigd door killerflappy op 13-08-2004 20:39 ]


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-05 16:53
Dan moet je dus testen of je selectie tekst bevat, check je (Excel?) vba docs hoe je dat zou moeten doen.

BTW Mag ik ff aankaarten dat ik het behoorlijk ranzige code vind. ?

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Verwijderd

problematische wordcode, waar niet veel suggesties voor gegeven kunnen worden zonder de details te kennen. je kan onderstaand proberen, maar als het aantal lijntjes niet juist uitkomt loopt het alsnog fout:

do
'jouw code tss de stippellijnen
loop until selection.range=activedocument.bookmarks("\endofdoc").range

of de voorwaarde bovenaan de loopp zetten als het ook mogelijk is dat de tekst in de loop helemaal niet in het document voorkomt.

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

MoveDown geeft de verplaatsing terug. Dus ...
code:
1
2
3
       ...BLA
       lMoveCount=selection.movedown(wdline,60)
Loop Until lMoveCount=0

en ja, problematisch is een mooi woord hiervoor.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland

Pagina: 1