VBA - Valeur dans une cellule en fonction d'une TextBox

Résolu/Fermé
dhr.france Messages postés 6 Date d'inscription mercredi 3 mai 2017 Statut Membre Dernière intervention 7 mai 2017 - 3 mai 2017 à 15:18
dhr.france Messages postés 6 Date d'inscription mercredi 3 mai 2017 Statut Membre Dernière intervention 7 mai 2017 - 3 mai 2017 à 17:36
Bonjour à tous

Désolé tout d'abord si ce sujet a été traité par ailleurs mais après des heures de recherche je ne trouve pas de solution.

Merci à Celle, celui ou ceux qui voudront prendre un peu de leur temps pour m'aider.

Mon problème :

j'insère une valeur dans une TextBox
Cette valeur doit être copiée dans une cellule
Cette cellule est en colonne E
La ligne de cette cellule doit être la même que celle de la cellule B

(dont la valeur correspond à celle de la TextBox)
La colonne B est une colonne de référence

J'espère être assez clair

Je joins un fichier d'explication si besoin.

Merci d'avance encore pour votre aide

Bonne journée,

Dominique

2 réponses

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
3 mai 2017 à 15:53
Bonjour Dhr, bonjour le forum,

Peut-être comme ça :

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) 'à la sortie de la TextBox1
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim R As Range 'déclare la variable R (Recherche)
Dim LI As Long 'déclare la variable LI (LIgne)

Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
Set R = O.Columns(2).Find(Me.TextBox1.Value, , xlValues, xlWhole) 'définit la recherche R (recherche la valeur entière de la TextBox1 dans la colonne 2 (=B) de l'onglet O
If Not R Is Nothing Then 'condition : si il existe au moins une occurrence trouvée
    LI = R.Row 'définit la ligne LI de la première occurrence trouvée
    Me.TextBox2.Value = O.Cells(LI, 5).Value 'renvoie dans la TextBox2 la valeur de la cellule ligne LI colonne 5 (=E) de l'onglet O
End If 'fin de la condition
End Sub


0
dhr.france Messages postés 6 Date d'inscription mercredi 3 mai 2017 Statut Membre Dernière intervention 7 mai 2017
3 mai 2017 à 17:35
Merci infiniment ThauTheme
Tout fonctionne à merveille
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
3 mai 2017 à 17:05
Bonjour,

Une variante du code de ThauTheme (Bonjour à toi) :
Private Sub TextBox1_Change()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim R As Range 'déclare la variable R (Recherche)

Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
Set R = O.Columns(2).Find(Me.TextBox1.Value, , xlValues, xlWhole) 'définit la recherche R (recherche la valeur entière de la TextBox1 dans la colonne 2 (=B) de l'onglet O
If Not R Is Nothing Then 'condition : si il existe au moins une occurrence trouvée
    Me.TextBox2.ControlSource = "'" & O.Name & "'!" & R.Offset(0, 3).Address 'Lie le TextBox2 à la cellule de la colonne E
Else
    Me.TextBox2.ControlSource = "" 'Pas de cellule liée au TextBox2
End If 'fin de la condition
End Sub


0
dhr.france Messages postés 6 Date d'inscription mercredi 3 mai 2017 Statut Membre Dernière intervention 7 mai 2017
3 mai 2017 à 17:36
Merci infiniment Patrice
Tout fonctionne à merveille
0