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

Regel If Range inkorten

Status
Niet open voor verdere reacties.

fwalraven

Gebruiker
Lid geworden
30 apr 2006
Berichten
191
Hallo,

Is het mogelijk om de regel: If Range........... in tekorten?
Msgbox mag alleen verschijnen als in alle benoemde cellen alleen X aanwezig is.

Staat er bv in 1 cel of meerdere cellen een waarde dan mag de msgbox niet verschijnen.
zie bijlage.

Frans
 

Bijlagen

In je huidige code staat dat de MsgBox verschijnt als 1 van de cellen leeg is.
Dus, wat wil je precies?
Wat je hier zegt of wat in de huidige code staat?
Maar ik denk dat dit je wel een idee geeft:
Code:
Sub Macro2()
    For Each cell In Range("J2:J58")
        Select Case cell.Value
            Case "X", "Meldingsverslag"
            Case Else
                MsgBox "VUL EERST AFNAME_ID IN!", , cell.Address(0,0)
                Exit Sub
                Exit For
        End Select
    Next
End Sub
 
Laatst bewerkt:
Code:
WorksheetFunction.Count([J1:J58])
telt alleen aantal getallen in jouw range
 
Laatst bewerkt:
Als je nog niet bekend bent met de schrijfwijze Range("J2:J58") kun je beter eerst een basiscursus Excel volgen.
De rest komt dan wel later.
 
@Edmoor

Dit is het idee.
Maar deze code werkt precies verkeerd om.
De melding nu verschijnt als als bv in J5 een willekeurig getal is geplaatst.

De bedoeling is dat als alle cellen "X" of "Meldingsverslag" zijn, dat dan de melding verschijnt.

Frans

Code:
Sub Macro2()
    For Each cell In Range("J2:J58")
        Select Case cell.Value
            Case "X", "Meldingsverslag"
            Case Else
                MsgBox "VUL EERST AFNAME_ID IN!", , cell.Address(0,0)
                Exit Sub
                Exit For
        End Select
    Next
End Sub
 
Zo dan?
Code:
Sub Macro2()
    m = WorksheetFunction.CountIf(Range("J1:J58"), "Meldingsverslag")
    x = WorksheetFunction.CountIf(Range("J1:J58"), "X")
    If x = 58 - m Then MsgBox "VUL EERST AFNAME_ID IN!"
End Sub
 
Laatst bewerkt:
of:
Code:
sub macro2()
     if WorksheetFunction.Count([J1:J58])>0 then MsgBox "VUL EERST AFNAME_ID IN!"
end sub
 
@Edmoor,

Code verandert in:
Code:
x = WorksheetFunction.CountIf(Range("J1:J58"), "X")
    If x > 50 Then MsgBox "VUL EERST AFNAME_ID IN!"

Werkt ook, want alleen als het aantal "X" groter is dan 50, dan is er niets ingevuld.


@silvester-ponte

> teken verandert in =, werkt dan goed.
Anders precies anders om

Code:
If WorksheetFunction.Count([J1:J58]) = 0 Then MsgBox "VUL EERST AFNAME_ID IN!"

Beiden bedankt voor jullie info.

Frans
 
VBA-benadering:

Code:
Sub M_snb()
  if range("J1:J58").specialcells(2).count<>range("J1:J58").cells.count then msgbox "onvolledig"
End Sub
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan