Entrée de données sous useform

drop91

XLDnaute Junior
Bonjour,
je réalise un projet sur la lecture de donnée de mémoire, la lecture se fait en hexa, puis je fais une conversion du résultat en binaire, et tous les points en zéro correspondent à une erreur.

Par contre je bloque sur le useform pour rentrée les valeurs dans la feuil1 de C3 à J3 soit 8 valeurs en hexa.

Mes questions sont les suivantes :
1) comment limiter les entrées à 2 caractères dans chaque case (data 0=FF; data 1=0F; etc...)
2) comment faire pour valider les données dans les cellules C3 à J3

et enfin cerise sur le gâteau y a t'il un moyen d'afficher seulement les erreurs sur la feuil2 dans l'ordre chronologique (data 0 à data 7) sans avoir des espaces vide et sans les NFF

Merci d'avance pour tous vos conseils.
 

Pièces jointes

  • projet.xls
    54.5 KB · Affichages: 49
  • projet.xls
    54.5 KB · Affichages: 53
  • projet.xls
    54.5 KB · Affichages: 53

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Entrée de données sous useform

Bonjour Drop,
Mes questions sont les suivantes :
1) comment limiter les entrées à 2 caractères dans chaque case (data 0=FF; data 1=0F; etc...)
2) comment faire pour valider les données dans les cellules C3 à J3
voir fichier joint

à+
Philippe
 

Pièces jointes

  • 111.xls
    63.5 KB · Affichages: 51
  • 111.xls
    63.5 KB · Affichages: 53
  • 111.xls
    63.5 KB · Affichages: 54

Lean

XLDnaute Junior
Re : Entrée de données sous useform

Bonjour

Question 1 :
Dans les propriétés de la textbox il faut spécifier "2" dans le critère MaxLenght initialement à 0

Question 2:
Code:
Private Sub CommandButton1_Click()
Range("c3") = TextBox1
Range("d3") = TextBox2
etc...
Unload Me ' enleve useform apres la saisie
End Sub

ou boucler comme l'a fait phlaurent55
 
Dernière édition:

john

XLDnaute Impliqué
Re : Entrée de données sous useform

Bonjour,

Ou tu peux faire comme ceci pour passer automatiquement d'une case à l'autre quand la case à 2 caractères

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Len(TextBox1.Value) >= 2 Then 's supérieur ou égale à 2
TextBox2.SetFocus ' ici je passe au textbox suivant
End If
End Sub
BàT.

John
 

drop91

XLDnaute Junior
Re : Entrée de données sous useform

Merci à tous pour vos commentaires, c'est génial d'avoir plusieurs possibilités.....:D

Pour John la routine auto est super mais si je veux que les données soit en majuscules que faut il rajouter ????
La commande TextBox1 = UCase(TextBox1) ne fonctionnant pas correctement.

Merci encore....
 
Dernière édition:

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Entrée de données sous useform

Re-Bonjour
Bonjour,

Ou tu peux faire comme ceci pour passer automatiquement d'une case à l'autre quand la case à 2 caractères

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Len(TextBox1.Value) >= 2 Then 's supérieur ou égale à 2
TextBox2.SetFocus ' ici je passe au textbox suivant
End If
End Sub
BàT.

John
tout ceci est tout à fait inutile (et alourdirait la procédure) puisque les TabIndex de tous les Textbox sont en ordre croissant
il suffit de reprendre mon fichier posté plus haut et le tester pour se rendre compte que chaque validation par la touche Entrée fait passer le focus au Textbox suivant

concernant la mise en majuscule des saisies, cela se fait sur les 3 premiers TBox, il suffit de compléter les autres procédures qui sont restées vides
Code:
Private Sub TextBox1_Change()
TextBox1 = UCase(TextBox1) ' forcer entrée en majuscules
End Sub


Private Sub TextBox2_Change()
TextBox2 = UCase(TextBox2) ' forcer entrée en majuscules
End Sub

Private Sub TextBox3_Change()
TextBox3 = UCase(TextBox3) ' forcer entrée en majuscules
End Sub

Private Sub TextBox4_Change()
' faire de même que ci-dessus pour les TBox 4 à 8
End Sub

Private Sub TextBox5_Change()

End Sub

Private Sub TextBox6_Change()

End Sub

Private Sub TextBox7_Change()

End Sub

Private Sub TextBox8_Change()

End Sub

à+
Philippe
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Entrée de données sous useform

Re,

une autre solution avec une seule procédure
il suffit d'entrer les 16 signes (0123456789ABCDEF) dans le premier textbox, (ne pas s'inquiéter de l'affichage),
tout sera dispatché automatiquement dans les 8 TBox et le transfert des données vers la feuille se fera automatiquement

à+
Philippe

Edit: ce serait encore plus simple avec un seul TBox destiné à saisir les 16 caractères
 

Pièces jointes

  • 111.xls
    63.5 KB · Affichages: 49
  • 111.xls
    63.5 KB · Affichages: 49
  • 111.xls
    63.5 KB · Affichages: 45

drop91

XLDnaute Junior
Re : Entrée de données sous useform

sympa cette version à la rigueur utilisé une seule Tbox au lieu des 8, j'y aurai pas pensé, il me vient donc une autre question en utilisant une seule Tbox quel fonction utilise t'on pour afficher les 16 signes avec un espace tous les 2 caractères puis validation des valeurs dans les cellules c3-j3 ????

merci
 
Dernière édition:

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Entrée de données sous useform

Re,
sympa cette version à la rigueur utilisé une seule Tbox au lieu des 8, j'y aurai pas pensé, il me vient donc une autre question en utilisant une seule Tbox quel fonction utilise t'on pour afficher les 16 signes avec un espace tous les 2 caractères puis validation des valeurs dans les cellules c3-j3 ????
j'ai même inséré 2 espaces pour une lecture plus aisée
voici

à+
Philippe
 

Pièces jointes

  • 111.xls
    60 KB · Affichages: 40
  • 111.xls
    60 KB · Affichages: 44
  • 111.xls
    60 KB · Affichages: 43

drop91

XLDnaute Junior
Re : Entrée de données sous useform

...........Bonjour,
suite aux différents essais du programme, je me retrouve avec un bug, en effet lorsque je rentre la valeur 1A,2A,.....,9A, rien ne s'affiche sur la cellule, comment peut on faire pour que le transfert du useform vers les cellules se fasse bien ????


merci encore.
 
Dernière édition:

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Entrée de données sous useform

Re,

avec ceci; la modification concerne la ligne bleue

Private Sub CommandButton1_Click()
' transfert des données vers la feuille
Sheets(1).Select
colonne = 3
For i = 1 To 32 Step 4
Cells(3, colonne) = CStr(Mid(TextBox1.Text, i, 2))
colonne = colonne + 1
Next i
Range("e1") = TextBox1
TextBox1 = ""
End Sub

à+
Philippe
 

Discussions similaires

Statistiques des forums

Discussions
312 104
Messages
2 085 349
Membres
102 869
dernier inscrit
radyreth