VBA utiliser TextBox.Value ds un Cells.Find
Antoine
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous !
Je cherche à utiliser une valeur entrée dans le TextBox d'un Userform pour faire une recherche dans la feuille.
En gros ça devrait donner ça mais ça ne fonctionne pas ! :
Cells.Find(What:=TextBox2.Value, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
Par ailleurs je cherche à utiliser aussi la valeur d'un TextBox dans un Cells(i,j).FormulaLocal,
par exemple :
Cells(DateRow, 1).FormulaLocal = "=SOMME(""A"" & TextBox1.Value:""A99"")
mais je ne sais pas comment le coder exactement !
Merci beaucoup pour votre aide
Je cherche à utiliser une valeur entrée dans le TextBox d'un Userform pour faire une recherche dans la feuille.
En gros ça devrait donner ça mais ça ne fonctionne pas ! :
Cells.Find(What:=TextBox2.Value, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
Par ailleurs je cherche à utiliser aussi la valeur d'un TextBox dans un Cells(i,j).FormulaLocal,
par exemple :
Cells(DateRow, 1).FormulaLocal = "=SOMME(""A"" & TextBox1.Value:""A99"")
mais je ne sais pas comment le coder exactement !
Merci beaucoup pour votre aide
3 réponses
-
Bonjour,
pour pouvoir chercher dans la feuille une cellule contenant la valeur de ta TextBox, il faut rajouter ".Activate à la fin de la recherche :
Cells.Find(What:=TextBox2.Value, After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False).Activate
En ce qui concerne la somme, vu que le VBA est un langage anglais, peut être que tu devrais mettre "=SUM(...)"
Cordialement.-
-
Merci pour ta réponse, en fait je n'ai pas été assez complet dans ma question parce que j'utilise cette recherche dans la feuille pour mettre en mémoire un numéro de ligne, donc j'ai fait :
MaLigne = Cells.Find(What:=TextBox2.Value, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate.Row
Mais ça ne fonctionne pas ! -
-
-
-
bonjour,
ton code marche si ton bout de macro est dans l'userform
par exemple ci dessous, la recherche est lancée par appui sur un bouton de l'userform
(je n'ai pas tenu compte de xlpart, excuse moi)
Private Sub CommandButton1_Click() 'test = TextBox1 On Error Resume Next laligne = Cells.Find(TextBox1, , xlValues).Row If Err.Number > 0 Then MsgBox "valeur inconnue" Else MsgBox "ligne: " & laligne End If End Sub
regarde cette petite démo:
https://www.cjoint.com/?ehlVkJW6eu
edit:
avec xlpart
laligne = Cells.Find(TextBox1, , xlValues, xlpart).Row
:-x -
concernant le pb sur la somme, tuu pourrais laisser VBA faire le calcul puisque c'est ton code qui détermine la plage (attention texbox dans le code du formulaire)
Cells(DateRow, 1)=application.sum(range("A" & TextBox1.Value & ":A99")