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

Recherche mot entier VBA

11 réponses
Avatar
PB
Bonjour à tous,
je fais une recherche d'un terme en VBA comme ceci :

Cells.Find(What:="Mot", After:=ActiveCell, LookAt:=xlWhole).Activate

puis je met mavaleur en dessous de la cellule concernée :
Onglet.Cells(ActiveCell.Row + 1, ActiveCell.Column).Value = mavaleur

Le pb c'est que si avant il y a Motgentil par exemple, Excel le prend
car il y a Mot au début et je voudrais prendre exclusivement la valeur
Mot entier seulement et non la première cellule contenant Mot + autre
chose derrière

Voila sur quoi je bute
Merci pour votre aide

10 réponses

1 2
Avatar
Jacky
Bonsoir

Cells.Find(What:="*mot*", After:¬tiveCell, LookAt:=xlWhole).Activate

--
Salutations
JJ


"PB" a écrit dans le message de news: ildpop$8g1$
Bonjour à tous,
je fais une recherche d'un terme en VBA comme ceci :

Cells.Find(What:="Mot", After:¬tiveCell, LookAt:=xlWhole).Activate

puis je met mavaleur en dessous de la cellule concernée :
Onglet.Cells(ActiveCell.Row + 1, ActiveCell.Column).Value = mavaleur

Le pb c'est que si avant il y a Motgentil par exemple, Excel le prend car il y a Mot au début et je voudrais
prendre exclusivement la valeur Mot entier seulement et non la première cellule contenant Mot + autre chose
derrière

Voila sur quoi je bute
Merci pour votre aide
Avatar
PB
Le 11/03/2011 21:47, Jacky a écrit :
Bonsoir

Cells.Find(What:="*mot*", After:¬tiveCell, LookAt:=xlWhole).Activate




Merci, je n'avais trouvé cela dans aucune doc
Avatar
DanielCo
Bonjour,
Rien à voir, mais tu peux écrire plus simplement :
Onglet.ActiveCell.Offset(1).Value = mavaleur
Daniel


Bonjour à tous,
je fais une recherche d'un terme en VBA comme ceci :

Cells.Find(What:="Mot", After:¬tiveCell, LookAt:=xlWhole).Activate

puis je met mavaleur en dessous de la cellule concernée :
Onglet.Cells(ActiveCell.Row + 1, ActiveCell.Column).Value = mavaleur

Le pb c'est que si avant il y a Motgentil par exemple, Excel le prend car il
y a Mot au début et je voudrais prendre exclusivement la valeur Mot entier
seulement et non la première cellule contenant Mot + autre chose derrière

Voila sur quoi je bute
Merci pour votre aide
Avatar
PB
Le 12/03/2011 14:50, DanielCo a écrit :
Bonjour,
Rien à voir, mais tu peux écrire plus simplement :
Onglet.ActiveCell.Offset(1).Value = mavaleur
Daniel

Merci pour la simplification, je suis toujours preneur
Avatar
PB
Le 13/03/2011 00:36, PB a écrit :
Le 12/03/2011 14:50, DanielCo a écrit :
Bonjour,
Rien à voir, mais tu peux écrire plus simplement :
Onglet.ActiveCell.Offset(1).Value = mavaleur
Daniel

Merci pour la simplification, je suis toujours preneur






Et si je veux écrire dans la colonne suivante mais sur la même ligne que
devient Offset(X) ??
Avatar
DanielCo
Le 13/03/2011 00:36, PB a écrit :
Le 12/03/2011 14:50, DanielCo a écrit :
Bonjour,
Rien à voir, mais tu peux écrire plus simplement :
Onglet.ActiveCell.Offset(1).Value = mavaleur
Daniel

Merci pour la simplification, je suis toujours preneur






Et si je veux écrire dans la colonne suivante mais sur la même ligne que
devient Offset(X) ??



Bonjour,
Onglet.ActiveCell.Offset(0,1).Value = mavaleur
ou, le zéro étant implicite :
Onglet.ActiveCell.Offset(,1).Value = mavaleur
Avatar
MichD
Bonjour Daniel,

|Onglet.ActiveCell.Offset(0,1).Value = mavaleur

ActiveCell n'est pas une propriété de l'objet "onglet" (Feuille en vba)

la syntaxe devrait être :

With Onglet
.Select 'ou activate
ActiveCell.Offset(0,1).Value = mavaleur
End With


MichD
--------------------------------------------
Avatar
DanielCo
Bonjour Denis,
Juste. Comme quoi on doit tester avant de poster.
Daniel


Bonjour Daniel,

Onglet.ActiveCell.Offset(0,1).Value = mavaleur



ActiveCell n'est pas une propriété de l'objet "onglet" (Feuille en vba)

la syntaxe devrait être :

With Onglet
.Select 'ou activate
ActiveCell.Offset(0,1).Value = mavaleur
End With


MichD
--------------------------------------------
Avatar
PB
Le 13/03/2011 12:22, MichD a écrit :
Bonjour Daniel,

|Onglet.ActiveCell.Offset(0,1).Value = mavaleur

ActiveCell n'est pas une propriété de l'objet "onglet" (Feuille en vba)

la syntaxe devrait être :

With Onglet
.Select 'ou activate
ActiveCell.Offset(0,1).Value = mavaleur
End With


MichD
--------------------------------------------




c'est bizarre parce que lorsque j'écris :

Résumé.Cells(ActiveCell.Row + 1, ActiveCell.Column).Value = mavaleur

"Résumé" est le nom de l'onglet

cela fonctionne sans erreur ???
Avatar
MichD
| Résumé.Cells(ActiveCell.Row + 1, ActiveCell.Column).Value = mavaleur

Il n'y a rien de bizarre... "Cells" est une propriété de l'objet "Worksheet"
ActiveCell n'est pas une propriété spécifique de l'objet Worksheet.

Si ta ligne de code est écrite dans un module standard,
ActiveCell.Row et ActiveCell.Column représente des valeurs de la cellule active
dans la feuille active à l'écran et non de la cellule active de la feuille de calcul
dont la propriété Name est "résumé".

Si ta ligne de code est écrite dans un module feuille, ActiveCell.Row et ActiveCell.Column
ActiveCell est un objet réputé appartenant à la feuille de calcul attachée au module feuille
et non à la feuille "Résumé".

En conséquence, si la feuille "Résumé" n'est pas la feuille active du classeur, ta ligne de code
sera problématique et pointera sur une cellule pas nécessairement désirée.

Maintenant que tu es avisé, à toi d'utiliser la syntaxe qui correspond à tes besoins.


MichD
--------------------------------------------
1 2