Do Loop

Status
Niet open voor verdere reacties.

jan2007

Gebruiker
Lid geworden
11 jan 2007
Berichten
65
Geacht forum,

De volgende loop wil ik ook laten stoppen als aan de voorwaarde wordt voldaan als de inhoud van de cel #N/B is. Wat moet ik dan invullen op ...........

Range("A30").Select
rij = 12
Do Until Range("B" & rij) <> 5000 Or Range("B" & rij) = ..........
ij = rij + 1
Loop
ActiveCell = "Korting staal"
ActiveCell.Offset(0, 4).Formula = "=prijslijst!k4"
ActiveCell.Offset(0, 8).Formula = "=SUM(G12:G" & rij - 1 & ")*e30/100"

Mvgr

Jan 2007
 
Code:
... Range("B" & rij) = CVErr(xlErrNA)

Wigi
 
Code:
... Range("B" & rij) = CVErr(xlErrNA)

Wigi

Dag Wigi,

Dank, ik krijg echter een foutmelding "Typen komen niet overeen"

Range("A30").Select
rij = 12
Do Until Range("B" & rij) <> 5000 Or Range("B" & rij) = CVErr(xlErrNA)
rij = rij + 1
Loop
ActiveCell = "Korting staal"
ActiveCell.Offset(0, 4).Formula = "=prijslijst!k4"
ActiveCell.Offset(0, 8).Formula = "=SUM(G12:G" & rij - 1 & ")*e30/100"

Wat doe ik niet goed?

mvgr

Jan2007
 
In welke regel staat de aangegeven fout? M.a.w. als de code stopt, welke regel wordt dan geel gemarkeerd?
 
Rij moet als Long aangemaakt zijn.

Bovendien, gebruik eens:

Code:
Sub jan()
    Dim rij As Long
    Range("A30").Select
    rij = 12
    On Error Resume Next
    Do Until Range("B" & rij) <> 5000 Or WorksheetFunction.IsNA(Range("B" & rij)) = True
        rij = rij + 1
    Loop
    On Error GoTo 0
    ActiveCell = "Korting staal"
    ActiveCell.Offset(0, 4).Formula = "=prijslijst!k4"
    ActiveCell.Offset(0, 8).Formula = "=SUM(G12:G" & rij - 1 & ")*e30/100"
End Sub

Wigi
 
Rij moet als Long aangemaakt zijn.

Bovendien, gebruik eens:

Code:
Sub jan()
    Dim rij As Long
    Range("A30").Select
    rij = 12
    On Error Resume Next
    Do Until Range("B" & rij) <> 5000 Or WorksheetFunction.IsNA(Range("B" & rij)) = True
        rij = rij + 1
    Loop
    On Error GoTo 0
    ActiveCell = "Korting staal"
    ActiveCell.Offset(0, 4).Formula = "=prijslijst!k4"
    ActiveCell.Offset(0, 8).Formula = "=SUM(G12:G" & rij - 1 & ")*e30/100"
End Sub

Wigi

Wigi,

Rij as Long gedeclareerd en je code "Sub jan" uitgeprobeerd. Ik krijg nu geen foutmelding meer, maar de loop stopt niet als de celinhoud #N/B is.

mvgr

Jan2007
 
Hang dan maar eens je bestandje (versimpeld en zonder opmaak e.d.) bij. Eerst zippen.
 
Ik kan het probleem op dit moment niet verhelpen. Straks of morgen nog eens proberen.
 
Geacht forum,

De volgende loop wil ik ook laten stoppen als aan de voorwaarde wordt voldaan als de inhoud van de cel #N/B is. Wat moet ik dan invullen op ...........

Range("A30").Select
rij = 12
Do Until Range("B" & rij) <> 5000 Or Range("B" & rij) = ..........
ij = rij + 1
Loop
ActiveCell = "Korting staal"
ActiveCell.Offset(0, 4).Formula = "=prijslijst!k4"
ActiveCell.Offset(0, 8).Formula = "=SUM(G12:G" & rij - 1 & ")*e30/100"

Mvgr

Jan 2007

Hoi
de error wordt overgeslagen door “On Error Resume Next” dus dan stop die ook niet

probeer hier iets mee

For Each c In [B12:B5000]
If IsError(c.Value) = True Then c.Select: Exit Sub
Next c

Gr eric
 
Hoi
de error wordt overgeslagen door “On Error Resume Next” dus dan stop die ook niet

probeer hier iets mee

For Each c In [B12:B5000]
If IsError(c.Value) = True Then c.Select: Exit Sub
Next c

Gr eric

Er moet ook gestopt worden als er geen 5000 in de cel staat. Probeer dat er ook eens in te zetten Eric.

Wigi
 
Er moet ook gestopt worden als er geen 5000 in de cel staat. Probeer dat er ook eens in te zetten Eric.

Wigi

For Each c In [B12:B5000]
if Isempty(c) or c.value = "" then exit for (breekpunt voor laatste lege cel, of om iets in te vullen)
if c.Value <> 5000 then exit for (of doe iets)
If IsError(c.Value) = True Then c.Select: Exit Sub (óf doe iets)
Next c

PS. je bent een druk baasje he Wigi? zie je naam overall.

gr eric
 
Laatst bewerkt:
Dag Eric,

Waarom in rij B niet gewoon 0 gezet in plaats van #N/B? Dan werkt het wel.

Axel.
 
Dag Eric,

Waarom in rij B niet gewoon 0 gezet in plaats van #N/B? Dan werkt het wel.

Axel.

hij heeft een formule in de cel gezet die een foutmelding genereerd is dan dus N/B
ik weet iik niet waarom dat is maar hij vraagt ik draai simpel
 
Eric

als ik je code uitvoer

Code:
Sub lus()
For Each c In [B12:B5000]
    If IsEmpty(c) Or c.Value = "" Then Exit For ' (breekpunt voor laatste lege cel, of om iets in te vullen)
    If c.Value <> 5000 Then Exit For ' (of doe iets)
    If IsError(c.Value) = True Then c.Select: Exit Sub ' (óf doe iets)
Next c
End Sub

Krijg ik een Type mismatch error. Daar zat ik ook al mee te worstelen, vandaar dat er nog geen antwoord was...

Wigi
 
Sorry Eric, moest ik aan Jan vragen. Bij deze.

Dag Jan,

Waarom in rij B niet gewoon 0 gezet in plaats van #N/B? Dan werkt het wel.

Axel.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan