• 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.

Typen komen niet overeen Fout 13

Status
Niet open voor verdere reacties.

Hoornvan

Terugkerende gebruiker
Lid geworden
10 feb 2002
Berichten
3.333
Hallo helpers,

In de volgende code zit een foutje - Typen komen niet overeen fout 13
Code:
[COLOR="Red"]If Range("K11:L31") = "" Then[/COLOR]
MsgBox "U heeft niets ingevuld", vbOKOnly, "Lege cellen"
Exit Sub
End If
De rode regel geeft de fout, doe ik enkel K11 of L31 dan komt msgBox wel.
Als in het berijk K11:L31 niets is ingevult moet de msgBox komen.
 
Hoornvan, Je probeert een heel bereik uit te vragen, en dat kan niet (vandaar dat het met slechts 1 cel wél lukte). Maak gebruik van de Worksheetfunction.Count of CountIf functie van VBA. Daarmee vraag je uit hoeveel cellen je gevuld hebt.

Groet, Leo

[EDIT] voor 't gemak nog maar ff de syntax....
Code:
If Worksheetfunction.Count(Range("K11:L31")) = 0 Then
 
Laatst bewerkt:
Ginger,

Dank je wel voor je antwoord.
Ik ga in de help van Excel kijken of het me gaat lukken.
 
Je kan de suggestie van Ginger gebruiken, eventueel een CountA ipv een count functie, afhankelijk van je behoeften (zie Excel help voor de verschillen met Count)

Je kan ook volgende syntax gebruiken daarvoor in VBA:

Code:
Evaluate("COUNTA(A1:B6)")

Het kan zijn dat Count of CountA toch niet de gewenste resultaten opleveren voor jouw probleem, dan kan je ook een VBA functie schrijven die aangepast is aan jouw probleem. Volgende voorbeeldcode geeft een TRUE waarde wanneer geen enkele cel is ingevuld (hij mag wel een formule bevatten, maar als de uitkomst van de formule "" is is de functiewaarde TRUE), en FALSE wanneer één of meerdere cellen in het bereik een waarde heeft (hetzij via een formule of een handmatige) of ook een foutmelding.
PS Het bereik om te checken moet niet aaneengesloten zijn.

Code:
Function EmptyRange(rngToCheck As Range) As Boolean
Dim A As Range
Dim R As Range

For Each A In rngToCheck.Areas
    For Each R In A
        If IsError(R) Then
            EmptyRange = False
            Exit Function
        End If
        If Len(R) = 0 Then
            EmptyRange = True
        Else
            EmptyRange = False
            Exit Function
        End If
    Next R
Next A

End Function

Voorbeeldaanroep:

Code:
Debug.Print EmptyRange(Sheets(1).Range("A1:B6,C10:C12"))
 
Finch,

Dank je wel voor de code.
De code van Ginger werkt voor mij goed.
Deze code sla ik op en kan hem misschien nog wel eens gebruiken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan