Autres Rechercher dans la zone de texte.

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 !

francescofrancesco

XLDnaute Junior
Bonsoir à tout le Forum et meilleurs voeux.
À partir d'une zone de texte, je dois trouver des données et s'il y a une correspondance, remplissez certaines zones de texte placées sur un autre formulaire utilisateur.
Le problème se pose lorsque les données à rechercher sont numériques et composées de deux chiffres.
Évidemment, en utilisant l'événement de modification de la zone de texte, je ne peux pas taper le deuxième chiffre.
 

Pièces jointes

Mais utilisez donc AfterUpdate bon sang.
La touche Entrée termine la saisie. C'est classique (et c'est comme dans Excel).
Tous les répondeurs vous ont dit que Change ne peut pas lire dans les pensées de l'utilisateur pour deviner la taille souhaitée de l'entrée (Excel 2199 peut-être ?).
Ne vous compliquez pas inutilement la vie.
 
Déjà,
pourquoi compliquer la vie, peut-être parce qu'elle est trop statique.
Je peux demander à mapomme s'il adapte son code avec une recherche sur la colonne A pour les nombres et la colonne B pour le texte.
J'ai fait ces changements, cela semble fonctionner.
Merci à vous tous pour votre aide.
VB:
'Sub Traitement()
Private Sub TextBox1_AfterUpdate()

Dim sb2 As Worksheet, Ligne, ligne2, i As Long

   Set sb2 = ThisWorkbook.Sheets("nominativo")     ' feuille des codes
   With sb2
             On Error Resume Next       ' au cas où le code est absent, Match renvoie une erreur
             If IsNumeric(TextBox1) Then
            
                         Ligne = Application.Match(Val(TextBox1), sb2.Range("a:a"), 0)     'recherche du code en nombre
                       '  ligne2 = Application.Match(CStr(TextBox1), sb2.Range("a:a"), 0)   'recherche du code en texte
                         On Error GoTo 0            ' on rétablit la détection d'erreur
                       '  If IsError(Ligne) And IsError(ligne2) Then    'modificato
                         If IsError(Ligne) Then
                            ' les deux recherches n'ont pas trouvé le code
                            MsgBox "<" & TextBox1 & "> : ce code est absent de la liste des codes de la feuille " & sb2.Name, vbCritical
                            TextBox1 = "": TextBox2 = "": Exit Sub
                         End If
                         ' Au moins une recherche a trouvé le code
                         ' Si Ligne est une erreur, c'est le code se trouve en Ligne1
                         ' c'est Ligne qui contiendra la ligne du code
                        ' If IsError(Ligne) Then Ligne = ligne2
                         TextBox2 = .Cells(Ligne, 2)         'affichage du nom correspondnat au code
                         If MsgBox("confermi nominativo", vbYesNo) = vbYes Then
                            UserForm1.TextBox32 = .Cells(Ligne, 1)    'Affichage du code dans Userform1
                            ' Comme vous avez très bien numéroté à la suite et dans l'ordre des colonnes
                            ' les TextBox de la feuille ""nomonativo",
                            ' on peut utiliser une boucle pour remplir les TextBox de Userform1
                            For i = 1 To 12: UserForm1.Controls("TextBox" & i) = .Cells(Ligne, i + 1): Next
                            TextBox1 = "": TextBox2 = ""
                            UserForm1.Show
                         Else
                           TextBox1 = "": TextBox2 = ""
                           TextBox1.SetFocus
                         End If
         Else
                        UserForm4.Show
            
        End If
End With
End Sub
 
Bonsoir Francesco,
Je ne vois pas en quoi votre macro est plus conviviale.
Si je veux le Codice 55, je tape 5 puis Non sur Confirmi puis je reclique sur mon 5 pour rajouter le second 5 puis enfin oui sur Confermi.
Alors qu'avec deux caractères vous accédiez directement au besoin.
 
- 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

Retour