Saisie automatique dans inputbox

  • Initiateur de la discussion Initiateur de la discussion JBARBE
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

JBARBE

XLDnaute Barbatruc
Bonjour à tous,
Lorsque je clique sur le bouton RECHERCHE, je voudrais que le nom (si il est présent dans la colonne A) s'affiche entièrement automatiquement dans le inputbox après que l'on ai saisie un ou 2 mots !
Merci à l'avance !
 

Pièces jointes

Bonsoir JBARBE
je ne pense pas mais je peux me tromper lol
que l'on puisse faire ce que tu veux a partir d'un InputBox (je ne connais pas d'événement que l'on puisse exploiter) ????mais tu pourrais cerer un Userform qui ressemblerait a un InputBox qui ferait ce que fait un InputBox mais qui ne serait pas un InputBox !
Amicalement
jean marie
 
Bonsoir JBARBE
je ne pense pas mais je peux me tromper lol
que l'on puisse faire ce que tu veux a partir d'un InputBox (je ne connais pas d'événement que l'on puisse exploiter) ????mais tu pourrais cerer un Userform qui ressemblerait a un InputBox qui ferait ce que fait un InputBox mais qui ne serait pas un InputBox !
Amicalement
jean marie
Bonsoir jean marie,
OK, pour l'Userform !
J'ai fait un combobox !
ça a l'air de fonctionner !
S' il y a quelques petites améliorations fait moi signe !
Bonne soirée !
 

Pièces jointes

Bojour JBARBE
j'espere que tu vas bien
question quelle est le But de cette recherche a part afficher le Nom du Cheval ?
voilà ce que j'ai mis en procédure "Initialize" du Userform .
VB:
Option Explicit
Dim DerLgn As Integer
Dim DerCol As Byte
Dim TabGeneral
Private Sub UserForm_Initialize()
With Worksheets("Feuil1") 'Avec la feuille
DerLgn = .Cells(.Rows.Count, 1).End(xlUp).Row 'On définit la dernière ligne non vide de la Colonne "A"
DerCol = .Cells(2, .Columns.Count).End(xlToLeft).Column 'On définit la dernièrColonne non vide de la Ligne 2
  With .Range(.Cells(3, 1), Cells(DerLgn, DerCol)) 'Avec la Plage ainsi définie
           .Sort .Cells(1, 1), , , , xlYes 'o trie la Plage en fonction de la Colonne "A"
     TabGeneral = .Value 'On récupére les données de la Plage dans un tableau temporaire
  End With
End With
With Me 'avec le Userform
With .ComboBox1 'Avec le ComboBox
          .List = Application.Index(TabGeneral, , 1)'On récupére la première colonne dans le ComboBox
End With
End With
End Sub
Dans l'attente
jean marie
 
Re,
Merci Jean Marie !
Le but de ce fichier est de se constituer une base de donnée afin de voir les performances, aptitudes etc ..... du cheval pour faire un jeu !
J'ai complété ma boite de dialogue de textbox afin que les données de chaque colonnes soient présentées lors de la saisie dans le combobox !
Hors ma macro ne les affiches pas !
Lorsque je clique sur OK la ligne du cheval correspondant est affichée !
A noter qu'il peut avoir plusieurs lignes saisies pour ce cheval !
Ce qui est nécessaire !
Là c'est OK !
Je voudrais également que lorsque le cheval n'est pas trouvé l'on puisse saisir dans la boite de dialogue les données nécessaires !
Le bouton insérer ligne sert à ajouter une ligne sous le cheval correspondant lorsque celui-ci est une nouvelle fois à l'arrivée !
Là l'on peut mettre ce bouton dans la boite de dialogue je pense et faire en sorte que la saisie aille dans cette ligne !
 

Pièces jointes

Re
une adaptation de Ton Code du ComboBox1
VB:
Private Sub ComboBox1_Change()
Dim lig As Variant
Dim Sht As Worksheet
Set Sht = Worksheets("Feuil1")
Application.ScreenUpdating = False
'------------
With UserForm1
lig = Application.Match(.ComboBox1, Sht.Columns("A"), 0)'On détermine la ligne ou se trouvent les données
.TextBox1 = Sht.Cells(lig, 2)
.TextBox2 = Sht.Cells(lig, 3)
.TextBox3 = Sht.Cells(lig, 4)
.TextBox4 = Sht.Cells(lig, 5)
.TextBox5 = Sht.Cells(lig, 6)
.TextBox6 = Sht.Cells(lig, 7)
.TextBox7 = Sht.Cells(lig, 8)
.TextBox8 = Sht.Cells(lig, 9)
.TextBox9 = Sht.Cells(lig, 10)
.TextBox10 = Sht.Cells(lig, 11)
End With
Application.ScreenUpdating = True
End Sub
tu dis :
A noter qu'il peut avoir plusieurs lignes saisies pour ce cheval !
On ne peut pas sous cette configuration afficher plusieurs Lignes(TextBox)
ou alors revoir la configuration et afficher les donnes dans une ListBox en fonction du Choix dans Combobox1
je continue Lol
jean marie
 
Re,
tu as dis :
On ne peut pas sous cette configuration afficher plusieurs Lignes(TextBox)
Je n'ai pas dit plusieurs Lignes(TextBox) mais plusieurs lignes seulement !
C'est pour cela que le bouton OK m'envoie sur le ou les chevaux présent dans la base de donnée !
Merci !
 
Re,
J'ai fait ma petite sauce qui me pose un probléme dans ta macro lorsque je créé un cheval qui n'existe pas !
Peux-tu y remédier !
Il y a 3 nouveaux boutons :
- Insérer ligne lorsque l'on a trouvé le cheval et qu'il est à l'arrivée dans les 5 premiers de la course du jour !
- Saisie ligne remplissage de la ligne vide avec le cheval du combo !
- Saisie Cheval lorsque le cheval n'a pas été trouvé la saisie se fait dans la dernière ligne vide !
- OK accéder à la ligne du cheval qui peut comprendre plusieurs lignes avec l'insertion lignes !
- Annuler sortie de la boite de dialogue sans saisie !
Bonne soirée et merci !
 

Pièces jointes

Re,
La logique devrait être ça :
Mais ça bug !!
textbox.jpg

Merci et bonne soirée !
 
Re,
J'ai réussi le probléme de bug en incorporant :
On Error GoTo fin

Code:
Private Sub ComboBox1_Change()
Dim lig As Variant
Dim Sht As Worksheet
Set Sht = Worksheets("Feuil1")
Application.ScreenUpdating = False
With UserForm1
lig = Application.Match(ComboBox1, Sht.Columns("A"), 0)
On Error GoTo fin
.TextBox1 = Sht.Cells(lig, 2)
.TextBox1.Value = Format(TextBox1.Value, "hh:mm:ss.00")
.TextBox2 = Sht.Cells(lig, 3)
.TextBox3 = Sht.Cells(lig, 4)
.TextBox4 = Sht.Cells(lig, 5)
.TextBox5 = Sht.Cells(lig, 6)
.TextBox6 = Sht.Cells(lig, 7)
.TextBox7 = Sht.Cells(lig, 8)
.TextBox8 = Sht.Cells(lig, 9)
.TextBox9 = Sht.Cells(lig, 10)
.TextBox10 = Sht.Cells(lig, 11)
Exit Sub
End With
fin:
Range("A3").End(xlDown).Offset(1, 0).Select
Application.ScreenUpdating = True
End Sub

La saisie du bouton cheval peut ainsi se faire !
Par contre je n'ai pas trouvé de solution pour les 10 éme de secondes :
Code:
.TextBox1.Value = Format(TextBox1.Value, "hh:mm:ss.00")
Bonne journée !
 

Pièces jointes

Bonjour JBARBE
Bonjour le Fil ,le Forum
peut être avec ce format (non testé)
VB:
.TextBox1.Value = Format( Sht.Cells(lig, 2), "hh:mm:ss,000")
dans les cellules , je n'arrive pas a voir les centième , quant il y en a ??????
je pense que le problème peut venir de la saisie du Temps (a l'enregistrement )
jean marie
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Réponses
32
Affichages
455
  • Question Question
Microsoft 365 agrandir la liste
Réponses
21
Affichages
393
Réponses
4
Affichages
289
Réponses
9
Affichages
305
Réponses
3
Affichages
176
Retour