rechercher une valeur par input box

  • Initiateur de la discussion Initiateur de la discussion Passion_Vba
  • Date de début Date de début

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 !

P

Passion_Vba

Guest
Bonjour,
Je suis débutant sur VBA et cela 3 h que je suis bloqué sur un code.
Je compte énormement sur vous tous pour m'aider SVP

J'ai une colonne B qui contient des valeurs. je souhaiterai charger un inputbox par un bouton afin de saisir la valeur que je recherche dans la colonne B.
Le code devra se positionner à la celulle trouvée et descendre à la derniere celulle vide.

voici mon code qui affiche une erreur d'execution '1004' (je ne sais meme pas ce que cela veut dire)

Private Sub CommandButton1_Click()
Sheets("flashage support").Select

Dim code As String
Dim CellTrouvee As Range

code = InputBox("Entrez le code Agence", "Saisie")
If code = " " Then Exit Sub
Set CellTrouvee = Range("B:B").Find(code, lookat:=xlWhole)
Range("CellTrouvee").End(xlDown).Offset(1, 0).Select

End Sub
 
Re : rechercher une valeur par input box

Bonjour,

CellTrouvee est un objet Range, il est incorrect de le remettre dans une commande Range("CellTrouvee"), qui correspond à une plage nommée., la bonne syntaxe de la dernière ligne est donc :
Code:
CellTrouvee.end(xldown).offset(1,0).select
 
Re : rechercher une valeur par input box

re,
Code:
Sub CommandButton1_Click()
Sheets("flashage support").Select

Dim code As String
Dim CellTrouvee As Range

code = InputBox("Entrez le code Agence", "Saisie")
If code = "" Then Exit Sub
Set CellTrouvee = Range("B:B").Find(what:=code, looki:=xlvalues, lookat:=xlWhole)
CellTrouvee.End(xlDown).Offset(1, 0).Select

End Sub
 
Re : rechercher une valeur par input box

Re

Si je te demande cela c'est que la macro a et la macro b font ici la même chose non ?
Code:
Sub a()
Dim code As String
Dim CellTrouvee As Range
Sheets(1).Select
With Range("B1:B5")'juste pour test
.FormulaR1C1 = "=""TOTO""&ROW()"
.Value = .Value
End With
code = InputBox("Entrez le code Agence", "Saisie", "TOTO3")
If code = "" Then Exit Sub
Set CellTrouvee = Range("B:B").Find(What:=code, LookIn:=xlValues, LookAt:=xlWhole)
CellTrouvee.End(xlDown).Offset(1, 0).Select
End Sub
Code:
Sub B()
Application.Goto [B65536].End(xlUp)(2)
End Sub
 
Re : rechercher une valeur par input box

bonjour Staple1600
ton code fonctionne bien si B1 à B5 sont renseignés et qu'il n'y ait pas de trous entre eux mais effectivement j'ai des trous entre les valeurs TOTO1 à TOTO5.
J'ai fait un test en inserant des lignes vides entre TOTO1 et TOTO5 et quand je tape TOTO3 pour recherche le code pointe le curseur à la celulle vide juste en dessous de TOTO4 au lieu de la cellule vide en dessous de TOTO3

J'espere avoir été précis dans mes expliquations.
as tu une solution, merci merci merci
 
Re : rechercher une valeur par input box

Re

Ces macros ne sont que des macros de test pour illustrer mon propos

Il serait plus simple d'avoir un fichier exemple pour pouvoir faire des tests.

EDITION: Bonsoir pierrejean
 
Dernière édition:
Re : rechercher une valeur par input box

Bonjour a tous

Pour pallier le fonctionnement curieux de
Celltrouvee.End(xlDown).Offset(1, 0).Select
dans le cas ou la cellule vide est immediatement en dessous de celle trouvée

Code:
Sub test()
code = InputBox("Entrez le code Agence", "Saisie")
If code = "" Then Exit Sub
Set Celltrouvee = Range("B:B").Find(what:=code, LookIn:=xlValues, lookat:=xlWhole)
If Celltrouvee.Offset(1, 0) = "" Then
 Celltrouvee.Offset(1, 0).Select
Else
 Celltrouvee.End(xlDown).Offset(1, 0).Select
End If
End Sub
 
Re : rechercher une valeur par input box

bonsoir à tous,
Super merci PierreJean c'est exactement ce que je voulais mais comment as tu fait pour avoir cette logique de code
If Celltrouvee.Offset(1, 0) = "" Then
Celltrouvee.Offset(1, 0).Select
Else
Celltrouvee.End(xlDown).Offset(1, 0).Select
End If

Puis je te demander autre code qui est simple pour toi mais difficile pour moi?
la celulle vide trouvée me permet de flasher un code à barre à valeur numérique (exemple : 1118930).
Dés que la cellule vide par ex en range("B2") détecte l'entrée d'une valeur alors cela doit déclencher une RECHERCHEV en C2.
Puis si B3 est rempli alors C3 est aussi rempli par la fonction recherchev
et la RECHERCHEV s'arrrête dés que la celulle vide Bx (x étant la ligne) n'a aucune entrée.

Merci à vous tous
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour