Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

VBA als cel "" is maar wel een formule bevat then

1,968 views
Skip to first unread message

gespeck

unread,
Oct 16, 2009, 11:26:58 AM10/16/09
to
Goedendag,
In onderstaande deel van een macro loop ik tegen het probleem aan dat
de cel die leeg is, wel voorzien is van een formule.
Doordat de formule er in staat werkt het = "" of <> "" niet.
Wie weet een oplossing?
Alvast hartelijk bedankt.


If Range("Blad1!A40") = 4 Then
If Sheets("data").Range("E" & i) <> "" Then
If Sheets("data").Range("F" & i) = "Niet gevonden" Or
_
Sheets("data").Range("F" & i) = "" Then
Sheets("data").Range("F" & i) = InputBox("Vul hier
de code of tekst in")
End If
End If
End If

Groeten
Gespeck

]-[oRus

unread,
Oct 16, 2009, 2:02:52 PM10/16/09
to
"gespeck" <ges...@hotmail.com> schreef in bericht
news:f578770e-6c24-4526...@o10g2000yqa.googlegroups.com...


Probeer eens met IsEmpty(.Range(...))

]-[oRus

gespeck

unread,
Oct 16, 2009, 2:57:14 PM10/16/09
to
Helaas dit werkt ook niet

Ik heb als test onderstaande geprobeerd op een cel die leeg is maar
wel een formule bevat en op een cel die geen formule bevat.
Op de cel met formule loopt hij gewoon door en bij de cel zonder
formule krijg ik wel de msgbox te zien

If IsEmpty(Range("F4")) Then

MsgBox ("Leeg")
End If

jan

unread,
Oct 16, 2009, 3:48:36 PM10/16/09
to
gespeck,

Zo wellicht:

If Len(Range("F4").Value)>0 Then
MsgBox "F4 is niet leeg"
End If

Jan


]-[oRus

unread,
Oct 16, 2009, 6:19:31 PM10/16/09
to
"gespeck" <ges...@hotmail.com> schreef in bericht
news:18109ed3-1744-4f94...@x37g2000yqj.googlegroups.com...


Dat is een te verwachten reactie.
Het is me niet meer duidelijk wat je nu wilde. Het ging er toch om om te
testen of een cel echt leeg was? Anders geldt ="" gewoon. Dan test je op het
resultaat van de inhoud.

]-[oRus


gespeck

unread,
Oct 17, 2009, 3:33:14 AM10/17/09
to
Jan, helaas werkt ook jouw oplossing niet
Ik zal proberen uit te leggen wat ik bedoel
In kolom A staan in de rijen 3 t/m 50 een formule zoals (=ALS(Blad1!
B10)="";"";Blad1!B10) die een waarde uit een ander tabblad ophaalt.
In kolom F staat een Vert.Zoeken Formule die gebaseerd is op kolom A
maar de waarde uit een extern bestand ophaalt.

Nu wil ik met een For i = 3 to 50 controleren of er daadwerkelijk een
tekst in Kolom F staat als er ook in Kolom A een waarde op dezelfde
rij staat.
Doordat hij een formule ook als niet "" beschouwd kan ik helaas niet
controleren of er werkelijk een tekst staat of dat er alleen een
formule instaat.

Het lijkt erop dat ik dan eerst alle teksten als waarde moet gaan
plakken. Helaas wordt dan de omschrijving niet meer aangepast als ik
in Blad1 de gegevens wijzigt.

Ik hoop dat mijn bedoeling nu duidelijk is.

Groeten

Gespeck

Krijn

unread,
Oct 17, 2009, 3:45:44 AM10/17/09
to
Ik heb het volgende getest:
A1: =ALS(C1="","",C1)
B1: = ALS(A1="","A1=Leeg","A1= Niet Leeg")
Resultaat in B1 (als C1 leeg is) : A1=Leeg
B2: = ALS(ISLEEG(A1),"A1=Leeg","A1=Niet Leeg")
Resultaat in B1 (als C1 leeg is) : A1=Niet Leeg
Dat betekent dat de functie ISLEEG niet voldoet als er een formule in
staat.(Veld B2)
Als A1 expliciet gevuld wordt met de waarde "" dan werkt de functie in B1

"gespeck" <ges...@hotmail.com> schreef in bericht

news:18109ed3-1744-4f94...@x37g2000yqj.googlegroups.com...

Krijn

unread,
Oct 17, 2009, 4:09:26 AM10/17/09
to
Deze VBA code (in een module) werkt ook perfect:
Public Sub TestOpLeeg()
For i = 1 To 5
If Cells(i, 1).Value = "" Then
Cells(i, 4).Value = "Leeg"
Else
Cells(i, 4).Value = "Niet Leeg"
End If
Next
End Sub

"Krijn" <kjvdri...@tiscali.nl> schreef in bericht
news:emLmS3vT...@TK2MSFTNGP04.phx.gbl...

gespeck

unread,
Oct 19, 2009, 1:09:18 PM10/19/09
to
Krijn bedankt,

Het verschil zit hem in de manier van opbouw. Als ik zeg <> "" dan
werkt deze niet.
Ik heb de waarde andersom ingezet zoals je ook in jouw macro had
gedaan
= "" then goto 2

If Range("Blad1!A40") = 2 Then
For i = 3 To 47
If Cells(i, 1).Value = "" Then GoTo 2
If Cells(i, 7).Value = "" _
Or Cells(i, 7).Value = "niet aanwezig" Then
Cells(i, 7).Value = InputBox(("Vul hier je gegevens in") &
vbNewLine _
& vbNewLine & ("Volgens nr: ") & vbNewLine & Cells(i,
5).Value)
End If
2
Next
End If

Groeten
Gespeck

0 new messages