|
MÉTHODE RENVOYANT UNE PLAGE
Les méthodes Find, puis FindNext (Suivant)
et FindPrevious (Précédent) permettent de
renvoyer une cellule contenant une valeur précisée, la
recherche se faisaint dans une plage précisée. Si la valeur
n'est pas trouvée, ces méthodes renvoient Nothing.
Les syntaxes sont les suivantes :
- UnePlage.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte) où :
- What est l'élément à trouver.
Obligatoire (les autres paramètres sont facultatifs).
- After est la cellule après laquelle est
commencée la recherche.
- LookIn précise dans quoi rechercher l'élément, xlFormulas, xlValues ou xlComments. A
noter que si vous recherchez une date et que celle-ci est
contenue dans une variable Date, vous devez choisir xlFormulas.
- LookAt précise si la recherche s'effectue
dans la cellule entière (xlWhole) ou non (xlPart).
- SearchOrder indique dans quel sens la recherche
doit se faire, xlByColumns ou xlByRows.
- SearchDirection indique dans quel direction la
recherche doit se faire, prochain (xlNext) ou
suivant (xlPrevious).
- MatchCase doit être égal à True si
vous voulez respecter la casse.
- MatchByte rarement utilisé.
- UnePlage.FindNext(After) où After est
la cellule après laquelle est continué la recherche.
Cette méthode ne peut s'effectuer qu'après une recherche
effectuée avec Find.
- UnePlage.FindPrevious (After) où After est
la cellule après laquelle est continué la recherche.
Cette méthode ne peut s'effectuer qu'après une recherche
effectuée avec Find.
Exemple :
Sub Recherche()
Dim L As Byte, C As Byte
Dim Plage As Range
For L = 1 To 10
For C = 1 To 5
Cells(L, C) = "Colonne " & C
Next C
Next L
Set Plage = Range("A1:E10").Find("Colonne 2")
Plage.Select
Do Until Plage Is Nothing
If MsgBox("Suivant", vbYesNo + vbInformation)
= vbNo Then Exit Do
Set Plage = Range("A1:E10").FindNext(Plage)
Plage.Select
Loop
End Sub
Les méthodes ColumnDifferences et RowDifferences renvoie
une plage dont chaque cellule est différente de la cellule de
comparaison. La syntaxe est la suivante : UnePlage.ColumnDifferences(Comparison),
ou .RowDifferences(Comparison) où Comparison correspond à une
cellule unique que l'on va comparer à la plage UnePlage.
Exemple :
Sub RechercheDifference()
Dim Plage As Range
Range("A1") = "texte A"
Range("A2") = "texte B"
Range("A3") = "texte B"
Range("A4") = "texte A"
Range("A5") = "texte A"
Range("A6") = "texte B"
Range("A7") = "texte B"
Range("A8") = "texte A"
Set Plage = Range("A1:A8").ColumnDifferences(Range("A1"))
Plage.Select
End Sub
La méthode SpecialCells renvoie une plage qui représente
toutes les cellules correspondant au type et à la valeur spécifiés.
La syntaxe est : UnePlage.SpecialCells(Type, Value) où :
| Type (obligatoire) |
Renvoie la
ou les cellules |
| xlCellTypeAllFormatConditions |
de tout format. |
| xlCellTypeAllValidation |
dotées
de critères de validation. |
| XlCellTypeBlanks |
vides. |
| xlCellTypeComments |
contenant des
annotations. |
| xlCellTypeConstants |
contenant des constantes. |
Dans ce cas
vous pouvez renseigner Value : xlErrors, xlLogical,
xlNumbers, xlTextValues. Ces valeurs peuvent s'aditionner. |
| xlCellTypeFormulas |
contenant des formules. |
| xlCellTypeLastCell |
La dernière
de la plage utilisée. |
| xlCellTypeSameFormatConditions |
de format identique. |
| xlCellTypeSameValidation |
dotées
de critères de validation identiques. |
| XlCellTypeVisible |
Toutes les
cellules visibles. |
Exemple :
Sub CelluleSpeciale()
Dim L As Byte, C As Byte
Dim Plage As Range
For L = 1 To 10
For C = 1 To 5
If C < 5 Then
Cells(L, C)
= L & C
Else
Cells(L, C)
= "Texte " & L
End If
Next C
Next L
Columns("C").Hidden = True
With Range("A1").CurrentRegion
Range("G1") = .SpecialCells(xlCellTypeLastCell).Address
Range("G2") = .SpecialCells(xlCellTypeVisible).Address
Range("G3") = .SpecialCells(xlCellTypeConstants,
xlNumbers).Address
Range("G4") = .SpecialCells(xlCellTypeConstants,
xlTextValues).Address
End With
End Sub
|