XL 2016 Formulaire de recherche dans une feuille excel

Michest94

XLDnaute Occasionnel
Bonsoir,

Par rapport à un fichier de gestion de comptes j'aimerais pouvoir faire des recherches à travers un formulaire.
Je vous sollicite pour votre aide afin d'améliorer l'userform en place avec son code macro associé.
Celui-ci est permettrais de faire des recherches sur les colonnes de A à J.

Merci à vous,

Capture d’écran recherche.jpg
 

Pièces jointes

  • Gestion compte Recherche.xlsm
    45.1 KB · Affichages: 25
Solution
Bonjour,

1 - Mettez un point d'arrêt devant votre ligne (F9 après avoir inséré le curseur dans la ligne) :
For I = 1 To UBound(TV) - 1
2 - Lancer le userform
3 - A l'arrêt sur la ligne, faites 'Affichage/Fenêtre Variables Locales'
4 - Développez la branche 'ME', cherchez le nom de votre variable tableau TV dans la liste et vous verrez en face qu'il s'agit d'un tableau de Variant indicé de 1 à 12 (dans votre exemple). Le -1 de votre boucle for est donc inutile. Il n'est utile que pour les tableaux indicés de 0 à n.

Pour le reste, une problématique, une discussion.
Extrait de la charte du forum.
3 – Le titre de la question doit être clair et comporter explicitement le sujet de la demande. Cela sous-entend qu’une nouvelle demande...

Michest94

XLDnaute Occasionnel
Bonsoir,

Par rapport à un fichier de gestion de comptes j'aimerais pouvoir faire des recherches à travers un formulaire.
Je vous sollicite pour votre aide afin d'améliorer l'userform en place avec son code macro associé.
Celui-ci est permettrais de faire des recherches sur les colonnes de A à J.

Merci à vous,

Regarde la pièce jointe 1091911
Bon "0" retour,
Normal je suppose pas clair ... je comprend

Pourtant ce formulaire je l'ai déjà dans un fichier de gestion de plans il est vraiment génial.
J'aimerais bien l'adapter sur une gestion multi comptes.
En fait, à force de bidouiller j'ai réussi à en tirer quelque chose voire fichier joint à l'état brut mais fonctionnel.

Juste que dans la recherche il trouve tout sauf le dernier enregistrement sur 1000 lignes on passe au travers par contre sur 2 lignes c'est radical ;)et la deuxième chose est que dans sa liste de recherche trouvées quand je clique sur 1 ligne qui me renvoie dans le tableau feuille donné à la ligne correspondante.
Mon autre souci est dans la feuille statistique je ne sais pas comment faire les bilans par comptes.

Merci,
 

Pièces jointes

  • Gestion multi_comptesTEST.xlsm
    55.8 KB · Affichages: 9

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

1 - Mettez un point d'arrêt devant votre ligne (F9 après avoir inséré le curseur dans la ligne) :
For I = 1 To UBound(TV) - 1
2 - Lancer le userform
3 - A l'arrêt sur la ligne, faites 'Affichage/Fenêtre Variables Locales'
4 - Développez la branche 'ME', cherchez le nom de votre variable tableau TV dans la liste et vous verrez en face qu'il s'agit d'un tableau de Variant indicé de 1 à 12 (dans votre exemple). Le -1 de votre boucle for est donc inutile. Il n'est utile que pour les tableaux indicés de 0 à n.

Pour le reste, une problématique, une discussion.
Extrait de la charte du forum.
3 – Le titre de la question doit être clair et comporter explicitement le sujet de la demande. Cela sous-entend qu’une nouvelle demande fait l’objet d’un nouveau fil.

Cordialement
 

Michest94

XLDnaute Occasionnel
Bonjour,

J'ai rectifié le -1 et cela fonctionne. Merci beaucoup!
Pour la deuxième problématique je vais lancer une autre discussion...

Par contre toujours sur le sujet du formulaire de recherche ma demande s'orientait aussi sur le fait que :
"dans la liste de recherche trouvées quand je clique sur 1 ligne du formulaire cela puisse me faire un renvoie dans le tableau de la feuille 'données' à la ligne correspondante de la sélection pour éventuel modif.?

Cdt,
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

C'est aussi une autre question.
M'enfin, voici une piste.

Dans votre boucle de chargement de la listBox vous avez une variable 'I' (For I = 1 To UBound(TV)) variable dont la valeur est conservée en colonne 0 de votre listbox.
Récupérez cette valeur pour avoir l'indice de ligne de votre tableau excel et vous diriger. Dans votre évènement click du listbox vous récupérer déjà cette valeur :
LR = Me.ListBox2.Column(0, Me.ListBox2.ListIndex)
A vous d'utiliser le moyen que vous voulez pour vous en servir:
Re exemple
Application.Goto ThisWorkbook.Sheets("Données").ListObjects("T_Données").ListRows(LR).Range, True

Je n'interviendrai plus sur ce fil, ayant répondu à la question initiale.

Bonne journée
 

Michest94

XLDnaute Occasionnel
Re,

C'est aussi une autre question.
M'enfin, voici une piste.

Dans votre boucle de chargement de la listBox vous avez une variable 'I' (For I = 1 To UBound(TV)) variable dont la valeur est conservée en colonne 0 de votre listbox.
Récupérez cette valeur pour avoir l'indice de ligne de votre tableau excel et vous diriger. Dans votre évènement click du listbox vous récupérer déjà cette valeur :

A vous d'utiliser le moyen que vous voulez pour vous en servir:
Re exemple


Je n'interviendrai plus sur ce fil, ayant répondu à la question initiale.

Bonne journée
Re,

Merci pour la piste 👌
Bonne journée également
 

Discussions similaires

Statistiques des forums

Discussions
312 195
Messages
2 086 082
Membres
103 113
dernier inscrit
jlaussenac