Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Trier les données par ordre croissant via UserForm

JMR150

XLDnaute Nouveau
Bonjour à tous,

Je souhaite améliorer mon fichier qui est une base de données à compléter via un UserForm. Je souhaiterais trier le N° de l'évènement (TextBox1) directement par ordre croissant.
Par exemple, si le N° de l'évènement rentré est le "9", il se placera dans le tableau au-dessus de la ligne qui comporte le N° d'évènement 11. Si je place le N° d'évènement 10, celui-ci se placera entre les N° d'évènements 9 et 11. Je ne sais pas si je suis assez claire.

J'en profite aussi pour poser une question qui paraît toute bête mais je n'y arrive tout simplement pas : . Comment faire pour que dans la TextBox1, le format soit en nombre, sans décimale ?

Merci d'avance pour vos réponses.
 

Pièces jointes

  • Clinique Montage - BdD .xls
    62.5 KB · Affichages: 148
Dernière édition:

sousou

XLDnaute Barbatruc
Re : Trier les données par ordre croissant via UserForm

Bonjour JMR
Peut-être tout simplement en ajoutant un tri à la fin de ta commande valider.

With Sheets("donnees")
.UsedRange.Sort key1:=.Columns(1), Header:=xlYes
End With
Pour la textbox1, elle est saisie par l'utilisateur est-ce que tu veux que la saisie de décimale soit interdite??
 

JMR150

XLDnaute Nouveau
Re : Trier les données par ordre croissant via UserForm


Bonjour,

Merci pour la réponse.

En effet, je voudrais que la saisie de décimale soit interdite si possible.
 

sousou

XLDnaute Barbatruc
Re : Trier les données par ordre croissant via UserForm

bonjour
je te propose un controle de saisie sur la texbox1 .

Private Sub TextBox1_Change()
If IsNumeric(TextBox1) = False Then
TextBox1 = ""
Exit Sub
End If
TextBox1 = Int(TextBox1)
End Sub
 

laetitia90

XLDnaute Barbatruc
Re : Trier les données par ordre croissant via UserForm

bonjour JMR150 sousou

on peut egalement utiliser keypress

Code:
Private Sub TextBox1_KeyPress(ByVal K As MSForms.ReturnInteger)
  If Len(TextBox1) = 0 And InStr("123456789", Chr(K)) = 0 Then K = 0
  If Len(TextBox1) > 0 And InStr("0123456789", Chr(K)) = 0 Then K = 0
End Sub
 

Discussions similaires

Réponses
12
Affichages
506
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…