MsgBox met locatie cellen met CircleInvalid

Status
Niet open voor verdere reacties.

Linda927

Gebruiker
Lid geworden
8 sep 2015
Berichten
14
Hallo,

Ik ben redelijk nieuw in het gebruik van VBA. Ik heb een Macro gemaakt, maar ik wil graag de laatste mogelijke fouten uitsluiten. Zo wil ik middels gegevensvalidatie slechts een paar verschillende waarden in een bepaalde kolom toestaan.

Ik ben nu zo ver dat waarden die afwijken van de lijst uit de gegevensvalidatie automatisch omcirkeld worden (CircleInvalid).

Nu wil ik graag dat er een Messagebox komt wanneer er afwijkende waarden zijn / cellen zijn omcirkeld. Deze msgbox moet aangeven:

1 x
Er zijn afwijkende cellen gevonden

OF

Voor iedere cel:
In cel 'Locatie' is een afwijkende cel gevonden

OF

1x
Er zijn "AANTAL" afwijkende cellen gevonden

Ik wil graag dat er niets gebeurt wanneer er geen afwijkende waarden zijn / cellen zijn omcirkeld.
Ik heb een voorbeeldbestandje toegevoegd. Gaat om een bestand tot 10000 regels.

Kan iemand mij helpen? Alvast bedankt voor de genomen moeite!


Groet Linda
 

Bijlagen

Hallo Linda,

Zo iets?
Code:
Sub hsv()
Dim rRng As Range, c As Range, melding As String
With Sheets("blad1")
 .ClearCircles
 Set rRng = .Range(.Cells(1), .Cells(1).End(xlDown))
  With rRng
    With .Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=SUBLABELS"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
  End With
        .CircleInvalid
        For Each c In rRng.SpecialCells(xlCellTypeAllValidation)  'of -4174
           If Not c.Validation.Value Then
              melding = melding & vbLf & "cel " & c.Address(0, 0) & "."
              y = y + 1
           End If
        Next
    If y > 0 Then MsgBox melding
End With
End Sub
 
Hoi Harry,

Ja dat is fantastisch! Super bedankt. Nog wel 1 aanvullende vraag:

Als er een melding wordt gegeven en dus afwijkende cellen zijn gevonden, dan wil ik graag dat de macro na de melding doorgaat naar 'Einde'.
Wanneer er geen melding wordt gegeven moet deze niet doorgaan naar Einde.

Waar moet ik 'GoTo Einde' dan neerzetten?

Ik heb het nu geprobeerd maar ik krijg als resultaat óf geen melding óf hij gaat altijd door naar Einde.

Wat doe ik verkeerd ? :confused:

Groet Linda
 
Hoi Linda,

Daar is in dit geval geen "Goto einde" voor nodig.

Het laatste stukje van de code.
Code:
             End If
         Next
    If y > 0 Then
      MsgBox melding
    [COLOR=#FF0000]  '........hier je vervolgcode[/COLOR]
    End If
 End With
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan