Microsoft 365 selectionner une cellule en fonction d'un texte d'une textbox

florent@77

XLDnaute Junior
Bonjour à tous,

Je reviens vers vous après une longue absence mais je bloque depuis quelques jours sur une macro depuis que je suis passé en 365
j'ai un userform avec quelques Textbox qui fonctionne très bien

Maintenant je souhaite sélectionner la cellule qui corresponds à ma textbox4 mais malgré tout ce que j'ai pu voir sur le forum d'ici et d'ailleurs , je n'y arrive pas

Avez vous une idée de ce qui coince ?
Merci pour votre retour

VB:
Private Sub CommandButton1_Click()

Dim rechcell As String
Dim x, y As Integer

Sheets("Ref UO").Select

rechcell = Me.TextBox4.Value

Cells.Find(rechcell, , xlValues, xlWhole).Activate

x = ActiveCell.Row

y = ActiveCell.Column

Cells(x, y + 1).Select

End Sub
 

Jacky67

XLDnaute Barbatruc
Maintenant je souhaite sélectionner la cellule qui corresponds à ma textbox4 mais malgré tout ce que j'ai pu voir sur le forum d'ici et d'ailleurs , je n'y arrive pas

Avez vous une idée de ce qui coince ?
Merci pour votre retour

[
Bonjour,
Essaye comme ceci
VB:
Private Sub CommandButton1_Click()
    Dim rechcell As Object, Msg As String
    Sheets("Ref UO").Select
    Set rechcell = Cells.Find(Me.TextBox4, , xlValues, xlWhole)
    If rechcell Is Nothing Then Msg = Me.TextBox4 & " non présent."
    If Me.TextBox4 = "" Then Msg = "TextBox4 non renseigné."
    If Msg <> "" Then
        MsgBox Msg, , "Information"
    Else
        rechcell.Activate
        'ou  activer la cellule à droite
        'rechcell.Offset(, 1).Activate
    End If
End Sub
 

florent@77

XLDnaute Junior
Bonjour,
Essaye comme ceci
VB:
Private Sub CommandButton1_Click()
    Dim rechcell As Object, Msg As String
    Sheets("Ref UO").Select
    Set rechcell = Cells.Find(Me.TextBox4, , xlValues, xlWhole)
    If rechcell Is Nothing Then Msg = Me.TextBox4 & " non présent."
    If Me.TextBox4 = "" Then Msg = "TextBox4 non renseigné."
    If Msg <> "" Then
        MsgBox Msg, , "Information"
    Else
        rechcell.Activate
        'ou  activer la cellule à droite
        'rechcell.Offset(, 1).Activate
    End If
End Sub
Bonjour Jacky,
merci pour ta solution mais ça ne fonctionne pas
cela me dit que le contenu de la textbox4 est non présente systématiquement
j'ai l'impression que cela ne prends pas en compte le texte dans la textbox4, qui est alimenté par une autre macro

cordialement
Florent
 

Jacky67

XLDnaute Barbatruc
Bonjour Jacky,
merci pour ta solution mais ça ne fonctionne pas
cela me dit que le contenu de la textbox4 est non présente systématiquement
j'ai l'impression que cela ne prends pas en compte le texte dans la textbox4, qui est alimenté par une autre macro

cordialement
Florent
Re...
Sans le classeur, je dirais faire un test en début de macro

msgbox Me.TextBox4.value= ==>ici mettre en dur l'adresse de la cellule recherchée
exemple==> MsgBox Me.TextBox4.Text = Feuil1.[a1].Text
La comparaison devrait retourner Vrai ou Faux
 

Jacky67

XLDnaute Barbatruc
Jacky,

La comparaison me retourne Faux
Re...
Toujours sans classeur.....:mad:
C'est que les deux textes ne sont pas strictement identique
Tester en début de macro, [a1] étant la cellule à comparer dans l'exemple(à adapter)
VB:
MsgBox "Valeur textbox: " & Me.TextBox4.Text & " - Longueur: " & Len(Me.TextBox4.Text) & vbLf & "Valeur cellule:   " & [a1] & " - longueur : " & Len([a1])
 

florent@77

XLDnaute Junior
Re...
Toujours sans classeur.....:mad:
C'est que les deux textes ne sont pas strictement identique
Tester en début de macro, [a1] étant la cellule à comparer dans l'exemple(à adapter)
VB:
MsgBox "Valeur textbox: " & Me.TextBox4.Text & " - Longueur: " & Len(Me.TextBox4.Text) & vbLf & "Valeur cellule:   " & [a1] & " - longueur : " & Len([a1])
Jacky,
j'ai fait classeur exemple car mon fichier d'origine est assez conséquent
et je viens de me rendre compte que ta macro fonctionne si je ne fais pas de "filtre' juste avant de remplir mes textboxs
par contre ça ne trouve rien si je filtre pour sélectionner ma ligne en fonction de mots clés
 

Pièces jointes

  • MonExemple.xlsm
    23.4 KB · Affichages: 11

florent@77

XLDnaute Junior
Jacky,
j'ai fait classeur exemple car mon fichier d'origine est assez conséquent
et je viens de me rendre compte que ta macro fonctionne si je ne fais pas de "filtre' juste avant de remplir mes textboxs
par contre ça ne trouve rien si je filtre pour sélectionner ma ligne en fonction de mots clés
et en effet les 2 textes ne sont pas identiques mais je ne vois pas pourquoi
encore merci de t'obstiner avec moi sur ce pb
 

Jacky67

XLDnaute Barbatruc
et en effet les 2 textes ne sont pas identiques mais je ne vois pas pourquoi
encore merci de t'obstiner avec moi sur ce pb
Re..
Je n'éprouve aucune difficulté en ajoutant
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
Il est évident que dans ce code la recherche se fait sur la feuille

Dans le code précèdent
VB:
Private Sub CommandButton1_Click()
Dim rechcell As Object, Msg As String
    Sheets("feuil1").Select
    If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
    Set rechcell = Cells.Find(UserForm1.TextBox4, , xlValues, xlWhole)
    If rechcell Is Nothing Then Msg = Me.TextBox4 & " non présent."
    If Me.TextBox4 = "" Then Msg = "TextBox4 non renseigné."
    If Msg <> "" Then
        MsgBox Msg, , "Information"
    Else
        rechcell.Activate
        'ou  activer la cellule à droite
        'rechcell.Offset(, 1).Activate
    End If
End Sub
 

florent@77

XLDnaute Junior
Re..
Je n'éprouve aucune difficulté en ajoutant
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
Il est évident que dans ce code la recherche se fait sur la feuille

Dans le code précèdent
VB:
Private Sub CommandButton1_Click()
Dim rechcell As Object, Msg As String
    Sheets("feuil1").Select
    If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
    Set rechcell = Cells.Find(UserForm1.TextBox4, , xlValues, xlWhole)
    If rechcell Is Nothing Then Msg = Me.TextBox4 & " non présent."
    If Me.TextBox4 = "" Then Msg = "TextBox4 non renseigné."
    If Msg <> "" Then
        MsgBox Msg, , "Information"
    Else
        rechcell.Activate
        'ou  activer la cellule à droite
        'rechcell.Offset(, 1).Activate
    End If
End Sub
Re..
le filtre se fait dans la listbox en fonction du texte que tu entre dans la textbox1 et non sur la feuille
ce qui fait qu'il ne trouve toujours pas la cellule
 

Jacky67

XLDnaute Barbatruc
Re..
le filtre se fait dans la listbox en fonction du texte que tu entre dans la textbox1 et non sur la feuille
ce qui fait qu'il ne trouve toujours pas la cellule
RE..
Cela n'a aucune incidence sur la recherche dans la feuille
Avec le code du post #10
La cellule sélectionnée sur la feuille est bien celle qui à la valeur de la texbox4
Ce code ne fait rien d'autre
 

florent@77

XLDnaute Junior
RE..
Cela n'a aucune incidence sur la recherche dans la feuille
Avec le code du post #10
La cellule sélectionnée sur la feuille est bien celle qui à la valeur de la texbox4
Ce code ne fait rien d'autre
Re..
La recherche dans le userform me permet d'isoler la ligne pour pouvoir agir dessus
la selection du textbox4 permet de me situer sur la feuille et faire des corrections sur les 4 dernières cellules de ma ligne
mais même dans mon fichier Monexemple , qui est une version simplifié , cela ne fonctionne pas sur mon office 365 après isolation des lignes avec un mot clé dans la textbox1 recherche.
Pour que cela fonctionne , il faut que je supprime le mot clé.
j'aurais aimé que ça fonctionne malgré les mots clés

En tout cas merci pour votre aide, cela m'a permis d'avancer

bien cordialement
Florent
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 848
dernier inscrit
Djigbenou