chercher le texte et sélectionner la ligne

olivierd

XLDnaute Junior
bonjour à toi ami lecteur(rice),

Je cherche un code vba qui me permette de
chercher un texte dans une colonne ' chercher 'montexte'
puis de sélectionner la ligne où se trouve 'montexte'
:eek:
pourrais-tu m'aider sympatique surfeur(euse) ?

J'ai commencé ainsi:
Sub Macro()
Columns('A:A').Select
Selection.Find(What:='montexte', After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False).Activate

et c'est là que je n'arrive pas à lui (le monstre)
indiquer de sélectionner la ligne où se trouve 'montexte'

cordialement
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Oups

j'avais pas tout lu tu veux selectionner la ligne

donc cela donne

Sub Recherche()

Dim c As Range
Dim Maligne As Integer

Set c = Sheets('Feuil1').Range('A1:A6536').Find('toto')
Maligne = c.Row
Rows(Maligne).Select

End Sub
 
M

Marianne_ingalls

Guest
Pascal76 écrit:
Sub Recherche()

Dim c As Range
Dim Maligne As Integer

Set c = Sheets('Feuil1').Range('A1:A6536').Find('toto')
Maligne = c.Row
Rows(Maligne).Select

End Sub

Je voulais juste demander une explication concernant ce code
C'est une question basique parce que je commence : que signifie le 'Maligne=c.Row' ?
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

c est la cellule où se trouve le mot recherché

c.row indique la ligne de la cellule c

Attention comme je l'indiquais à Olivier je n'ai pas fait ici de gestion d'erreur si le texte cherché n'existe pas dans la colonne. En effet dans ce cas c devient Nothing et la macro bug sur Maligne=c.row

Bonne journée
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Marianne, Olivier, Pascal, le Forum

Et puisque Pascal parle de gestion d'erreur, pourquoi ne pas en mettre une dans la foulée...

Option Explicit
Option Compare Text 'pour chercher MAJ ou min indifféremment

Sub Recherche()
Dim Cell As Range
Dim SearchedString As String

SearchedString = InputBox('Saisir le mot à chercher')
If SearchedString = '' Then Exit Sub

   
Set Cell = Sheets('Feuil1').Columns('A:A').Find(SearchedString)
       
If Not Cell Is Nothing Then
            Rows(Cell.Row).Select
       
Else
            MsgBox 'le mot ' & SearchedString & ' inexistant dans la colonne ''A'''
       
End If
End Sub

On notera l'Option Compare Text, qui n'est pas vraiment utile ici puisque 'find' n'a pas l'argument MatchCase défini à True pour que la recherche respecte la casse. (La valeur par défaut est False). Mais très utile dans d'autres cas de recherche par boucle..

Bonne Journée
@+Thierry
 

Discussions similaires

Réponses
12
Affichages
576

Statistiques des forums

Discussions
312 276
Messages
2 086 711
Membres
103 377
dernier inscrit
fredy45