Plantage VBA recherche

Bonjour à tous,

J'ai une base de données avec quelques milliers d'enregistrements. J'ai produit mes formulaires, tout est terminé. Mais voilà que lors de la démonstration (après avoir chargé leur base de données) pouf, erreur. Quand je découpe la base (en ne laissant que 800 lignes) ça marche. Mais lorsque j'augmente le nombre de ligne (2000) j'ai une erreur et tout plante. La base fera facilement 10.000 lignes. Chaque ligne n'est pas longue, mais bon.

Bref, voici le code VBA de mon formulaire de recherche. Existe-t-il une solution à mon problème ?

Un tout grand merci

'Formulaire de recherche réactif
Private Sub TextBox2_Change()
Me.ListBox1.Clear
For Each C In [Liste]
If UCase(C) Like "*" & UCase(Me.TextBox2) & "*" Then Me.ListBox1.AddItem C
Next C
End Sub

Bonsoir,

il manque quelques données, non ?

[Liste] représente quoi ?

Quel est le numéro du code erreur, ou bien le texte complet ?

L'erreur se produit-elle avec des recherche différentes ?

Apparaît-elle toujours sur le même numéro de ligne Excel ?

Pour ce qui est des List Box vous pouvez ajouter autant d'item que vous voulez, le soucis, même si cette possibilité n'entraine pas d'erreur, les index de ce type de contrôle sont dimensionnés en Integer soit 32757 (je crois) les autres index seront en décroissant en négatif... Bref pas simple. En plus à quoi ça sert une liste de choix de 32000 item !

Donc dans votre cas ce n'est pas la limitation de la List Box, ce doit être autre chose, mais là comme dit plus haut, il manque des infos...

@ bientôt

LouReeD

Bonjour eriiic,

je vois que vous naviguez également d'un site à un autre !

Quand on a un problème, doit on être fidèle à un forum ?

ceci dit c'est une information qui peut être donnée sur le post...

@ bientôt

LouReeD

Bonjour LouReed,

Pourquoi, ça pose un problème de pouvoir savoir si c'est résolu ailleurs et de ne pas chercher pour rien ?

Cette info aurait due être fournie par le demandeur.

eric

Bonsoir,

Pourquoi, ça pose un problème de pouvoir savoir si c'est résolu ailleurs et de ne pas chercher pour rien ?

Je suis d'accord avec vous, nul besoin de se pencher sur un sujet "déjà" résolu...

Ceci dit il n'est pas rare de voir sur le forum plusieurs intervenants donner une solution "supplémentaire" à un sujet résolu, juste pour indiquer qu'il y a plusieurs façon d'arriver au but recherché.

Et veuillez m'excusez de ne pas avoir compris ci-dessus votre question : "le sujet a t il trouvé une solution sur l'autre forum ?"

Question d'ailleurs qui est également posée sur l'autre forum...

Je pense qu'à l'heure actuelle il n'y a point de résultat, on peut donc continuer à faire ce que vous savez faire (qu'on sait faire) :

trouver des solutions, mais pour cela il va falloir soit un fichier soit des précision sur les données du code, non ?

@ bientôt

LouReeD

Ceci dit il n'est pas rare de voir sur le forum plusieurs intervenants donner une solution "supplémentaire" à un sujet résolu,

Tout à fait, et ça m'arrive de temps à autre.

Encore faut-il savoir ce qui a été proposé pour éviter les redites inutiles

Bonjour,

Veuillez m'excuser pour le retard, j'étais à l'étranger :/

Voici le fichier nettoyé. En gros, le formulaire se lance, la zone de recherche se base sur la feuille "encodage" et cherche tout caractère présent dans trois cellules (grâce à une concaténation). La valeur choisir dans la liste apparait sur la feuille ACCUEIL (et sera masquée). A partir de là, la personne cliquera sur WO ou autre et pourra voir son encodage.

Actuellement, il y a trois encodages. J'ai pu constater (mais je n'ai pas le fichier à disposition) que le programme "bug" lorsqu'il doit scanner une grosse base de données avec concaténation des trois champs. L'un des champs est "long" et peut comporter 256 caractères... je ne sais pas si le problème vient de là.

Ma demande serait de voir si ma formule toute basique pour la recherche pourrait être optimisée. Ou si vous avez une autre solution....

bref, le sujet n'est pas résolu

Merci


Petit ajout: le problème était "liste" qui se met en jaune lorsque le code bug. Ce qui me laisse penser que c'est le fait de rechercher sur un champ "trop long" qui reprend le numéro de WO, la description etc....

Une cellule pleine à craquer *8000 = gros pour la recherche. Mais bon, pas moyen de faire autrement :/

Encore une fois, désolé mais je n'ai pas le fichier avec les données (fichier comportant les 8000 lignes) sous le coude. En plus, ces données sont confidentielles ...

Bonjour nemisius,,

Je n'ai malheureusement pas trouvé de solution à ton problème ; cela dit,

je ne sais pas si tu as lu le message d'eriiic du 9 octobre à 00:03.

Si oui, j'espère que tu ne lui en veux pas trop pour avoir si gentiment pris le temps et la peine

d'informer les lecteurs du forum que tu avais commis un abominable crime de lèse-majesté :

celui d'aller poster ta demande sur un autre forum.


Vois-tu, il semblerait que ce soit tout à fait impensable et inconcevable de poster une même

demande sur plus d'un forum à la fois, et peu importe si le demandeur est dans une pénible

et plus ou moins grave situation d'urgence (comme par exemple : son employeur risque de

le virer s'il ne rend pas son travail à temps).

Bien sûr, tout le monde aura remarqué sa façon courte et lapidaire de balancer son information,

aussi sèche que le coup de marteau du Juge dans un prétoire, ou que le couperet d'un boucher,

effet naturellement voulu pour que cela sonne comme une accusation terrible et sans appel :

la sentence est tombée et est irrévocable !


Le sieur eriiic n'a pas dû en croire ses oreilles quand ton bienfaiteur LouReeD a pris ta défense :

LouReeD a écrit :

Bonjour eriiic,

je vois que vous naviguez également d'un site à un autre !

Quand on a un problème, doit-on être fidèle à un forum ?

ceci dit c'est une information qui peut être donnée sur le post...

@ bientôt

LouReeD

Sans doute était-ce un effet de la Toute Puissante Justice Divine, qui a voulu rendre

Sa Justice sur Terre parmi les Hommes de bonne volonté.

Un grand merci à LouReeD pour sa judicieuse intervention ! grâce à des personnes

comme lui, il reste encore un espoir en ce bas monde !

Cordialement

@ bientôt

LouReeD

Dhany, alias Albkan, alias Claude, alias Pierre, alias hervé, alias victor, alias frank, alias une cinquantaine d'autres pseudos tu commences à me les casser sérieux.

Alors je suis peut-être lapidaire dans mes posts mais toi tu pollues les topics avec tes laïus à rallonge pleins de hors sujet qui noient les autres réponses.

Tu t'es fait virer avec pertes et fracas de l'autre forum, essaie de prendre ici de meilleures habitudes.

Tiens toi éloigné de moi stp, ça vaut mieux pour tout le monde. Merci.

eric

Mais qui donc est ce Monsieur Alias dont tu nous rebats les oreilles ? je ne comprends pas !

peut-être une personne du cabinet d'Avocats Alias & Alias & Alias & ... & Alias & Cie ?

En tout cas, tu parles d'une super concaténation ! ne crois-tu pas que ça risque de dépasser la limite

maximale de la longueur d'une chaîne de caractères Excel ? tu vas le mettre à genoux, ce pauvre

tableur que tout un chacun apprécie tellement ici !

Souffrirais-tu de schizophrénie, mon pauvre éric, pour voir ou imaginer des M. Alias partout ?

quand tu rencontreras ce M. Alias ou ce M. Avatar ou ce M. X, surtout, quelque soit son pseudonyme,

n'oublie pas de lui passer le bonjour de ma part ! et n'hésite pas à l'inviter sur ce forum :

plus on est de fous, plus on rit !!!


J'ai remarqué que tu as choisi le pseudo eriiic avec 3 i ; est-ce une dérivation d'un éventuel caractère

psychopathe ? mais si ça peut te faire plaisir, je ne vois aucun inconvénient à ce que tu ajoutes autant

de i que tu veux dans ton pseudo, cinquante même, si ça t'amuse !


[quote="eriiic"]tu commences à me les casser sérieux.[/quote]

Comment ? je suis nouveau sur ce forum, inscrit depuis à peine 1 mois, et c'est comme ça que tu m'accueilles ?

est-ce cela, ta façon polie et courtoise de souhaiter la bienvenue ? on peut dire que tu as un don, toi, pour organiser de si

charmantes réceptions ! je pense qu'un job d'hôtesse d'accueil ou de diplomate te conviendrait très bien !

ou pourquoi pas un chargé des relations publiques et des représentations dans les médias ?


[quote="eriiic"]je suis peut-être lapidaire dans mes posts mais toi tu pollues les topics avec tes laïus à rallonge pleins de hors sujet[/quote]

Hors sujet, c'est à voir ! mais ce qui est certain, c'est que certaines personnes de ton acabit n'ont évidemment pas les capacités

pour lire un sujet de plus de deux ou trois lignes ! si tu es comme moi bénévole donc non rémunéré, de quel droit te permets-

tu de critiquer les articles des autres simplement parce que leur longueur te déplaît ? personne ne t'oblige à lire les très longs

articles, ni à prendre sur ton temps de libre pour venir déverser ta bile sur les personnes qu'une lubie quelconque fait que tu

les prends soudainement en grippe ! alors retourne à ta programmation VBA, ça vaudra mieux pour tous ! et stp, essaye

de mettre en veilleuse ton mauvais caractère et ta personnalité irascible, au moins pour quelques temps : tu nous fera des

vacances ! contrairement à toi, je suis venu sur ce forum pour lire les articles sur Excel et pour aider les autres si possible,

pas pour agresser les membres de ce forum.

Outre ta charmante disposition pour jouer les délateurs bénévoles et dénoncer ceux qui osent poster leur demande

sur un autre forum (le présent demandeur nemisius en sait quelque chose ; voir plus haut le Jugement de M. eriiic),

on peut dire que tu cumules les qualités !!! À tout hasard, je te signale que la seconde guerre mondiale

est terminée, qu'on n'est plus sous l'occupation Allemande, et donc tu peux cesser de jouer les collabos.


[quote="eriiic"]Tiens toi éloigné de moi stp, ça vaut mieux pour tout le monde.[/quote]

Tiens, c'est bizarre, ça ! il me semblait qu'un forum est un lieu d'échange public où tout un chacun se doit d'être poli et courtois

envers les autres... me serais-je trompé ? pourtant, lorsque je me suis inscrit sur ce forum, j'avais bien lu en détail « [A LIRE AVANT

DE POSTER] Explications et règles à respecter », notamment le point 5 :

5. Un minimum de politesse est de rigueur (bonjour, SVP, merci, ...)

Mais Môssieur eriiic, qui n'aime pas les articles longs, s'est sans doute abstenu de le lire ? Naturellement, il va de soi que ta jolie

métaphore « tu commences à me les casser sérieux. » ne rentre absolument pas dans cette catégorie ! je crois que tu devrais

retravailler tes relations publiques et améliorer le côté pittoresque et fleuri de ton vocabulaire !

À bon entendeur, salut !

Raccord battu pour le point Godwin, félicitation.

Bonjour Messieurs!

N'y a t il pas les MP pour tout ceci ?

@ bientôt

LouReeD

Bonjour LouReed,

Oui mais non. Ce n'est définitivement pas mon copain

eric

Bonjour LouReeD,

Oui, je trouve que tu as tout à fait raison ; j'espère qu'eriiic a compris la leçon, et ne m'attaquera plus en public sur le forum :

s'il ne peut pas s'empêcher de me critiquer pour la longueur de mes articles ou autre, qu'il le fasse en MP, et donc en privé.

J'ai vraiment été ravi quand tu l'as remis à sa place comme il le mérite, et j'espère vivement que sur l'autre forum où il a eu

la gentillesse de dénoncer le demandeur nemisius, quelqu'un d'autre aura la présence d'esprit de faire de même !

Je reconnais volontiers qu'eriiic fait parfois de très bonnes formules Excel et qu'il est un très bon programmeur VBA,

mais Môssieur eriiic a tort s'il croit que ça l'autorise à tout se permettre !


[quote="eriiic"]Raccord battu pour le point Godwin, félicitation.[/quote]

comprendre ceci : « Record battu pour le point Godwin, félicitation. » ; je le remercie, car ce que j'ai écrit étant pour une personne

comme lui, c'est un honneur de se voir attribuer un point Godwin, et je le prends comme un compliment !


[quote="eriiic"]non, ce n'est définitivement pas mon copain[/quote]

qu'il se rassure, la réciproque est vraie aussi !


NB : j'aurais fait une réponse courte, s'il ne m'avait pas insidieusement attaqué dans sa réponse.

Cordialement

*Pendant ce temps là, perdu dans la capitale bruxelloise...*

Chouette l'ambiance "salon de coiffure" du forum

Est ce que par hasard l'un de vous aurait une idée pour ma petite recherche concaténée ? 10.000 fois une cellule pleine à craquer (base de la recherche), m'est d'avis que le problème se trouve là. Chez moi, la recherche est réactive, ça marche niquel. Mais demain matin, lors de la présentation: injection de la base de données et... il n'est pas impossible que je fasse une syncope

:/

Salut Nemisius,

Bonjour l'équipe!

J'ai l'impression d'être un peu idiot : tout le monde a l'air de comprendre le processus de recherche! Moi, pas du tout!

On peut m'expliquer ce qu'il cherche, où et comment?

A+

Bonjour,

pourquoi tu parles de concaténation nemisius ?

Ta ligne de code est

If UCase(C) Like "*" & UCase(Me.TextBox2) & "*" Then Me.ListBox1.AddItem C

eric

Je concatène trois cellules en une (trois type de donnée. Le WO, la description et la date).

La recherche se fait sur le champ concaténé. Ce qui me permet d'entrer une date, ou un numéro de WO, ou un mot de la description et de trouver directement mon bonheur .

Je peux vous mettre le fichier "terminé" demain si vous voulez . En espérant qu'il ne bug pas à la prez

Rechercher des sujets similaires à "plantage vba recherche"