Recherche dans Table avec des Plages de N°

MikeThe7 -  
MikeThe7 Messages postés 48 Statut Membre -
Bonjour,

J'ai des listes de numéros sur plusieurs feuilles de calcul.
J'aimerai avoir un outil me permettant de savoir si un numéro recherché est dans une des listes ou pas. Rien de compliqué en soit avec RechercheV, mais je me heurte à un problème de taille :
Sur certaines lignes, il n'y a pas qu'un seul numéro mais une plage de numéro marquée comme suit (le 1er numéro dans un cellule, le signe "-" dans la cellule d'à coté et le 2ème n° dans la cellule de droite) :
1000012447 - 1000013105
Si dans ma recherche je tape le numéro 1000012567, comment faire pour que Excel comprenne que le n° est bien dans la liste et m'affiche le reste de la ligne qui contient les informations se rapportant à ce numéro ?
Je ne sais pas si je suis bien clair pour tout le monde. N'hésitez pas à me rediriger si un sujet a déjà répondu à cette question.

D'avance merci à tous.

30 réponses

Résumé de la discussion

Le problème posé est de vérifier si un numéro recherché figure dans des listes réparties sur plusieurs feuilles, certaines lignes utilisant des plages au format gauche - droite (par exemple 1000012447 - 1000013105) et d’extraire les informations associées lorsque le numéro est inclus dans la plage. Une solution proposée consiste à interpréter ces plages et à utiliser une recherche avec un caractère générique, par exemple via RECHERCHEV(C1&"*" ; Liste ; 2 ; 0), afin de retourner le reste de la ligne correspondant à l’intervalle contenant le numéro recherché. Des précisions complémentaires expliquent que l’intervalle peut être traité comme bornes et que des variantes et des gestions d’erreurs permettent d’éviter les messages d’erreur si le numéro n’est pas présent. L’outil développé est ensuite présenté comme une solution complète et performante, avec des améliorations de rapidité et une interface navigable, et les retours attestent de son efficacité.

Généré automatiquement par IA
sur la base des meilleures réponses
MikeThe7 Messages postés 48 Statut Membre
 
Bonjour Gb et Eric,

Avant de partir en week-end, je vous fais part de mes observations et nouvelles idées.

1°) L'éclatement marche super bien et le fait de devoir modifier le dernier N° de la 1ère plage pour être cohérent, me sécurise. Juste une petite chose : pourquoi est-ce que le N° est reporté dans la colonne "F" lorsque l'on a affaire à un N° unique ?
Exemple de résultat après éclatement :
1000025230 - 1000025350 <- N° que je dois modifier manuellement
1000025300 - 1000025300 <- N° unique "doublé"

2°) Je n'ai pas réussi à faire le double-clic sur une table pour modifier une cellule. J'utilise "F2" pour le moment. Si ce double-clic n'est pas possible pour "entrer" dans la cellule, pourriez-vous rétablir la fonction qui m'emmenait sur la page recherche ?

3°) J'aimerais que la colonne "C" se remplisse toute seule : je renseigne tous les N° de début de boite, il est donc logique qu'entre le début de la boite 20 et le début de la boite 21, toutes les lignes soient dans la boite 20. Cela est-il compliqué à faire ?

4°) Lorsqu'un numéro est "Inexistant" serait-il possible d'avoir un indicateur qui me montre le N° de boite dans laquelle se trouve ce N° ? Dans la même logique que pour le point 3°), si un N° est compris en le début de la boite 20 et le début de la boite 21, il est forcément dans la boite 20.

5°) J'ai remarqué que pour les N° uniques (lorsqu'il ne s'agit pas de plage de N°), je n'ai pas d'indication de couleur pour voir les doublons.

6°) Si j'entre une plage de numéro, serait-il possible que le "-" dans la colonne "E" se mette automatiquement ?

7°) Les numéro se classe automatiquement lorsqu'ils sont entrés. Cela m'oblige donc à chaque nouvelle entrée à me positionner dans la colonne "D", puis "Ctrl" + "Flèche Bas" pour arriver à la fin de la table pour entrer un nouveau numéro. J'aime bien le tri automatique dès que le numéro est tapé. Je prévois donc un bouton placé vers les titres, qui ferait la manipulation à ma place. Qu'en pensez-vous ? C'est le genre de macro que je sais faire, mais il y a peut-être un moyen encore plus efficace auquel je ne pense pas, ne sachant pas qu'une autre méthode existe.

Ma collègue revient de vacances à partir de Lundi, j'aurai donc plus de temps pour analyser et essayer de comprendre les macros. En lisant le lien sur les listes de choix, je me suis aperçu qu'il y avait possibilité d'aller plus loin, avec la saisie du début du nom, je me mets dessus dès Mardi matin.

Je vous souhaite à tous un bon week-end et merci encore de l'attention que vous portez à mon classeur.

La mise à jour du fichier complété depuis la dernière fois :

http://www.cijoint.fr/cjlink.php?file=cj201108/cij34UqtdQ.xlsm

A bientôt, Mike.
0
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 731
 
bonjour MikeThe7, coucou à Éric,

Me voilà de retour et j'ai vu que tu n'avais pas chômé !

1°) pourquoi est-ce que le N° est reporté dans la colonne "F" lorsque l'on a affaire à un N° unique ?

Je n'ai pas réussi à reproduire le cas mais j'ai effectué quelques modifications pour gérer des cas particuliers et gérer l'éclatement lors de la saisie en colonne F.

2°) Je n'ai pas réussi à faire le double-clic

Effectivement la suppression du retour en recherche n'était pas totalement effective. ;-)

3°) J'aimerais que la colonne "C" se remplisse toute seule

Cela se fait pour les nouvelles saisies et tu peux voir qu'en feuille "2" l'on reprend la dernière boite de la feuille "1 (3)" mais je n'ai pas effectué de reprise car il manque des débuts de boites et je n'ai pas voulu créer d'anomalies supplémentaires. Dans la procédure "maj_stats", il suffit d'enlever l'apostrophe pour l'effectuer et ensuite tu peux supprimer la ligne.

4°) Lorsqu'un numéro est "Inexistant" serait-il possible d'avoir un indicateur

Regardes si la modification te convient par formule associée à la gestion de recherche.

5°) J'ai remarqué que pour les N° uniques ...

La MFC a été complétée pour en tenir compte.

6°) Si j'entre une plage de numéro, serait-il possible que le "-" dans la colonne "E" se mette automatiquement ?

Cela se fait sur la saisie en colonne F et réciproquement si effacement plage.

7°) Les numéro se classe automatiquement lorsqu'ils sont entrés...

La sélection de la colonne I (automatique après saisie colonne H si tu as choisis droite) te positionne en fin : qu'en penses-tu ?

8°) bonus ?

La coloration des débuts de boite et journée s'effectue par MFC en fonction de la saisie en colonne G effectué par liste : cela me semble plus pratique ?

http://www.cijoint.fr/cjlink.php?file=cj201108/cijKYql66t.xlsm

En attendant tes observations, bonne journée à tous.
0
MikeThe7 Messages postés 48 Statut Membre
 
Bonjour GB et Eric,

Je n'ai pas encore tout testé, manque de temps aujourd'hui, je me mettrai dessus sérieusement demain.

Ce qui m'a plu d'entrée :
- La date et le numéro de boite qui se remplissent automatiquement.
- La sélection de la colonne I est encore mieux que de devoir attraper la souris pour cliquer sur un bouton qui m'emmènerait en fin de table.
- L'éclatement, je le préfère comme il est fait maintenant, c'est encore plus clair.
- Les "-" automatiques et la mise a jour du MO (Mode Opératoire) sont grandement appréciable.

En fait tu as été encore plus loin que ce que j'ai demandé, je ne voulais pas aller trop vite, trop en demander d'un coup. En tout cas tu as parfaitement compris la problématique et tu l'as géré de façon magistrale !

J'avais fait une MFC pour la coloration de "début de journée" et "début de boite", mais cela occasionnait une latence d'une seconde à chaque fois que je modifiais une cellule. Du coup je l'avais abandonné.

J'ai remarqué également un ralentissement lorsque je suis sur la page Recherche, au moment où je tape ou efface un N° ; est-ce que cela vient du N° de boite ? Ce n'est pas bien gênant non plus, je préfère avoir le N° de boite indiqué.

Petite anecdote : lundi soir je regardais les macros, il était tard, ma copine passe à coté de moi et me dit : "Aller viens te coucher, de toute façon tu ne comprendras pas tout ce soir..." J'ai trouvé sa remarque forte à propos, mais je ne me décourage pas pour autant ;-)

Je regarde tout cela plus en détail demain après avoir importé les tables et je posterai mes nouvelles observations.

Encore une fois (et ce ne sera pas la dérnière), un grand MERCI pour ta rapidité et la compréhension dont tu fais preuve.

Bonne soirée à vous et à demain...

Mike.
0
MikeThe7 Messages postés 48 Statut Membre
 
Bonjour Gb et Eric,

Comment allez-vous ? De mon côté tout va bien avec le super outil confectionné sur mesure par vos soins...

J'ai apporté quelques modifications mineures mais je n'ai pas touché aux macros.
- Les Tables vont maintenant accueillir des plages de numéros plus importantes : au lieu de créer une page tout les 10000, ce sera maintenant tout les 50000. J'ai remarqué qu'ainsi la recherche était plus rapide, moins de latence entre chaque chiffre tapé dans la Textbox. Cela signifie que j'aurais beaucoup moins de pages à créer en 1, 1(2), 1(3), etc...
- Ajout de boutons pour naviguer entre les pages (pas encore totalement fini, ce n'est pas le plus dur à faire, juste la mise en page à régler pour faire tenir tous les boutons).

Après une journée d'utilisation, j'ai remarqué plusieurs choses :
1°) Lorsque je tape un nouveau N° colonne D a la fin de la table, il est classé automatiquement, ce qui est bien. La sélection se fait ensuite sur la même ligne colonne F dans cas où j'entre une plage de N°, très bien aussi. Par contre au niveau de l'affichage, je ne vois plus la ligne qui vient d'être trié comme c'était le cas sur les versions précédentes du fichier. L'affichage reste sur la fin de la table jusqu'à ce que j'entre un N° en F ou que je change de cellule avec les flèches de direction.

2°) Serait-il possible lorsqu'un N° est "Inexistant", de double cliquer sur le N° de boite par exemple pour aller sur la table correspondante, sur la ligne de Début de Boite correspondant par exemple ?

3°) Lorsque un N° "doublon" est entré la sélection se fait sur la ligne supérieure et non sur la nouvelle ligne que je viens de taper, pourquoi ce fonctionnement ? Est-ce une question d'affichage ? Je sens qu'il y a une explication logique, mais je ne vois pas laquelle.

4°) Je ne reviens pas sur mon émerveillement quand je vois la date et le N° de boite qui se remplissent automatiquement. Petit bug cependant : en bas de la table, j'en suis à la boite 28. Cela veut donc dire que toutes les nouvelles entrées auront le numéro de boite 28 jusqu'à ce que je renseigne un nouveau N° de Début de Boite. Or si j'entre le N° 10000 qui doit se trouver dans la boite 10, ce N° aura le N° de boite 28. Ne serait-il pas possible que le N° de boite se renseigne après le tri dans la table pour qu'il soit juste ?

J'ai oublié de te dire hier, tu m'as amusé lorsque tu as dit :"j'ai vu que tu n'avais pas chômé".
En fait, je ne suis qu'un bêta-testeur sur un projet que je suis amené à utiliser tous les jours, je ne fais rien de probant qui fait évoluer le fichier à part l'utiliser...
Et pour moi, cela ne représente rien à coté des macros que tu as créées !

Il me reste encore à renseigner les N° de boite pour la page 3, je pense que je vais attendre la prochaine version du classeur avant de le faire.

Bonne soirée à vous GB et Eric, et à bientôt.

Mike.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 731
 
bonjour MikeThe7, coucou à Éric,

- J'ai remarqué ...moins de latence entre chaque chiffre tapé dans la Textbox.

J'ai mis un timer qui affiche le temps et je n'ai pas vu ta "latence" avec les chiffres obtenus sur ton fichier : attention le délai observé est très subjectif et comme j'ai inhibé le mouvement à l'écran tu as sans doute l'impression d'attendre alors qu'avant cela "bougeait".

- Ajout de boutons pour naviguer entre les pages

Sans doute qu'un lien hypertexte aurait suffit mais tu as le droit de jouer avec boutons et macro ! :) ;-)

1°) Lorsque je tape un nouveau N° colonne D

Dans une précédente discussion, j'avais vu que la mise à jour de l'écran était implicite en fin de procédure mais ce n'est pas tout à fait concluant : il vaut mieux le préciser.

2°) Serait-il possible lorsqu'un N° est "Inexistant",

Pourquoi le double clic ne renseignerait-il pas le N° cherché pour créer la référence ?
Regardes si cela te convient.

3°) Lorsque un N° "doublon" est entré

Du fait du classement, l'on recherche la valeur saisie et l'on tombe sur la première : Les doublons n'étant pas bienvenus, ne devrait-on pas empêcher leur saisie ?

4°) Petit bug cependant : en bas de la table,

Effectivement il faut calculer différemment.

je ne fais rien de probant qui fait évoluer le fichier à part l'utiliser...

Peut-être mais tes analyses sont judicieuses et utiles. :)
Tu n'auras pas à "chômer" encore avec l'objet du délit qui nous préoccupe :

http://www.cijoint.fr/cjlink.php?file=cj201109/cijajAZAUb.xlsm
0
MikeThe7 Messages postés 48 Statut Membre
 
Bonjour GB et Eric,

Je reprends les points précédents :
- En effet plus de latence avec la nouvelle version même sur plusieurs pages. Je vais tout de même garder les 50000 par page, c'est aussi plus pratique pour importer les tables.
- Je n'avais pas pensé aux liens hypertexte, je trouve cela moins pratique que les boutons, car avec les liens, je suis limité au nombre de cellules disponibles (où caser la page 1 (4) ou la 3 (1) ?)

1°) Parfait, l'affichage suit maintenant la ligne triée.

2°) Truc de fou, super pratique, mais j'ai l'impression que cela ne fonctionne pas pour les numéros en 3000... et les N° en 2000... sont classé dans la table des 1000...
EDIT : En fait j'ai fermé Excel puis réouvert, et maintenant tout fonctionne correctement. Je ne sais pas ce qui s'est passé, mais tout est maintenant rentré dans l'ordre.

3°) Après réfection, c'est très bien comme c'est. La sélection de la ligne du dessus permet de voir ce qui se passe. Je ne suis pas pour interdire les doublons, avec la méthode d'entrée par la recherche, la solution s'est imposée d'elle-même.

4°) Les N° de boite sont correctement renseignés à présent.

Je ne veux pas faire de la lèche, mais tu es réellement un dieu !

Je vais continuer à tester cet aprème, je te tiens au courant.

Bon appétit et à bientôt.

Mike.
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Un petit coucou pour m'associer à mike pour les félicitations :-)
Je n'aurais sans doute pas été aussi loin, bravo (et merci encore pour le relais :-) )
eric
0
MikeThe7 Messages postés 48 Statut Membre
 
Coucou Eric,

Je te remercie d'avoir entamer ce qui sera sans doute le plus abouti des classeurs Excel que j'ai rencontré. De plus avec toutes les annotations dans les macros, je serai certainement amené à réutiliser les formules pour d'autres utilisations (une fois que je les aurai bien assimilées bien sur ^^)

Ma collègue ne se demande plus pourquoi je rie tout seul devant mon écran, elle me dit juste :
"Encore une nouvelle version du classeur ?"

Je reste admiratif du potentiel d'Excel sublimé par un maître d'oeuvre hors du commun.
Chapeau bas GB !

Mike.
0
MikeThe7 Messages postés 48 Statut Membre
 
Je vais faire quelques modifications, principalement mise en page et boutons ce week-end. Je posterai le classeur dès lundi.

En vous remerciant encore, je vous souhaite un bon week-end et un repos bien mérité.

Mike.
0
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 731
 
bonjour MikeThe7, coucou à Éric,

Merci pour les appréciations mais vous en faites un peu beaucoup je crois.
Tu as Éric démarré la bonne méthode de gestion de ce classeur et je n'ai fait que la compléter en prenant le relais à ta demande mais en mettant bien sûr mon grain de sel particulier : chacun a ses petits penchants ;-)

Comme tu n'aimes pas les liens hypertextes Mike, je te comprends car effectivement il est possible d'avoir quelque chose de plus simple et totalement évolutif. Je te propose cette version qui intègre automatiquement toute nouvelle feuille en facilitant la navigation.

http://www.cijoint.fr/cjlink.php?file=cj201109/cijeZhPpho.xlsm

J'en ai profité pour corriger quelques petits bugs qui auraient pu bloquer le fonctionnement.
Comme tu dis, le potentiel d'Excel est très grand et avec pas mal de coups de rames comme disait Éric il est possible de s'amuser un peu pour faciliter la gestion d'applications.
0
MikeThe7 Messages postés 48 Statut Membre
 
Slt GBinforme et Eric,

Sympa la petite fenêtre pour passer d'une page à l'autre Je ne connaissais pas du tout les ComboBox, encore une chose de plus sur laquelle je me pencherai...
Petite question, comment la faire apparaître si elle a été fermée ? Est-il possible qu'au moment où je sélectionne une feuille, la cellule sélectionnée soit la dernière de la table (comme quand je fais flèche droite sur la colonne "I") ?

J'ai un petit bug sur la nouvelle version du fichier : Lorsque je sélectionne les lignes ou les colonnes masquées (par exemple en sélectionnant "H", "I" et en continuant dans le vide sur la droite), j'ai l'erreur suivante :
"Erreur d'exécution '6':
Dépassement de capacité
Fin <-> Débogage <-> Aide"
Je clique donc sur Fin, je fais clique-droit sur les lignes ou les colonnes sélectionnées, et là même erreur. Après avoir cliqué sur Fin une seconde fois, le menu du clique droit apparait et je peux choisir d'afficher les colonnes ou lignes masquées.
Jusqu'à maintenant ce bug ne me gênait pas, mais sur le nouveau fichier, je ne peux afficher les lignes masquées. Par exemple sur la feuille 1, je ne peux afficher au delà de la ligne 514, ce qui est problématique pour importer mes tables.

Sur la feuille "Stat", j'ai voulu coller mes boutons sans avoir à les refaire, mais je n'y suis pas arrivé alors que j'ai pu le faire sur toutes les autres feuilles. Il y a quelque chose que j'ai mal fais ?

Merci pour toutes ces améliorations et les précisions apportées qui me sont fortes utiles.

Mike.
0
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 731
 
bonjour MikeThe7, coucou à Éric,

comment la faire apparaître si elle a été fermée ?

Elle est lancée à l'ouverture par Workbook_Open qui ne fait que cela et donc tu peux l'exécuter quand tu veux ou fermer/réouvrir.

la cellule sélectionnée soit la dernière de la table

Tu rajoutes la ligne en gras dans cette procédure (code navigation) :
Private Sub Choix_Change()              'affichage feuille choisie
    Sheets(Choix.Text).Activate
    [I3].Select

J'ai un petit bug

Je pense que c'est un gros bug excel car pour éviter tout problème si tu fais des sélections multiples, j'ai mis le contrôle :
If sel.Count > 1 Then Exit Sub
pour ne traiter que la sélection unitaire en colonne I, mais le compteur (count) d'excel est en dépassement de capacité : je pense qu'ils ont dû garder le dimensionnement des versions avant 2007 :)
Essaies de mettre la ligne en commentaire (apostrophe en début de ligne).

Sur la feuille "Stat", j

Non tu n'as rien fais de mal mais comme j'utilise l'événement "activate" de cette feuille il supprime ton copier. Pour le faire, tu changes provisoirement le nom de la macro :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
par exemple :
Private Sub xWorkbook_SheetActivate(ByVal Sh As Object)

Tu n'as pas chômé comme je disais car tu as bien navigué pour trouver tous ces petits pièges.

Bon courage à toi.
0
MikeThe7 Messages postés 48 Statut Membre
 
Bonjour GBinforme et Eric,

J'apprécie d'avoir pu modifier les macro avec tes informations, c'est très formateur plutôt que d'utiliser le classeur fourni par vos soins.

J'ai maintenant pu mettre les boutons sur toutes les feuilles et fait ma mise en page comme je le souhaitais.

Pour le bug de l'affichage des lignes masquées, j'ai du manqué une ligne de "If sel.Count > 1 Then Exit Sub" car il m'est impossible d'afficher au delà de 2 lignes sous le tableau. J'ai donc rusé et inséré des lignes dans le tableau, après avoir remis les macro comme elles étaient.

Le classeur est à présent complètement fonctionnel, j'ai même un bouton pour faire réapparaitre la navigation par la fenêtre "choix de feuille" lorsqu'elle a été fermé.

Il ne me reste plus qu'à mettre la saisie semi-auto dans les listes de choix et là je pense que le classeur sera vraiment fini...

Je tiens vraiment à vous remercier pour l'excellent travail que vous avez réalisé, pour le temps passé à comprendre ma problématique, pour l'investissement et la rapidité avec laquelle vous avez comblé toutes mes demandes.

Bien entendu, je vous enverrai une copie du classeur finalisé d'ici peu.

Avec toute ma gratitude, Mike.
0
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 731
 
bonjour MikeThr7,

J'apprécie d'avoir pu modifier les macro avec tes informations,

C'est le but du forum et je savais que tu en avais tout à fait la possibilité.

Pour éviter le bug avec count, tu peux remplacer par CountLarge :
If sel.CountLarge > 1 Then Exit Sub
il y en a deux dans ThisWorbook.

Tu vois que l'on apprend tous les jours : il faut suivre les évolutions.
0
MikeThe7 Messages postés 48 Statut Membre
 
Re-bonjour,

Une petite question,

J'aimerai que, lorsque je viens de taper un N° dans la TextBox, au lieu d'attraper la souris pour double-cliquer sur le N° de boite pour insérer une nouvelle ligne, je n'ai qu'à appuyer sur Entrée pour le même résultat.
Cela est-il possible ?
0
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 731
 
Bonjour MikeThe7,

Comme ton classeur a bénéficié de tes modifications, tu vas continuer à modifier le code pour obtenir ton résultat souhaité.

La fonction réalisée par le double clic est incluse dans cette procédure événementielle globale, il faut donc en faire une fonction autonome :
- tu vas dans l'éditeur VBA
- tu sélectionnes le module gestion_boites
- puis menu insertion / procédure et tu saisis un nom, par exemple cre_ref
- dans ThisWorkbook et Private Sub Workbook_SheetBeforeDoubleClick
- tu sélectionnes les lignes entre
        If [C1].Value <> "" Then        ' recherche non trouvée
et
             Cancel = True

- tu coupes et tu colles dans la procédure cre_ref précédemment créée
- dans ThisWorkbook et Private Sub Workbook_SheetBeforeDoubleClick
- tu remplaces les lignes coupées par
           Call cre_ref                ' référence crée

Ta procédure double clic continue de fonctionner et il ne te reste plus qu'à l'introduire dans l'événement de saisie "entrée" de la textbox.
- tu sélectionnes la feuille de code de la feuille "Feuil5"(Recherche)
- tu colles cette fonction :

Private Sub TbxRech_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then Call cre_ref
End Sub

Avec double clic sur la feuille ou "entrée" dans la textbox tu crées maintenant la référence saisie.

Voilà quelques petites manipulations qui devraient te permettre de maitriser le fonctionnement du codage VBA.
Bonne journée.
0
MikeThe7 Messages postés 48 Statut Membre
 
Bonjour GBinforme et Eric,

Juste une précision pour être sur de bien faire, lorsque tu dis
"- tu sélectionnes les lignes entre

If [C1].Value <> "" Then ' recherche non trouvée
et
Cancel = True
"
Le "Entre" signifie bien que ces lignes ne sont pas incluses ?
Il y a 2 "Cancel = True" dans cette fonction, je pense qu'il faut s'arrêter au 1er, ai-je raison ?

Je suis très content de tripoter le VBA sous tes directives avisées.

EDIT : Cela marche super bien pour l'insertion avec "Entrée".
Le petit "hic" c'est que lorsque la référence existe déjà, au lieu de m'amener sur la ligne de la table correspondante, le fait de taper "Entrée" recrée une ligne avec la référence. J'imaginais plutôt que la touche "Entrée" aurait eu exactement la même fonction que le double clic sur la feuille :
- Si la réf. n'existe pas -> une nouvelle ligne est créée.
- Si la réf. existe -> aller à la ligne correspondante.

Je vais regarder de plus près la macro cre_ref pour voir si je peux adapter.


EDIT 2 : Est-ce que par hasard, il ne faudrait pas insérer cela dans cre_ref ?
If IsNumeric(rsu(1)) Then
Sheets(rsu(0)).Activate ' sélection feuille choisie
Cells(rsu(1), 2).Resize(1, 7).Select ' sélection ligne choisie

Au passage merci pour les commentaires, ça aide vraiment.
Par contre, comme je ne comprends pas tout sur la formule "Workbook_SheetBeforeDoubleClick", je ne sais pas si je peux le retirer et l'insérer directement sans dans cre_ref sans faire de dégâts...


EDIT 3 : Après utilisation et avoir rencontré des cas particuliers, c'est mieux de rester comme ça. En effet, lorsqu'il y a par exemple a supprimer une réf. alors qu'elle se trouve dans une plage de N°, c'est bien pratique que de pouvoir l'insérer directement avec "Entrée" ou d'accéder avec le double-clic. On a le choix comme cela et c'est parfait.

Je m'arrete là pour cette semaine, encore merci pour toutes ces explication fortes utiles.

Bon week-end et à bientôt.
0
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 731
 
Bonjour MikeThe7,

Désolé mais j'ai profité des rayons du soleil vendredi et je ne pouvais te répondre : tu t'es bien débrouillé :)
0
MikeThe7 Messages postés 48 Statut Membre
 
Une dernière chose en fait...

J'aimerais que lorsque je clique sur mon bouton pour aller sur la page de recherche, ce ne soit pas une cellule qui soit sélectionnée mais la Textbox.
Je sais choisir une cellule particulière mais pas la Textbox.
L'idéal serait que la Textbox soit sélectionnée et que le contenu soit en surbrillance, prêt à être remplacé par la nouvelle frappe. En fait encore mieux, à chaque fois que j'arrive sur la feuille recherche, ce serait top !

Est-ce dans le domaine du possible ?

Bon promis c'est fini ce coup-ci ^^... Jusqu'à la prochaine idée...
0
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 731
 
Bonjour MikeThe7,

En cette fin de week-end, voici les modifications à faire pour
à chaque fois que j'arrive sur la feuille recherche...

Pour cela, il faut d'abord inhiber la sélection de cellule sur cette feuille.
Tu rajoutes la partie en gras dans cette procédure (code navigation) :

Private Sub Choix_Change()              'affichage feuille choisie
    If Choix.Text <> rch Then [I3].Select

- dans ThisWorkbook tu rajoutes ce qui est en gras pour gérer la textbox :
ici
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Select Case Sh.Name
    Case rch
        Feuil5.TbxRech.Activate
    Case sta

et là
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal sel As Range, Cancel As Boolean)
Select Case Sh.Name
    Case rch
        Feuil5.TbxRech.Activate

- tu sélectionnes la feuille de code de la feuille "Feuil5"(Recherche)
- tu colles cette fonction pour sélectionner la saisie précédente :

Private Sub TbxRech_GotFocus()
    TbxRech.SelStart = 0
    TbxRech.SelLength = TbxRech.TextLength
End Sub

Le retour en recherche te permettra de saisir directement ta nouvelle référence.

Voici le classeur pour pouvoir vérifier, avec les fonctions "entrée" et double clic identiques en "Recherche"
http://www.cijoint.fr/cjlink.php?file=cj201109/cijM0BOVhb.xlsm
0
MikeThe7 Messages postés 48 Statut Membre
 
Bonjour GB et coucou à Eric,

Je te remercie une fois de plus pour tes explications.
Je n'aurais pas le temps de regarder cela cette semaine, je pars en vacances aujourd'hui. Je m'y remets dès lundi prochain et je te tiens au jus.

A bientôt, Mike.
0
MikeThe7 Messages postés 48 Statut Membre
 
Bonjour à tous,

Le retour de vacances est difficile, mais on s'y remet gentiment.

Donc, j'ai intégré les lignes que tu m'as indiqué.
Observations :
- Parfois lorsque je viens sur la feuille "Recherche", la TextBox n'est pas visible et apparait seulement lorsque je tape quelque chose au clavier.
- Imaginons que je cherche le N° 1/16320. Lorsque je vais taper 1/1 (le N° 1000000001 existe dans la table), le 1/1 va se mettre en surbrillance et quand je vais taper la suite du N°, cela va donc remplacer le 1/1.
- Parfois lorsque je double-clic sur la ligne affichée sur la table sur la feuille recherche, cela me crée une ligne (donc un doublons d'un N° existant déjà) au lieu de m'amener sur la ligne recherchée.

Comme je te l'ai indiqué, je préfère rester sur la versions où "Entrée" et double-clic ont des fonction différentes.

Je te mets les 2 Versions du fichier :
1°) Celle que j'utilise actuellement.
http://www.cijoint.fr/cjlink.php?file=cj201109/cijCzSoUPg.xlsm

2°) La version modifiée selon tes indications :
http://www.cijoint.fr/cjlink.php?file=cj201109/cijzc7q8Cy.xlsm

Si je veux que mon bouton m'amène sur la textbox directement il me faut simplement rajouter "Feuil5.TbxRech.Activate" dans ma macro ou est-ce plus compliqué que cela ?

D'avance Merci, Mike.
0
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 731
 
Bonjour MikeThe7,

Je suis parti de ta version 9 puisque l'autre n'était pas satisfaisante.

- Parfois lorsque je viens sur la feuille "Recherche", la TextBox n'est pas visible

J'ai modifié ton module boutons pour éviter cela et j'ai changé le nom pour le lancement de la navigation : cela fonctionnait certes mais "Workbook_Open" est réservé pour l'ouverture du classeur et il vaut mieux ne l'utiliser que dans thisworkbook.

- Imaginons que je cherche le N° 1/16320. Lorsque je vais taper 1/1 ...

Cela était dû à la mise en forme conditionnelle que j'avais rajouté pour visualiser la référence et qui exige une sélection de cellule. Si la référence est trouvée, je t'ai mis un bip mais tu peux continuer à saisir : cela devrait être mieux.

- Parfois lorsque je double-clic sur la ligne affichée sur la table sur la feuille recherche...

La formule de la cellule qui affiche la boite où devrait se trouver la référence absente avait été modifiée : j'ai changé la cellule de test dans la macro et remis la formule.


Si je veux que mon bouton m'amène sur la textbox directement il me faut simplement rajouter "Feuil5.TbxRech.Activate" dans ma macro ou est-ce plus compliqué que cela ?

C'est effectivement un peu plus compliqué. Il faut effectivement activer la textbox en activant sa feuille mais il faut aussi que la textbox soit restée active lorsque sa feuille a été abandonnée. C'est pour cela que j'ai modifié tes boutons afin d'activer la box avant le départ. Si tu as cliqué sur une cellule avant le départ, c'est cette cellule qui reste active au retour même si tu actives la textbox.


http://www.cijoint.fr/cjlink.php?file=cj201109/cij8omS7n3.xlsm

C'est sûr que tes boutons avec un beau design sont beaucoup plus "class" que les liens hypertexte même si l'on avait peaufiné un peu l'esthétique.
Bon test et bonne nuit.
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonsoir tout le monde,

Et bien, j'ai joué un peu avec par curiosité, c'est un outil complet maintenant.
Et ta question de départ était j'ai un problème avec recherchev() :-)
Peut-être même que du coup tu vas au boulot avec un léger sourire ! ;-)

A+
eric
0
MikeThe7 Messages postés 48 Statut Membre
 
Bonjour à vous les Big Boss !

C'est sûr que cet outil me facilite grandement la vie :
- Plus besoin de rechercher physiquement dans les boites pour vérifier la présence d'un document
- On sait maintenant directement dans quelle boite chercher.
- Lors de la saisie des nouveaux numéros, ne pas avoir à taper la date ni le N° de boite à chaque fois nous fait gagner du temps.
- Pour les graph, la feuille Stats est très pratique, tout est déjà classé et trié.
- Le repérage et le traitement des doublons est devenu indispensable.


@ GBinforme :
- Pour ce qui est de la disparition de la TextBox voici l'exemple en image :
https://imageshack.com/
En effet cela se produit si j'ai sélectionné une autre cellule avant de changer de feuille. Ensuite lorsque je clique sur le bouton "Rechercher" depuis une autre feuille, la Textbox n'est plus visible mais bien présente. Il suffit d'écrire quelque chose pour la voir se matérialiser immédiatement. Ce n'est vraiment pas un bug gênant étant donné qu'il n'empêche en rien d'utiliser l'outil de recherche.

- La saisie dans la TextBox est beaucoup mieux maintenant. Rien à redire là dessus.

- En effet, j'avais modifié la formule de C1 parce que je voulais voir s'afficher le N° de boite même si le N° de document recherché était présent dans la table. D'où le bug de l'insertion à chaque fois que je double-cliquais pour accéder à une ligne dans une table. J'aurais du remarquer que cela arrivait depuis ma modif... Mea Culpa.

- Pour ce qui est des boutons, autre l'aspect "class", l'avantage est surtout de ne pas être bloqué par un nombre de cellule, par leur largeur ou par une police particulière. Après j'orai pu coller des belles images et leur attribuer des macro ou des liens hypertexte... Que c'est bon d'avoir le choix !

Je sens que l'on arrive au bout de ce qu'il était nécessaire de faire sur ce classeur et mes remerciements vous sont encore une fois adressés pour la somme et la qualité du travail réalisé.

Mais on ne va pas se quitter comme cela, je suis en train d'élaborer un autre classeur pour tout autre chose... Je vais peut-être avoir besoin de vos lumières encore une fois... Affaire à suivre ! ;-)

Mike.
0
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 731
 
bonsoir MikeThe7,

- Pour ce qui est de la disparition de la TextBox voici l'exemple en image

Si tu as pris toutes les modifs du dernier classeur cela ne se produit plus.

Si c'est encore le cas il te manque des modifications ou tu fais une manipulation particulière que je ne teste pas : donnes nous le cheminement précis.

Pour avoir ton écran, la seule manière trouvée, c'est de cliquer sur "recherche" et effectivement tu peux supprimer le test que j'ai copié par erreur dans "Go_Recherche" (les 3 premières lignes).
0
MikeThe7 Messages postés 48 Statut Membre
 
Bonjour GBinforme et Eric,

Pour la disparition c'est simple :
- Je prends le dernier classeur que tu m'as fourni
- Je suis sur la feuille Recherche
- Je tape un N° dans la TextBox
- Je sélectionne une cellule sans double-cliquer dessus
- Je change de feuille par l'outil "Choix de feuille" ou par les onglets en bas de feuille
- Je clique sur le bouton "Rechercher" ou je retourne sur la feuille "Recherche" par l'outil "Choix de feuille"
- Et la, visuellement, la TextBox a disparu sauf les 3 derniers N° qui restent visibles sur fond blanc.

Cela ne se produit pas si je double-clic sur la feuille recherche pour aller à une ligne spécifique dans une table.

Autre chose j'ai du créer la feuille "4" pour les étiquettes en 4000...
L'outil "Choix de feuille" fonctionne très bien et s'est mis à jour automatiquement.
Par de soucis non plus pour entrer des nouveau N° sur la table, en tapant 5631 on obtient bien 4000005631.
Par contre lorsque je veux insérer un nouveau numéro par l'outil de recherche, en mettant 4/5631, il va se coller en fin de feuille 3.
=> Pour ce problème là, laisse moi chercher un peu, je vais voir si je ne trouve pas la solution tout seul.

A bientôt, Mike.
0