Recherche dans un document Excel

A

Arno

Guest
Bonjour,

Je travaille sur un document qui possède plusieurs feuilles.
Sur la première feuille, je souhaiterais insérer une zone de texte et un bouton juste à droite.
Ma question : Comment faire pour que le fait de cliquer sur le bouton me renvoie automatiquement à la case A1 de la feuille contenant le texte entré dans la zone ? (sachant que le texte n'est présent que dans une seule feuille).

Merci d'avance.
Cordialement.
Arno.
 

Charly2

Nous a quittés en 2006
Repose en paix
Bonsoir Arno, bonsoir Marco60 :)

Si j'ai bien compris ta demande, ce genre de code pourrait te convenir :

Code:
Option Explicit

Sub Bouton2_QuandClic()
'
Dim i%
Dim Contenu$
'
  ActiveSheet.Shapes('Zone de texte 1').Select
  Contenu = Selection.Text
  Range('A1').Select
  i = 0
  Do
    i = i + 1
  Loop Until (WorksheetFunction.CountIf(Sheets(i).Range('A:IV'), Contenu) > 0) Or (i = Sheets.Count)
  Sheets(i).Select
  Range('A1').Select
End Sub

A retrouver dans le module du fichier joint ;)

[file name=ArnoRecherche.zip size=16285]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/ArnoRecherche.zip[/file]

A+
 

Pièces jointes

  • ArnoRecherche.zip
    15.9 KB · Affichages: 20
A

Arno

Guest
Merci pour votre aide,
Pour l'instant Charlys avec ta mcro, il me met erreur d'execution 438 (propriété ou méthode non géré par cet objet) puis en débogage me surligne la ligne 'contenu=selection.text').

Je vais essayer de me servir de ton exemple pour trouver la source du problème et je te tiens au courant.

Cependant on dirait que ma zone de texte n'a pas le meme format que la tienne bizarre ...

Si je n'arrive pas à résoudre, je mettrai le fichier en PJ.

Merci @+++
Arno
 

Charly2

Nous a quittés en 2006
Repose en paix
Bonjour Arno, bonjour à toutes et à tous :)

Je ne travaille que très rarement avec les zones de texte en VBA, mais chez moi, la macro fonctionnait correctement ainsi. Essaie en remplaçant la ligne de code :

Contenu = Selection.Text

par :

Contenu = Selection.Characters.Text

Tiens nous au courant ;)

A+
 
A

Arno

Guest
Merci Charly pour ton aide,

j'ai trouvé la source du problème : je n'avais pas vraiment mis une zone de texte mais une 'TextBox' gràce à la barre d'outils 'Formulaires'.
Tout est rentré dans l'ordre en utilsant la zone de texte avec la barre d'outils 'dessin'.

Une dernière petite question : est-il possible de faire exactement la meme recherche mais sur une partie de la cellule ; exemple : en tapant 'CHAR', il retrouve la feuille qui contiens 'CHARLY' ?

Merci @+++
Arno
 

Charly2

Nous a quittés en 2006
Repose en paix
Re Arno :)

C'est tout à fait possible en utilisant des caractères spéciaux. Pour recherche dans les cellule, on a par exemple :
*AR* -> cellules contenant AR à n'importe quel endroit du texte
AR* -> cellules commençant par AR
*AR -> cellules finissant par AR
etc.

Le '*' représente un séquence de caractère, quequ'en soit sa longueur et '?' représente un seul caractère.

Dans l'exemple fourni, tu peux écrire :

WorksheetFunction.CountIf(Sheets(i).Range('A:IV'), 'like *' & Contenu & '*') > 0

Voilà ;)

A+

Edition : rectification et mise en forme.

Message édité par: Charly2, à: 19/01/2006 16:56
 

Discussions similaires

Réponses
4
Affichages
190
Réponses
2
Affichages
193

Membres actuellement en ligne

Statistiques des forums

Discussions
312 229
Messages
2 086 423
Membres
103 206
dernier inscrit
diambote