Range.FindNext, méthode (Excel)
Continue une recherche commencée avec la méthode Trouver. Elle recherche la cellule suivante qui correspond aux mêmes critères et renvoie un objet Range qui la représente. Elle n’affecte ni la sélection ni la cellule active.
expression.FindNext (Après)
expression Variable représentant un objet Range.
Nom | Requis/Facultatif | Type de données | Description |
---|---|---|---|
After | Facultatif | Variant | Cellule après laquelle vous souhaitez commencer la recherche. Cela correspond à la position de la cellule active lorsqu’une recherche est effectuée à partir de l’interface utilisateur. Notez que Après doit être une cellule unique dans la plage. |
La recherche commence après cette cellule ; la cellule spécifiée n’est pas incluse dans la recherche tant que la méthode n’englobe pas cette cellule. Si vous ne spécifiez pas cet argument, la recherche commence après la cellule en haut à gauche de la plage. |
Plage
Lorsque la recherche atteint la fin de la plage de recherche spécifiée, elle recommence au début de la plage. Pour arrêter une recherche lorsqu’elle recommence au début, enregistrez l’adresse de la première cellule trouvée, puis testez chaque adresse de cellule trouvée successive avec cette adresse enregistrée.
Cet exemple recherche toutes les cellules de la plage A1:A500 de la feuille de calcul 1 qui contiennent la valeur 2 et remplace la valeur de la cellule entière par 5. Autrement dit, si les valeurs 1234 et 99299 contiennent 2, les deux valeurs de cellule deviendront 5.
Sub FindValue()
Dim c As Range
Dim firstAddress As String
With Worksheets(1).Range("A1:A500")
Set c = .Find(2, lookin:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Value = 5
Set c = .FindNext(c)
Loop While Not c Is Nothing
End If
End With
End Sub
Cet exemple recherche toutes les cellules des quatre premières colonnes qui contiennent une constante X et masque la colonne qui contient la constante X.
Sub Hide_Columns()
'Excel objects.
Dim m_wbBook As Workbook
Dim m_wsSheet As Worksheet
Dim m_rnCheck As Range
Dim m_rnFind As Range
Dim m_stAddress As String
'Initialize the Excel objects.
Set m_wbBook = ThisWorkbook
Set m_wsSheet = m_wbBook.Worksheets("Sheet1")
'Search the four columns for any constants.
Set m_rnCheck = m_wsSheet.Range("A1:D1").SpecialCells(xlCellTypeConstants)
'Retrieve all columns that contain an X. If there is at least one, begin the DO/WHILE loop.
With m_rnCheck
Set m_rnFind = .Find(What:="X")
If Not m_rnFind Is Nothing Then
m_stAddress = m_rnFind.Address
'Hide the column, and then find the next X.
Do
m_rnFind.EntireColumn.Hidden = True
Set m_rnFind = .FindNext(m_rnFind)
Loop While Not m_rnFind Is Nothing And m_rnFind.Address <> m_stAddress
End If
End With
End Sub
Cet exemple recherche toutes les cellules des quatre premières colonnes qui contiennent une constante X et affiche la colonne qui contient la constante X.
Sub Unhide_Columns()
'Excel objects.
Dim m_wbBook As Workbook
Dim m_wsSheet As Worksheet
Dim m_rnCheck As Range
Dim m_rnFind As Range
Dim m_stAddress As String
'Initialize the Excel objects.
Set m_wbBook = ThisWorkbook
Set m_wsSheet = m_wbBook.Worksheets("Sheet1")
'Search the four columns for any constants.
Set m_rnCheck = m_wsSheet.Range("A1:D1").SpecialCells(xlCellTypeConstants)
'Retrieve all columns that contain X. If there is at least one, begin the DO/WHILE loop.
With m_rnCheck
Set m_rnFind = .Find(What:="X", LookIn:=xlFormulas)
If Not m_rnFind Is Nothing Then
m_stAddress = m_rnFind.Address
'Unhide the column, and then find the next X.
Do
m_rnFind.EntireColumn.Hidden = False
Set m_rnFind = .FindNext(m_rnFind)
Loop While Not m_rnFind Is Nothing And m_rnFind.Address <> m_stAddress
End If
End With
End Sub
Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.