Bug sur fonction .find
Résolu
mickysor
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai une macro comme ceci:
Dim A As Range
Set A = Range("listetag!I1:I" & Range("listetag!I65536").End(xlUp).Row).Find(TextBox1.Value)
If Not A Is Nothing Then
Me.Label9 = A.Offset(0, 1).Text
End If
Cette macro va me chercher une valeur dans une liste,lorsqu'on saisi sur le textbox1 la valeur à trouver et me l'affiche dans le label9
cette macro est mise dans le Private Sub TextBox1_Change.
Normalement lorsque tout marche bien, je commence à peine à saisir la valeur dans le textbox1 et au fur et à mesure il me trouve les données sans devoir saisir la valeur complète dans la textbox1.
Lorsque ça beugue, je suis obligé de saisir la valeur complète dans la textbox1,sinon ça ne marche pas?
Je ne comprends pas pourquoi ce bug ce produit.
Merci pour toute aide.
J'ai une macro comme ceci:
Dim A As Range
Set A = Range("listetag!I1:I" & Range("listetag!I65536").End(xlUp).Row).Find(TextBox1.Value)
If Not A Is Nothing Then
Me.Label9 = A.Offset(0, 1).Text
End If
Cette macro va me chercher une valeur dans une liste,lorsqu'on saisi sur le textbox1 la valeur à trouver et me l'affiche dans le label9
cette macro est mise dans le Private Sub TextBox1_Change.
Normalement lorsque tout marche bien, je commence à peine à saisir la valeur dans le textbox1 et au fur et à mesure il me trouve les données sans devoir saisir la valeur complète dans la textbox1.
Lorsque ça beugue, je suis obligé de saisir la valeur complète dans la textbox1,sinon ça ne marche pas?
Je ne comprends pas pourquoi ce bug ce produit.
Merci pour toute aide.
A voir également:
- Bug sur fonction .find
- Fonction si et - Guide
- Find and mount - Télécharger - Récupération de données
- Bug chromecast - Guide
- Bug localisation snap ✓ - Forum Snapchat
- Fonction miroir - Guide
2 réponses
Bonsoir,
on n'a que ça ne marche pas comme renseignement ?
C'est un peu léger...
Et un fichier de test avec les manip à faire pour reproduire l'erreur serait le bienvenu.
eric
on n'a que ça ne marche pas comme renseignement ?
C'est un peu léger...
Et un fichier de test avec les manip à faire pour reproduire l'erreur serait le bienvenu.
eric
Bonjour Messieurs,
Si on reprends l'idée de Michel_m de la textbox "liée" à une listbox, suffit de :
- dessiner un textbox (textbox1)
- dessiner une listbox (listbox1)
et d'utiliser ce code (de Michel_m trouvé ICI)
Ci-joint un classeur exemple.
Merci à Michel_M pour ce classeur
Cordialement,
Franck P
Si on reprends l'idée de Michel_m de la textbox "liée" à une listbox, suffit de :
- dessiner un textbox (textbox1)
- dessiner une listbox (listbox1)
et d'utiliser ce code (de Michel_m trouvé ICI)
Private Sub TextBox1_Change() Dim Tablo lettre = UCase(TextBox1.Value) If lettre = "" Then Exit Sub ReDim Tablo(0) ListBox1.Clear derLig = Sheets("liste").Range("A65536").End(xlUp).Row With Sheets("liste") For cptr = 1 To derLig test = .Cells(cptr, 1) If .Cells(cptr, 1) Like lettre & "*" Then Tablo(cptr_tablo) = .Cells(cptr, 1) cptr_tablo = cptr_tablo + 1 ReDim Preserve Tablo(cptr_tablo) End If Next End With ListBox1.List = Application.Transpose(Tablo) End Sub
Ci-joint un classeur exemple.
Merci à Michel_M pour ce classeur
Cordialement,
Franck P
http://cjoint.com/?0GzuMSQ9YUV
lorsque vous tapez dans le textbox (mad) il m'affiche dans le label en dessous (madrid).
pas obligé de saisir (madrid) en entier pour l'afficher dans le label.
cependant dans le vrai tableau (celui que je ne peux malheureusement vous envoyer car trop lourd) parfois cette recherche en faisant une saisie parcielle ne marche pas et il faut tout taper.ce qui est très embêtant car le vrai tableau sert à renommer des images jpg.les autres macros sont des insertion d'image , lui donner un nom via ce fameux textbox et cette macro de recherche et renommer le fichier réel en cliquant sur un bouton valider.
dans mes macros je suis parfois amené à faire sur ce userform un (unload me), userform1.show ou encore un (me.repaint).
C'est peu être ça qui peut me créer ce souci de recherche???
Pour l'instant je n'ai pas réussi....
Beaucoup d'autres actions peuvent s'effectuer entre 2 .find ?
Par sécurité je mettrais d'office les arguments optionnels suivants :
LookIn:=xlvalues, LookAt:=xlpart
Ils peuvent tous être affectés par un autre .find, voir même par d'autres fonctions de recherche, y compris sur feuille.
Je pense surtout à LookAt:=xlpart mais bon, autant mettre les 2.
eric
Ca va Eric ? ;o)
Xlpart est la valeur par défaut, donc...
la fonction Find cherche après une cellule non comprise dans la liste
pour ma part j'aurais écris ceci ( j'évite les codages mystérieux des variables à une lettre)
Private Sub TextBox1_Change()
Dim cellule As Range
With Sheets("listevilles")
Set cellule = .Columns("A").Find(TextBox1.Value, .Range("A65536"), xlValues)
If Not cellule Is Nothing Then Me.Label1 = cellule
End With
End Sub
autre point de vue
plutôt qu'un simple textbox , j'aurais utilisé un textbox_change et une listbox qui sélectionne au fur et à mesure les villes commençant par M puis MA etc
attention
.Range("A65536") concerne une version d'Excel <2007
de plus j'ai trouvé votre idée de listbox très intéréssante mais je ne l'ai jamais utilisée.il suffit de remplacer textbox1 par listbox1? c'est ça?
en tout cas merci pour toute votre aide