Aller à la cellule où se trouve le mot recherché

Bonsoir,

Sur la feuille 1 d'un classeur j'ai la conjugaison des verbes de référence en langue provençale dans tous les temps et dans tous les modes. Ils sont au nombre de 116. Sur la feuille 2 du même classeur je dispose d'une liste de presque 15000 verbes. Dans la cellule de droite de chaque verbe il y a un numéro correspond au verbe de référence de la feuille 1 qui renvoie à la conjugaison du dit-verbe.

Pour rechercher un verbe dans la liste des 15000 verbes j'ai mis un champ de recherche vba comme décrit ici :

https://www.blog-excel.com/creer-un-champ-de-recherche-vba/

Cela fonctionne très bien mais au lieu (ou en plus) de colorer la cellule qui contient le mot entré dans le champ de recherche, ce qui m'oblige à balayer les 15000 lignes jusqu'à trouver celle colorée en vert, je voudrais aller directement à la cellule concerné.

J'ai essayé en mettant la fonction GoTo Cells(ligne,2) mais ça ne fonctionne pas (en bleu) :.

"If TextBox1 <> "" Then

For ligne = 2 To 15000

If Cells(ligne, 2) Like "*" & TextBox1 & "*" Then

Application.Goto Cells(ligne, 2)

Cells(ligne, 2).Interior.ColorIndex = 43

ListBox1.AddItem Cells(ligne, 2)

End If

Next

End If"

Quelqu'un peut-il me dire la commande à rentrer dans le code vba ?

Merci d'avance

Bonjour,

pouvez-vous joindre un fichier (excel) ?

Bonjour,

Voici le fichier Excel qui me sert pour les essais.

Merci d'avance pour votre aide

Bonjour,

votre boucle peut trouver plusieurs résultats. "Aller à la cellule concernée" ne sera que la cellule du dernier résultat trouvé.

remplacez :

Application.Goto Cells(ligne, 2)

par

Cells(ligne, 2).activate

Cela n’empêchera pas de balayer les lignes pour voir les résultats précédents...


Re,

une idée, à vous de voir.

Bonjorn,

Autre idée, à essayer : utiliser une ComboBox...

Private Sub ComboBox1_Change()
    Dim v&
    On Error GoTo Errata
    If ComboBox1.ListIndex > -1 Then
        v = [Verbi].Find(ComboBox1.Value, , , xlWhole).Row
        ActiveWindow.ScrollRow = v
    Else
        ActiveWindow.ScrollRow = 2
    End If
Errata:
End Sub

NB-La plage (colonne de verbes est nommée Verbi (en dynamique).

Test : taper dans la Combo...

Cordialement.

Bonjour,

Tu as oublié le paramètre Scroll :

Application.Goto Cells(ligne, 2), True

eric

Pas du tout !

J'utilise ScrollRow, appliqué au volet actif de la fenêtre, ce qui amène la sélection dans la Combo, au fil de la frappe en ligne 2. Sans avoir à y aller !

Salut MFerrand,

Je répondais au demandeur

Sa ligne de code corrigée

eric

OK ! Mes excuses alors !

Bonne journée.

Je vous remercie tous de m'avoir apporté vos solutions.

J'ai téléchargé et regardé avec attention les fichiers que vous avez modifiés.

J'avoue que la solution de MFerrand me plait particulièrement et répond en (très) grosse partie à mes attentes.

Juste une petite chose que je ne m'explique pas : après avoir entré le verbe dans le champ je vais directement à la cellule qui le contient. Jusque là tout va bien mais quand je clique sur le lien hypertexte pour aller voir la conjugaison du verbe dans la feuille 1, la ligne sur laquelle figure le verbe s'affiche n'importe où dans la page. Est-il possible de faire en sorte qu'elle s'affiche systématiquement juste en-dessous de la ligne des titres ?

Je n'ai rien vu dans la fonction "Lien Hypertexte" qui me permet de faire ce type d'affichage.

Je vous joins le fichier tel que modifié

Bonjour,

à tester

crdlt,

André

Bonsoir,

Après quelques essais j'ai résolu en partie le problème du lien hypertexte.

Au lieu de pointer vers une cellule je pointe vers une plage de cellules.

Bonsoir,

Après un WE à travailler sur mon projet, il m'est venu une petite idée : faire un "masque de saisie et de recherche".

Le principe serait d'afficher un UserForm dans la feuille d'accueil, avec dans cet objet un champ de saisie du verbe recherché, un champ ou s'affiche le verbe de référence de conjugaison (exemple : "TelVerbe" se conjugue comme "TelVerbeDeRéférence") et un bouton pour accéder à la conjugaison du verbe de référence.

Le problème est qu'il m'est impossible d'insérer un UserForm dans la feuille d'accueil de mon classeur : après quelques secondes Excel se bloque et j'ai un message qui me dit "Excel a cessé de fonctionner....".

J'ai essayé une insertion dans d'autres classeurs, et même avec un nouveau classeur vierge, avec toujours le même problème.

D'où cela peut-il bien venir ?

Merci pour votre aide

Bonsoir,

Tu veux dire que tu veux pouvoir lancer un Userform à partir d'une feuille Accueil ?

Tu crées un Userform en utilisant VBA et tu l'utilises dans l'Application, mais un Userform ne fait pas partie d'Excel...

Ton classeur n'en comporte pas, il te faut d'abord le créer :

  • tu vas dans l'éditeur VBA (Alt+F11 ou onglet Développeur > VisualBasic)
  • menu Insertion > Userform (ou Clic droit dans l'Explorateur de projets, c'est le volet à gauche, et Insertion > Userform)
  • il te restera à le composer en y insérant des contrôles au moyen de la boîte à outils
  • tu règles les propriétés par défaut des contrôles (celles qu'ils doivent avoir au moment de l'ouverture) en utilisant la fenêtre de propriétés (menu Affichage > fenêtre Propriétés ou icône de la barre d'outils)
  • les propriétés qui ne peuvent être réglées définitivement à l'avance seront définies au moment de l'ouverture, on utilise généralement pour cela une procédure Userform_Initialize.

Le Userform apparaîtra dans le volet Explorateur, sous un dossier intitulé Feuilles dans l'arborescence des objets disponibles.

Pour l'ouvrir tu pourras placer un bouton dans ta feuille. La commande pour l'ouvrir :

UserForm1.Show

suffit.

Commence donc par mettre en place ton Userform, le composer selon ce que tu souhaites faire... les choses se clarifieront.

Coralament.

Mon problème est que je ne peux même pas créer l'UserForm.

Je vais dans VBA puis je clique sur l'icône UserForm, ou je fais Insertion, UserForm et là ça mouline puis Excel bugue et j'ai le message que je cite plus haut.

Si je pouvais créer un UserForm il est évident qu'après je créerai les différents champs et bouton qui me sont nécessaire. Mais là......

Vérifie tes paramètres de macro, que Accès approuvé au modèle d'objet du projet VBA soit coché.

(NB- dans l'onglet Développeur tu cliques sur Sécurité des macros, tu y accèdes directement.)

Bonjour,

j'ai testé sur ton fichier, pas de soucis.

Tente déjà une réparation d'office. Via 'panneau de config / Programme et fonctionnalité', choisir MS office puis bouton 'Modifier'.

Bien que je sois sceptique sur le résultat c'est la 1ère chose à faire.

eric

La case Accès..... était décochée. Je l'ai cochée mais toujours le même problème.

Je vais allé faire dormir les yeux et verrai ça demain.

Bonne nuit

Bonjour,

De retour à la maison après la manif. J'en ai profité pour voir si je pouvais créé un Userform sur l'ordi d'un copain et là pas de problème. Mais quand j'ai voulu ouvrir mon fichier avec l'Userform sur le mien, Excel a planté. C'est donc bien mon Excel qui m....de.

Comme me l'a conseillé eriic j'ai tenté une réparation via le panneau de configuration, sans succès. Je pense que je vais devoir passer par la case "désinstallation" puis réinstallation d'Office. Mais je verrai ça plus tard car j'ai changé mon fusil d'épaule : je n'utilise plus d'userform mais je place directement mes objets VBA ou ActiveX dans la feuille d'accueil, comme on peut le voir dans le fichier joint.

Il ne me reste plus maintenant qu'à trouver les bons code VBA pour que en appuyant sur le premier bouton "se counjugue coume" le verbe de référence s'affiche dans le champ à droite du bouton (ex : je tape ABADAIA dans la zone de liste déroulante, puis je clique sur le bouton "se counjugo coume". Le contenu de la cellule C2 feuille Verbe "2 - ABADAIA" s'affiche alors dans le champ entre les 2 boutons). En cliquant alors sur le bouton "vèire counjugueson", la conjugaison du verbe de référence de la feuille Counjugueson s'affiche alors (dans mon exemple la conjugaison du verbe ABADAIA puisque pour le moment dans la liste ne figurent que les verbes de référence).

J'ai donc encore beaucoup de boulot et de cheveux à m'arracher.....

Bonjour,

J'ai simplifié un peu ta feuille car je ne vois pas trop l'intérêt de la liste déroulante en tant qu'objet ni de la textbox.

Autant mettre une liste déroulante simple et une formule pour ramener le verbe, je n'ai gardé que le dernier bouton.

J'ai mis la macro pour atteindre le verbe.

Tu vois ce que tu veux garder...

eric

Rechercher des sujets similaires à "aller trouve mot recherche"