Filter MsgBox

Status
Niet open voor verdere reacties.

rickweyers93

Gebruiker
Lid geworden
12 nov 2020
Berichten
8
Hallo allemaal,

ik heb een macro opgenomen om data te filteren als er na het filteren in kolom I(9) een 0 overblijft dan msgbox Fout ( dit werkt)
maar als er na het filteren niks meer overblijft ( I is leeg) dan wil ik msgbox geen fout. als de sheet leeg is dan geeft hij ook msgbox fout aan ipv geen fout.

Private Sub CommandButton15_Click()



ActiveSheet.Range("$A$1:$Q$2000").AutoFilter Field:=11, Criteria1:="82"
ActiveSheet.Range("$A$1:$Q$2000").AutoFilter Field:=8, Criteria1:=Array( _
"220", "41", "740", "="), Operator:=xlFilterValues
ActiveSheet.Range("$A$1:$Q$2000").AutoFilter Field:=7, Criteria1:=Array("1" _
, "2", "3", "4", "5"), Operator:=xlFilterValues
ActiveSheet.Range("$A$1:$Q$2000").AutoFilter Field:=9, Criteria1:="0"




If Application.CountIf(Range("I1:I2000"), "0") Then
MsgBox "Fout"
Range("J1:J2000").Font.ColorIndex = 3

ElseIf Application.CountIf(Range("I1:I2000"), "") Then
MsgBox "Geen fout"



End If
End Sub

alvast bedrankt.

groetjes,

amateur vba er
 
Laatst bewerkt:
En nu nog even tussen 'code tags' plaatsen.
 
PHP:
ActiveSheet.Range("$A$1:$Q$2000").AutoFilter Field:=11, Criteria1:="82"
ActiveSheet.Range("$A$1:$Q$2000").AutoFilter Field:=8, Criteria1:=Array( _
"220", "41", "740", "="), Operator:=xlFilterValues
ActiveSheet.Range("$A$1:$Q$2000").AutoFilter Field:=7, Criteria1:=Array("1" _
, "2", "3", "4", "5"), Operator:=xlFilterValues
ActiveSheet.Range("$A$1:$Q$2000").AutoFilter Field:=9, Criteria1:="0"




If Application.CountIf(Range("I1:I2000"), "0") Then
MsgBox "Fout"
Range("J1:J2000").Font.ColorIndex = 3

ElseIf Application.CountIf(Range("I1:I2000"), "") Then
MsgBox "Geen fout"



End If
End Sub
 
thanks voor de tip! helemaal geen rekening mee gehouden om hem tussen code tags te plaatsen
 
Misschien zoek je naar deze oplossing:

Code:
Sub test()
Dim lng As Long
ActiveSheet.Range("$A$1:$Q$2000").AutoFilter Field:=11, Criteria1:="82"
ActiveSheet.Range("$A$1:$Q$2000").AutoFilter Field:=8, Criteria1:=Array( _
"220", "41", "740", "="), Operator:=xlFilterValues
ActiveSheet.Range("$A$1:$Q$2000").AutoFilter Field:=7, Criteria1:=Array("1" _
, "2", "3", "4", "5"), Operator:=xlFilterValues
ActiveSheet.Range("$A$1:$Q$2000").AutoFilter Field:=9, Criteria1:="0"

lng = Application.Subtotal(2, Range("$I$2:$I$2000"))
If lng = 0 Then MsgBox "Geen fout"
If lng > 0 Then MsgBox "Fout"

End Sub

Luc
 
Een voorbeeldbestand is altijd wel prettig. Met iets meer structuur in de code.

Code:
Sub VenA()
  With Cells(1).CurrentRegion
    .AutoFilter 7, "<6"
    .AutoFilter 8, Array("41", "220", "740", "="), xlFilterValues
    .AutoFilter 9, 0
    .AutoFilter 11, 82
    MsgBox IIf(.Columns(1).SpecialCells(12).Count > 1, "", "geen ") & "fout"
  End With
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan