
Sub cerca()
'
' Macro1 Macro
'
ActiveSheet.Range("$B$5:$H$12").AutoFilter Field:=1, Criteria1:=Range("B3")
ActiveSheet.Range("$B$5:$H$12").AutoFilter Field:=2, Criteria1:=Range("B3")
ActiveSheet.Range("$B$5:$H$12").AutoFilter Field:=4, Criteria1:=Range("B3")
End Sub
|
Option Explicit
Sub cerca()
If Application.WorksheetFunction.CountIf(Range("$B$5:$B$12"), Range("B3").Value) <> 0 Then
ActiveSheet.Range("$B$5:$H$12").AutoFilter Field:=1, Criteria1:=Range("B3")
ElseIf Application.WorksheetFunction.CountIf(Range("$C$5:$C$12"), Range("B3").Value) <> 0 Then
ActiveSheet.Range("$B$5:$H$12").AutoFilter Field:=2, Criteria1:=Range("B3")
ElseIf Application.WorksheetFunction.CountIf(Range("$E$5:$E$12"), Range("B3").Value) <> 0 Then
ActiveSheet.Range("$B$5:$H$12").AutoFilter Field:=4, Criteria1:=Range("B3")
Else
MsgBox "non trovato"
End If
End Sub |
| scossa's web site |
| Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
Sub dovadola()
Dim rng As Range
Dim nRows As Long
Dim vWhat As Variant
Application.ScreenUpdating = False
vWhat = ActiveSheet.Range("B3")
Set rng = ActiveSheet.Range("$B$5:$H$12")
With rng
If .Parent.FilterMode Then
.Parent.AutoFilter.ShowAllData
.Parent.Shapes("Rounded Rectangle 1").DrawingObject.Caption = "cerca"
Else
.Parent.Shapes("Rounded Rectangle 1").DrawingObject.Caption = "mostra tutto"
.AutoFilter Field:=1, Criteria1:=vWhat
If .SpecialCells(xlCellTypeVisible).Rows.Count * .SpecialCells(xlCellTypeVisible).Areas.Count = 1 Then
.AutoFilter Field:=1
.AutoFilter Field:=2, Criteria1:=vWhat
If .SpecialCells(xlCellTypeVisible).Rows.Count * .SpecialCells(xlCellTypeVisible).Areas.Count = 1 Then
.AutoFilter Field:=2
.AutoFilter Field:=4, Criteria1:=vWhat
If .SpecialCells(xlCellTypeVisible).Rows.Count * .SpecialCells(xlCellTypeVisible).Areas.Count = 1 Then
.AutoFilter Field:=4
.Parent.Shapes("Rounded Rectangle 1").DrawingObject.Caption = "cerca"
Application.ScreenUpdating = True
MsgBox "nessuna corrispondenza"
End If
End If
End If
End If
End With
Application.ScreenUpdating = True
Set rng = Nothing
End Sub
|
Questa singola macro funziona inserendo solo le iniziali del nome da cercare:
Sub cerca()
ActiveSheet.Range("$B$5:$H$12").AutoFilter Field:=1, Criteria1:=Range("B3") & "*"
End Sub |
Option Explicit
Option Compare Text
Sub cerca()
If Application.WorksheetFunction.CountIf(Range("$B$5:$B$12"), Range("B3").Value & "*") <> 0 Then
ActiveSheet.Range("$B$5:$H$12").AutoFilter Field:=1, Criteria1:=Range("B3") & "*"
ElseIf Application.WorksheetFunction.CountIf(Range("$C$5:$C$12"), Range("B3").Value & "*") <> 0 Then
ActiveSheet.Range("$B$5:$H$12").AutoFilter Field:=2, Criteria1:=Range("B3") & "*"
ElseIf Application.WorksheetFunction.CountIf(Range("$E$5:$E$12"), Range("B3").Value & "*") <> 0 Then
ActiveSheet.Range("$B$5:$H$12").AutoFilter Field:=4, Criteria1:=Range("B3") & "*"
Else
MsgBox "non trovato"
End If
End Sub |
