Et tu veux mettre cet "outil" où ? Dans une feuille de calculs ou dans un userform ?
Question subsidiaire : Comment réalises-tu tes saisies ?
Alors, je voudrais placer cette outils, fonction (comme vous voulez) dans un Userform, pour effectuer des saisies dans une textbox (et non combobox comme j'ai dit au dessus)
Exemple : rentrer le Nom, et conserver en mémoire ce nom pour le retrouver avec 2 ou 3 lettres ulterieurement.
que veux-tu dire ? Qu'en tapant deux ou trois lettres dans ton textbox, le nom s'afficherait ? C'est en effet possible dans l'événement Textboxn_Change, mais pour ça, il faudrait que tu nous confirmes ce point.pour le retrouver avec 2 ou 3 lettres ulterieurement
Il me semble qu'un ComboBox possède déjà cette fonctionnalité... Me tromperais-je ? Oui, peut-être un peu puisque la liste ne se déroule pas... L'effet visuel n'est pas le même, mais au final la fonctionnalité reste la même.
ouskel'n'or, j'aimerai la même "fonction", le même "evenement" (je ne connais pas le terme exact) que sur google (saisie), internet (pseudo, pw...), excel..., que les saisies précedemment effectuées restent "en mémoire" pour ne pas avoir à les retaper "en entier" ulterieurement.
zazaraignée, il s'agit bien de Textbox dans mon UF, et je ne compte pas changé (j'ai déjà du code qui s'y rattache).
J'aime bien les bricolages
Tu peux faire ça. Tu crées un tableau de tous les noms saisis dans ton textbox.
Tu as différents événements qui permettent de connaître la touche frappée.
Si keycode = 13 (entrée) ou keycode =8 (Tabulation) tu ajoutes le mot saisi dans ton tableau après l'avoir redimensionné (sauf si textbox est vide)
Ton tableau créé, dans l'événement Change de ton Textbox, tu analyses le bout de mot que tu saisis (à partir du troisième caractère renseigné) et, en parcourant ton tableau, tu en compares chaque item avec les trois caractères saisis. Si as correspondance, tu affiches l'item complet correspond.
Interdit l'enregistrement du mot obtenu puisqu'il existe déjà, et interdit la saisie de mots de moins de quatre caractères sinon tu risque les déboires.
Bref, pourquoi faire simple quand on peut faire compliqué ?
Et pourquoi ne pas faire une liste des techniciens et leur laisser sélectionner leur nom dans la liste. C'est plus sioux que leur demander de rentrer leur nom à chaque fois. Maintenant, si tu ne sais pas récupérer ce nom dans la liste, tu demandes
Bonne journée.
enfait, cette base est utilisée par l'ensemble de la boite (750 personnes+interimaire dont j'ai pas le noms), j'ai ni le courage ni le temps pour faire la liste complête. J'vais essayer ton truc.
Thks
J'ai une autre proposition :
Tu ajoutes une feuille de calculs masquée que tu nommes liste (pour correspondre à mon code.
Dans l'userform tu mets un combobox nommé ComboBox1, ainsi qu'un autre contrôle afin de pouvoir quitter le combobox par tab ou entrée.
Tu demandes à tes techniciens de saisir leurs noms.
Et tu mets ce code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) Dim ok As Boolean, i As Integer For i = 0 To ComboBox1.ListCount - 1 ok = ComboBox1 = ComboBox1.List(i) If ok Then Exit For Next If Trim(ComboBox1) = "" Then Exit Sub If Not ok Then ComboBox1.AddItem ComboBox1 Worksheets("Liste").Cells(Worksheets("Liste").Range("A65536").End(xlUp).Row + 1, 1) = ComboBox1 ComboBox1 = "" End If End SubAvec ça, à chaque nouveau nom saisi, si le nom n'existe pas dans le combo, tu le complèteras du nouveau nom et tu l'ajouteras à ta feuille Liste.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Private Sub UserForm_Activate() Dim cell As Range For Each cell In Worksheets("Liste").Range("A2:A" & Worksheets("Liste").Range("A65536").End(xlUp).Row) If cell <> "" Then ComboBox1.AddItem cell.Value Next End Sub
Ainsi quand tu relanceras ton appli, le combo sera mis à jour avec tous les noms préalablement saisi.
Le combo permet, lors de la saisie de lettre, de vérifier au fur et à mesure dans sa liste l'existance du mot correspondant. C'est tout de même plus mieux bien qu'un textbox 'vec un tableau et 'vec des tests à n'en plus finir.
Bonne journée.
(j'ai testé... y'a ni piège ni lézard )
Ouep, ça marche, mais c'est perfectible.
Voila, le nom qu'a rentré l'opérateur, doit ensuite s'inscrire dans un MSFlexgrid (sur mon Userform). Seulement, quand je rentre le nom et que je valide mon action, le Combobox ce vide et j'ai donc une case vide ds mon FlexG. Je suis obligé d'aller chercher manuellement le nom de la personne dans la liste de la Cbox pour que la case soit remplie.
Je continue a chercher de mon coté apres mangé.
BA
Normal.
Pour qu'un nom existant dans le combo ne s'ajoute pas au combo, j'efface Combobox1. On est obligé de passer par là.
Par contre, si avant de l'effacer, tu places le nom dans ton MSFlexgrid ou dans une variable transitoire, ça règle le pb.
Si tu prends l'option d'une variable tampon, il faudrait la déclarer en public en tête du code de l'userform (dans les déclarations)
Bon app.
Ah Ok très bien.
Dis voir en passant, t'aurai pas un p'tit tuto sur les variables tampons???
PS : Je poste mais j'ai pas encore chercher XD
Edit
héhé, j'ai trouvé un truc, j'vais me dépatouiller avec ça. J'te dis qd c'est good.
Merci encore, j'aurai jamais pu pondre un code comme ça (j'aurai pas eu l'idée du moins)
Suffit de mettreet tu as une variable tampon du type que tu veux
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dim VariableTampon as Cequetuveux
c'est pourtt simple
Merci bien, tout fonctionne
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager