Het probleem: bij mij op m'n werk gebruiken we word-macro's om de opmaak van onze facturen recht te breien.
In deze macro zit een routine die emballageregels uit de factuur moet verwijderen. Dit doet hij door te zoeken op **, want achter elke emballage staat **. Als hij dus ** kan vinden dan wordt de regel geselecteerd. Als nu in deze selectie ook 0,00 gevonden kan worden (gratis emballage) dan mag de regel verwijderd worden, en wordt er opnieuw gezocht naar **, enz.
Nu wil het geval dat emballage ook wel eens niet gratis is, en zolang emballage gratis is gaat het wel goed, maar het probleem treedt op als emballage bijvoorbeeld 10,00 kost, want dan vindt de macro wel 0,00 en wordt de regel verwijderd.
Ik dacht dus slim te zijn en i.p.v. op "0,00" naar " 0,00" te laten zoeken, maar dat werkt niet omdat er onderaan in de macro de else statement niet is ingevuld.
Dus kan hij "**" en " 0,00" vinden dan gaat het goed, en wordt de regel verwijderd.
Maar als er "**" gevonden wordt maar geen " 0,00" dan vliegt de macro in een loep.
Iemand een idee wat ik bij de else conditie moet zetten om hem op te laten houden met zoeken naar " 0,00" en naar de volgende "**" te laten zoeken?
Ik ben zelf niet zo thuis in dat VBA gedoe, ik kan de code wel teruglezen maar zelf programmeren lukt me niet zo in VBA...
In deze macro zit een routine die emballageregels uit de factuur moet verwijderen. Dit doet hij door te zoeken op **, want achter elke emballage staat **. Als hij dus ** kan vinden dan wordt de regel geselecteerd. Als nu in deze selectie ook 0,00 gevonden kan worden (gratis emballage) dan mag de regel verwijderd worden, en wordt er opnieuw gezocht naar **, enz.
Nu wil het geval dat emballage ook wel eens niet gratis is, en zolang emballage gratis is gaat het wel goed, maar het probleem treedt op als emballage bijvoorbeeld 10,00 kost, want dan vindt de macro wel 0,00 en wordt de regel verwijderd.
Ik dacht dus slim te zijn en i.p.v. op "0,00" naar " 0,00" te laten zoeken, maar dat werkt niet omdat er onderaan in de macro de else statement niet is ingevuld.
Dus kan hij "**" en " 0,00" vinden dan gaat het goed, en wordt de regel verwijderd.
Maar als er "**" gevonden wordt maar geen " 0,00" dan vliegt de macro in een loep.
Iemand een idee wat ik bij de else conditie moet zetten om hem op te laten houden met zoeken naar " 0,00" en naar de volgende "**" te laten zoeken?
Ik ben zelf niet zo thuis in dat VBA gedoe, ik kan de code wel teruglezen maar zelf programmeren lukt me niet zo in VBA...
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| Do While .Execute(FindText:="**", Wrap:=wdFindStop, Forward:=True) = True
ActiveDocument.Bookmarks("\line").Select
Set srcRange = Selection.Range
srcRange.Find.ClearFormatting
With srcRange.Find
.Replacement.ClearFormatting
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchAllWordForms = False
.MatchSoundsLike = False
If .Execute(FindText:="0,00", Wrap:=wdFindStop, Forward:=True) Then
Selection.InsertBreak Type:=wdLineBreak
Else
End If
End With
Loop |
Microsoft Surface Pro 6 | Samsung Galaxy S21FE | XBOX Series X