Obtenir une liste de cellules correspondantes (Microsoft Excel)
Lorsque Michael effectue une opération « Rechercher tout » dans Excel, le programme affiche utilement une liste de toutes les cellules contenant tout ce qu’il recherche.
Michael aimerait copier cette liste d’adresses de cellules dans une autre feuille de calcul, il se demande donc s’il existe un moyen de copier la liste dans le Presse-papiers afin de pouvoir la coller dans une feuille de calcul.
Il existe plusieurs façons d’accomplir cette tâche, et la plupart d’entre elles impliquent l’utilisation de macros. Avant de passer aux approches macro-basées, cependant, voyons comment vous pouvez accéder aux adresses en utilisant des plages nommées et le gestionnaire de noms:
-
Utilisez FindAll comme auparavant, mais ne fermez pas la boîte de dialogue Rechercher et remplacer.
-
Dans la liste des adresses qui vous sont affichées, faites défiler vers le bas, maintenez la touche Maj enfoncée et cliquez sur la dernière correspondance. Excel sélectionne toutes les cellules correspondantes.
-
Appuyez sur Echap pour fermer la boîte de dialogue Rechercher et remplacer. Les cellules correspondantes sont toujours toutes sélectionnées.
-
Tapez un nom dans la zone Nom (juste à gauche de la barre de formule et juste au-dessus de la cellule A1). Cela crée une plage nommée qui comprend toutes les cellules sélectionnées.
-
Affichez l’onglet Formules du ruban.
-
Cliquez sur l’outil Gestionnaire de noms. Excel affiche la boîte de dialogue du gestionnaire de noms. (Voir la figure 1.)
-
Cliquez sur le nom que vous avez créé à l’étape 4.
-
La liste des cellules se trouvera dans la zone Se réfère à, en bas de la boîte de dialogue.
À ce stade, vous pouvez copier les informations dans la zone Se réfère à et les coller dans ce que vous voulez (y compris une autre feuille de calcul). Vous devrez masser les données un peu après les avoir collées, car la liste n’est que cela: une liste en série d’adresses de cellules.
De toute évidence, cela affecte votre classeur, car il crée une plage nommée. Si vous le faites plusieurs fois, vous aurez plusieurs plages nommées créées.
Cela peut, bien sûr, devenir rapidement fastidieux si vous devez effectuer la tâche assez souvent. C’est là que les macro-solutions entrent en jeu. Voici un exemple de macro qui recherchera une valeur spécifique, puis placera l’adresse de chaque cellule contenant cette valeur dans une autre feuille de calcul.
Sub CellAdressList() Dim c1 As String Dim nxt As String Sheets("Sheet1").Select Range("A1").Select Cells.Find(What:="qrs", After:=ActiveCell, _ LookIn:=xlValues, LookAt:=xlWhole, _ SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False).Activate c1 = ActiveCell.Address Sheets("Sheet2").Select Range("A1").Select Range("A1").Value = c1 Do Until nxt = c1 Sheets("Sheet1").Select Cells.FindNext(After:=ActiveCell).Activate nxt = ActiveCell.Address Sheets("Sheet2").Select ActiveCell.Offset(1, 0).Select ActiveCell.Value = nxt Loop ActiveCell.Value = "" End Sub
La macro fait quelques hypothèses. Tout d’abord, il suppose que vous recherchez des informations sur la feuille de calcul nommée Sheet1. Deuxièmement, il suppose que vous souhaitez que la liste d’adresses soit placée dans la feuille de calcul nommée Sheet2. Enfin, cela suppose que vous recherchez la valeur « qrs » dans Sheet1. Tous ces éléments de la macro peuvent être modifiés, si vous le souhaitez.
Pour quelque chose d’un peu plus flexible, considérez la macro suivante. Cela suppose que vous avez déjà sélectionné toutes les cellules contenant la valeur souhaitée. (En d’autres termes, vous devez effectuer les étapes 1 à 3 des étapes vers le début de cette astuce.) Vous pouvez ensuite exécuter la macro.
Sub CopyFindAllSelection() Dim outcell As Range Dim c As Range Set outcell = Range("Sheet2!A1") For Each c In Selection outcell.Value = c.Address Set outcell = outcell.Offset(1, 0) Next End Sub
Le résultat est que les adresses des cellules sélectionnées sont placées dans la feuille de calcul Sheet2. Cette macro est un peu plus flexible car elle vous permet de trouver n’importe quoi dans n’importe quelle feuille de calcul. La seule partie « codée en dur »
est la feuille de calcul (Sheet2) dans laquelle les adresses sont placées.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (13581) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365.