• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

VBA Excel 2X if then binnen in combinatie met or / and

Status
Niet open voor verdere reacties.

ClickandKnow

Gebruiker
Lid geworden
23 apr 2010
Berichten
82
Nu heb ik zelf een uitdaging:

Ik wil hetvolgende:

Ik begin op een regel en cel die ik selecteer.
Ik wil controleren of deze cel niet leeg is.
Als deze niet leeg is moet er gecontroleerd worden of 1 cel links van de huidige cel leeg is en of 1 cel 4 cellen links van van de niet lege cel gevuld is. als 1 van de twee cellen niet leeg is kan ik door met de volgende cel controleren maar als beide cellen leeg zijn moet er een foutmelding komenmet een oke knop

De onderstaande code gaat gewoon door zonder de fout op te merken

For i = 1 To 19
If ActiveCell.Offset(1, 0).Select <> "" Then
If ActiveCell.Offset(0, 1) = "" And ActiveCell.Offset(0, 4) = "" Then
MsgBox "U bent vergeten ... in te vullen", vbOKOnly
End

End If
End If
Next i

Wie kan mij helpen?
 
Beste ClickandKnow ;)

Moet de eerste Then niet weg en vervangen worden door And ?

Groetjes Danny. :thumb:
 
Hallo danny147,

Bedankt voor je (re)actie!

Maar....eerder al geprobeerd en werkt niet

Ik had:

For i = 1 To 19

If ActiveCell.Offset(1, 0).Select <> "" And ActiveCell.Offset(0, 1) = "" And ActiveCell.Offset(0, 4) = "" Then
MsgBox "U bent vergeten een grootboek of artikelnummer in te vullen", vbOKOnly
End

End If
Next i

Maar hij geeft op de eerste regel al een foutmelding omdat ik de eerste cel links niet had gevuld maar 4de cel aan de linker zijde is gevuld met een cijfer dus hoort de foutmelding juist niet voor te komen...

Ook onderstaande gebruikt wat me beter lijkt is i.v.m. ( i.v.m. or):

For i = 1 To 19

If ActiveCell.Offset(1, 0).Select <> "" And ActiveCell.Offset(0, 1) = "" Or ActiveCell.Offset(0, 4) = "" Then
MsgBox "U bent vergeten een grootboek of artikelnummer in te vullen", vbOKOnly
End

End If
Next i

Maar dat werkt ook niet :mad:
 
Val gebruikers niet lastig met meldingen.
Zorg ervoor dat gebruikers pas verder kunnen (een zichtbare knop Vervolg) als alles goed is ingevuld.
Desnoodsskun je met kleuren aangeven welke vakken ingevuld moeten worden en verander je ze van kleur als ze juist zijn ingevuld.

Jouw code loopt met:
Code:
For i = 1 To 19
  If ActiveCell.Offset(i) <> "" And ( ActiveCell.Offset(i, 1) = "" Or ActiveCell.Offset(i, 4) = "") Then MsgBox "U bent vergeten een grootboek of artikelnummer in te vullen in regel" & activecell.offset(i).row, vbOKOnly
Next
 
Hallo ClickandKnow,

Volgens mij zat je met je code ook rechts van de geselecteerde cel te zoeken.
Voor links gebruik je volgens mij negatieve getallen.

Heb zelf de code gekopiëerd en wat aangepast.

Kijk eens of dit is wat je bedoelt,

Succes,:thumb:
Groetjes,
Ger
 
Gecombineerd met je andere vraag:
Code:
Sub controle()
  on error resume next
  knop_visible= [A1:A19].specialcells(2)=[A1:A19] and  [A1:A19].offset(,1).specialcells(2)=[A1:A19].offset(,1) and  [A1:A19].offset(,4).specialcells(2)=[A1:A19].offset(,4)
End Sub
1 regel VBA om 57 cellen te controleren
 
Laatst bewerkt:
@ snb
Ik hang bij wijze van spreken aan je lippen.

Maar waarom heb je die 'end if' er staan.
Er is toch helemaal geen if in je code?

Groetjes,
Ger
 
Zoals je zelf waarschijnlijk al vermoedde moet dit End Sub zijn ;)
 
@gGerritje

Rudi's antwoord kan ik niet verbeteren.
PS. nu snap ik meer van de oorzaak van mijn recente gezichtsvervormingen ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan