Créer un champ de recherche sous excel 2003

ouaich

XLDnaute Nouveau
Bonjour,

Je suis complètement perdu.
Je suis novice sous excel.
J'ai fait de multiples recherches sur internet mais à chaque fois ce que je fais ne marche pas, je viens donc vous demandez votre aide.

J'ai un fichier excel qui comporte 7 colonnes. (A à G)
Le nombre de ligne sera "infini".
Je souhaiterai en haut du tableau avoir un bouton "Rechercher" qui me permette de rechercher un mot, une partie de mot ou une date suite à ce que j'aurais tapé dans une cellule à proximité auparavant ou alors que ça m'ouvre une boite de dialogue où j'entrerai ce mot ou date.

Ensuite je voudrais que le résultat de la recherche mette la ligne en surbrillance ou alors ne laisse plus apparaitre que les lignes contenant le terme recherché.

Merci d'avance.
Je me tiens à votre disposition.
 

ouaich

XLDnaute Nouveau
Re : Créer un champ de recherche sous excel 2003

Merci Modeste,
Mais j'ai un message d'erreur, pourtant j'ai ça dans initialize :
Private Sub UserForm_Initialize()
For Each f In Worksheets
If f.Name <> "Moteur de recherche" And "Données" Then ComboBox1.AddItem (f.Name)
Next f
ComboBox1.AddItem ("Tous")
End Sub

et ça dans recherche:

Public choix As String
Sub recherche(mot)
Dim listeFeuilles() As String
If choix = "Tous" Then
For Each f In Worksheets
If f.Name <> "Moteur de recherche" And "Données" Then
ReDim Preserve listeFeuilles(i)
listeFeuilles(i) = f.Name
i = i + 1
End If
Next f
Else

Je ne vois pas, ça a pourtant l'air simple
 

Modeste

XLDnaute Barbatruc
Re : Créer un champ de recherche sous excel 2003

Re,

@ouaich: l'instruction que tu mentionnes ici n'est pas la même que tout à l'heure: dans ton message #13, tu avais écrit
Code:
If f.Name <> "Moteur de recherche" And f.Name <> "Données" Then ...
et celle-là était précisément la bonne!

@noucho: le début du code n'est pas de moi, ouaich l'avait récupéré. De quel bouton annuler parles-tu?
 

ouaich

XLDnaute Nouveau
Re : Créer un champ de recherche sous excel 2003

Merci encore Modeste,
je ne comprends pas pourquoi je n'ai pas réussi à "trouver" cette dernière partie de code tellement elle me parait simple et évidente quand je la vois ! ! !

Concernant Noucho : Il parle je pense de la première version du moteur de recherche avant que je te demande de faire le "userform". Quand tu lances la recherche tu as soit ok pour la lancer dans boite de dialogue, soit annuler et quand tu faisais annuler ça te donnait dans la colonne résultat toutes les cases vides du tableau.

Maintenant ça ne le fait plus même quand tu fais annuler dans le userform.

J'espère être compréhensible.
 

Modeste

XLDnaute Barbatruc
Re : Créer un champ de recherche sous excel 2003

Bonjour,

Merci pour le retour, ouaich :)
Le problème subsiste encore au niveau de l'InputBox: si on annule, le UserForm s'affiche et la procédure se poursuit. C'est entre autres pour cette raison que je suggérais de rassembler les opérations au niveau du UserForm et que je mentionnais la nécessité d'ajouter quelques contrôles de sécurité.

Pour noucho, donc (s'il repasse par ici?) sans tout remodifier, dans la procédure CommandButton1_Click() de la Feuille "Moteur de recherche", juste après l'instruction:
Code:
reponse = InputBox("Veuillez saisir le texte à rechercher.", "Recherche de texte")
On peut modifier ce qui suit de cette manière:
Code:
If reponse <> "" Then
    UserForm1.Show
    If choix <> "" Then Call recherche(reponse)
End If
Ce qui permet de n'afficher le UserForm que si l'inputBox n'est pas resté vide (ou qu'on n'a pas choisi d'annuler). De même si rien n'est sélectionné dans la liste du UserForm, la procédure "recherche" ne s'exécute pas.

Ceci dit, j'insiste: c'est une modification qui permet de n'apporter que des changements mineurs au code ... mais on gagnerait à faire "plus propre" :rolleyes:
 

ouaich

XLDnaute Nouveau
Re : Créer un champ de recherche sous excel 2003

Du coup, j'ai apporté une nouvelle modification au code.

Je me posais une question, cet après midi j'ai fait un test en imprimant le tableau de mes rapports.

Celui-ci est au format A3 Paysage suite aux plusieurs colonnes.
En haut de ce tableau, j'ai environ 6 à 8 lignes que j'ai figé en volet pour que lorsque je fais défiler vers le bas j'ai toujours le nom des colonnes.

A l'impression le problème, c'est que quand j'imprime la deuxième page, celle-ci ne contient pas le nom des colonnes alors que je pensais que ça se faisait automatiquement sous excel vu que j'ai figer le haut de la feuille.

Est-ce normal?
 

ouaich

XLDnaute Nouveau
Re : Créer un champ de recherche sous excel 2003

Je crois avoir trouvé, j'ai modifié dans "mise en page" les lignes obligatoirement présentes à l'impression.
Je pense que ça doit être ça.

Je testerai ça mardi en reprenant le boulot maintenant.
 

Discussions similaires

Statistiques des forums

Discussions
311 732
Messages
2 081 997
Membres
101 861
dernier inscrit
Jerem28630