Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Repérer le numéro de ligne d'une chaine de caractères trouvée et l'affecter en variable?

9 réponses
Avatar
Fred
Bonjour,
Dans la Col.A j'ai des données en texte.
A l'aide d'une macro comment faire pour repérer dans cette colonne un mot
comme "réponses" et mettre en variable le numéro de ligne où se trouve cette
chaine de caractères.
Si la chaine "réponses" est trouvé en A12...récupérer le 12 pour l'affecter
à une variable k par exemple?
Merci

9 réponses

Avatar
jb
Bonjour,

Par exemple,

Sub Macro1()
x = "Réponses"
Columns("A:A").Select
Selection.Find(What:=x, After:¬tiveCell, LookIn:=xlValues).Sele ct
y = ActiveCell.Row
End Sub

Cordialement JB
Avatar
anonymousA
Bonjour ,

pour aller dans le même sens que jb mais en 2 instructions seulement

On Error Resume Next
k=Columns("A:A").Find(What:="Réponses", After:¬tiveCell,
LookIn:=xlValues).Row

A+


Bonjour,
Dans la Col.A j'ai des données en texte.
A l'aide d'une macro comment faire pour repérer dans cette colonne un mot
comme "réponses" et mettre en variable le numéro de ligne où se trouve cette
chaine de caractères.
Si la chaine "réponses" est trouvé en A12...récupérer le 12 pour l'affecter
à une variable k par exemple?
Merci




Avatar
Fred
J'ai omis de dire que la chaine à trouver...est en fait une sous chaine et
donc l'instruction find ne convient pas!
Comment remplacer Find???
Merci tout de même!!!
"anonymousA" a écrit dans le message de news:
43807bd4$0$6672$
Bonjour ,

pour aller dans le même sens que jb mais en 2 instructions seulement

On Error Resume Next
k=Columns("A:A").Find(What:="Réponses", After:¬tiveCell,
LookIn:=xlValues).Row

A+


Bonjour,
Dans la Col.A j'ai des données en texte.
A l'aide d'une macro comment faire pour repérer dans cette colonne un mot
comme "réponses" et mettre en variable le numéro de ligne où se trouve
cette chaine de caractères.
Si la chaine "réponses" est trouvé en A12...récupérer le 12 pour
l'affecter à une variable k par exemple?
Merci




Avatar
michdenis
Bonjour Fred,

'-----------------------------
Sub Trouver()

Dim R As Long, Mot As String
Mot = "réponset"
On Error Resume Next
With Worksheets("Feuil1")
R = .Range("A:A").Find(What:=Mot, _
LookIn:=xlValues, LookAt:=xlPart).Row
If Err = 0 Then
MsgBox R
Else
Err = 0
End If
End With
End Sub
'-----------------------------


Salutations!


"Fred" a écrit dans le message de news: 438076dd$0$4302$
Bonjour,
Dans la Col.A j'ai des données en texte.
A l'aide d'une macro comment faire pour repérer dans cette colonne un mot
comme "réponses" et mettre en variable le numéro de ligne où se trouve cette
chaine de caractères.
Si la chaine "réponses" est trouvé en A12...récupérer le 12 pour l'affecter
à une variable k par exemple?
Merci
Avatar
anonymousA
Je suis désolé de dire qu'une sous-chaine ( si tant est qu'une
sous-chaine veuille dire que p.e le mot "Réponses" est une partie d'une
phrase du style "les Réponses gnagna...") ) sera détectée par Find
puisique dans l'instruction proposée, le paramètre LookAt est omis donc
par défaut est positionné à xlPart.
Si par contre, le mot "Réponses" est une expression de formule, il
conviendrait de mettre LookIn:=xlformulas au lieu de xlvalues.

A+

J'ai omis de dire que la chaine à trouver...est en fait une sous chaine et
donc l'instruction find ne convient pas!
Comment remplacer Find???
Merci tout de même!!!
"anonymousA" a écrit dans le message de news:
43807bd4$0$6672$

Bonjour ,

pour aller dans le même sens que jb mais en 2 instructions seulement

On Error Resume Next
k=Columns("A:A").Find(What:="Réponses", After:¬tiveCell,
LookIn:=xlValues).Row

A+



Bonjour,
Dans la Col.A j'ai des données en texte.
A l'aide d'une macro comment faire pour repérer dans cette colonne un mot
comme "réponses" et mettre en variable le numéro de ligne où se trouve
cette chaine de caractères.
Si la chaine "réponses" est trouvé en A12...récupérer le 12 pour
l'affecter à une variable k par exemple?
Merci









Avatar
michdenis
Bonjour

| puisique dans l'instruction proposée, le paramètre LookAt est omis donc
| par défaut est positionné à xlPart.

Es-tu certain de ce que tu avances :

Par défaut, ce paramètre prend la valeur que l'on lui a assignée lors de la dernière
recherche que l'on a faite, le cas échéant !

Il est plus facile d'utiliser le paramètre destiné à cet effet que de fermer le classeur
pour obtenir le "reset" du paramètre par défaut. ;-))


Salutations!




"anonymousA" a écrit dans le message de news: 438080e7$0$6672$
Je suis désolé de dire qu'une sous-chaine ( si tant est qu'une
sous-chaine veuille dire que p.e le mot "Réponses" est une partie d'une
phrase du style "les Réponses gnagna...") ) sera détectée par Find
puisique dans l'instruction proposée, le paramètre LookAt est omis donc
par défaut est positionné à xlPart.
Si par contre, le mot "Réponses" est une expression de formule, il
conviendrait de mettre LookIn:=xlformulas au lieu de xlvalues.

A+

J'ai omis de dire que la chaine à trouver...est en fait une sous chaine et
donc l'instruction find ne convient pas!
Comment remplacer Find???
Merci tout de même!!!
"anonymousA" a écrit dans le message de news:
43807bd4$0$6672$

Bonjour ,

pour aller dans le même sens que jb mais en 2 instructions seulement

On Error Resume Next
k=Columns("A:A").Find(What:="Réponses", After:¬tiveCell,
LookIn:=xlValues).Row

A+



Bonjour,
Dans la Col.A j'ai des données en texte.
A l'aide d'une macro comment faire pour repérer dans cette colonne un mot
comme "réponses" et mettre en variable le numéro de ligne où se trouve
cette chaine de caractères.
Si la chaine "réponses" est trouvé en A12...récupérer le 12 pour
l'affecter à une variable k par exemple?
Merci









Avatar
Fred
OK...ça marche...et merci à vous tous!!!
;)
"michdenis" a écrit dans le message de news:

Bonjour Fred,

'-----------------------------
Sub Trouver()

Dim R As Long, Mot As String
Mot = "réponset"
On Error Resume Next
With Worksheets("Feuil1")
R = .Range("A:A").Find(What:=Mot, _
LookIn:=xlValues, LookAt:=xlPart).Row
If Err = 0 Then
MsgBox R
Else
Err = 0
End If
End With
End Sub
'-----------------------------


Salutations!


"Fred" a écrit dans le message de news:
438076dd$0$4302$
Bonjour,
Dans la Col.A j'ai des données en texte.
A l'aide d'une macro comment faire pour repérer dans cette colonne un mot
comme "réponses" et mettre en variable le numéro de ligne où se trouve
cette
chaine de caractères.
Si la chaine "réponses" est trouvé en A12...récupérer le 12 pour
l'affecter
à une variable k par exemple?
Merci





Avatar
anonymousA
C'est exact. Mea culpa !. J'ai toujours du mal à garder en tête que le
dernier choix saisi par l'utilisateur prédomine sur le paramètre par défaut.

A+

Bonjour

| puisique dans l'instruction proposée, le paramètre LookAt est omis donc
| par défaut est positionné à xlPart.

Es-tu certain de ce que tu avances :

Par défaut, ce paramètre prend la valeur que l'on lui a assignée lors de la dernière
recherche que l'on a faite, le cas échéant !

Il est plus facile d'utiliser le paramètre destiné à cet effet que de fermer le classeur
pour obtenir le "reset" du paramètre par défaut. ;-))


Salutations!




"anonymousA" a écrit dans le message de news: 438080e7$0$6672$
Je suis désolé de dire qu'une sous-chaine ( si tant est qu'une
sous-chaine veuille dire que p.e le mot "Réponses" est une partie d'une
phrase du style "les Réponses gnagna...") ) sera détectée par Find
puisique dans l'instruction proposée, le paramètre LookAt est omis donc
par défaut est positionné à xlPart.
Si par contre, le mot "Réponses" est une expression de formule, il
conviendrait de mettre LookIn:=xlformulas au lieu de xlvalues.

A+


J'ai omis de dire que la chaine à trouver...est en fait une sous chaine et
donc l'instruction find ne convient pas!
Comment remplacer Find???
Merci tout de même!!!
"anonymousA" a écrit dans le message de news:
43807bd4$0$6672$


Bonjour ,

pour aller dans le même sens que jb mais en 2 instructions seulement

On Error Resume Next
k=Columns("A:A").Find(What:="Réponses", After:¬tiveCell,
LookIn:=xlValues).Row

A+




Bonjour,
Dans la Col.A j'ai des données en texte.
A l'aide d'une macro comment faire pour repérer dans cette colonne un mot
comme "réponses" et mettre en variable le numéro de ligne où se trouve
cette chaine de caractères.
Si la chaine "réponses" est trouvé en A12...récupérer le 12 pour
l'affecter à une variable k par exemple?
Merci













Avatar
jb
Si on n'a pas besoin de positionner le curseur sur la cellule :

Set c = Range("A:A").Find("ccc", LookIn:=xlValues, LookAt:=xlPart)
If Not c Is Nothing Then
MsgBox c.Row
End If

JB