Recherche mot entier VBA

Le
PB
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacky
Le #23197871
Bonsoir

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

--
Salutations
JJ


"PB"
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
PB
Le #23199141
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
DanielCo
Le #23199261
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
PB
Le #23200391
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
PB
Le #23200421
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) ??
DanielCo
Le #23200991
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
MichD
Le #23201171
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
--------------------------------------------
DanielCo
Le #23201231
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
--------------------------------------------
PB
Le #23202351
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 ???
MichD
Le #23202461
| 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
--------------------------------------------
Publicité
Poster une réponse
Anonyme