Saisie automatique dans inputbox

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

  • Chronos chevaux plat.xls
    69.5 KB · Affichages: 27

ChTi160

XLDnaute Barbatruc
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
 

JBARBE

XLDnaute Barbatruc
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

  • Chronos chevaux plat.1.xls
    80 KB · Affichages: 24

ChTi160

XLDnaute Barbatruc
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
 

JBARBE

XLDnaute Barbatruc
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

  • Chronos chevaux plat.1.xls
    85 KB · Affichages: 21

ChTi160

XLDnaute Barbatruc
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
 

JBARBE

XLDnaute Barbatruc
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 !
 

JBARBE

XLDnaute Barbatruc
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

  • Chronos chevaux plat.1.xls
    112.5 KB · Affichages: 17

JBARBE

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

Merci et bonne soirée !
 

JBARBE

XLDnaute Barbatruc
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

  • Chronos chevaux plat.1.xls
    120 KB · Affichages: 18

ChTi160

XLDnaute Barbatruc
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:

Discussions similaires

Réponses
5
Affichages
139

Statistiques des forums

Discussions
312 198
Messages
2 086 137
Membres
103 129
dernier inscrit
Atruc81500