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

XL 2016 Textbox avec validation de données

Chessnocoma

XLDnaute Junior
Bonjour,

Je souhaite imposer des valeurs à ma textbox en fonction des éléments renseigné dans une colonne du classeur ? Si l'utilisateur ne renseigne pas un élément de la liste, il reçoit un message d'erreur par exemple.

Est ce que c'est faisable ?

Ca ressemble un peu à une listbox mais je suis obligé de passer par une textbox pour le faire.

Est ce que vous auriez une idée ?

Merci de votre temps et de votre aide,

A bientôt,

Jessy
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Jessy, bonjour le forum,

Peut-être avec ce code à adapter, à la sortie de la TextBox concernée :

VB:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim D As Object 'déclare la variable D (Dictionnaire)
Dim I As Integer 'déclare la variable I (Incrément)
Dim TMP As Variant 'déclare la variable TMP (tableau TeMPoraire)

Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
DL = O.Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A (à adapter à ton cas) de l'onglet O
TV = O.Range("A1:A" & DL) 'définit le tableau des valeurs TV
Set D = CreateObject("Scripting.Dictionary") 'définit le dictionnaire D
For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
  D(TV(I, 1)) = "" 'alimente le dictionnaire D
Next I 'prochaine ligne de la boucle
TMP = D.Keys 'récupère dans le tableau temporaire TMP, la liste des éléments du dictionnsire D sans doublon
For I = 0 To UBound(TMP) 'boucle sur tous les élément du tableau TMP
  If Me.TextBox1.Value = TMP(I) Then GoTo suite 'si la valeur de la TextBox1 correspond à l'élément de la boucle, va à l'étiquette "suite"
Next I 'prochain élément de la boucle
MsgBox "Donnée non valide !" 'message
With Me.TextBox1 'prend en compte la TextBox1
  .SelStart = 0 'début de la sélection
  .SelLength = Len(.Value) 'longueur de la sélection
End With 'fin de la prise en compte de la TextBox1
Cancel = True 'empêche la sortie de la Textbox
suite: 'étiquette
End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…