[VBA EXCEL] Macro de Recherche dans un tablea [Résolu/Fermé]

Signaler
-
 jah -
Bonjour,

Je suis novice en VBA, et pour l'entreprise dans laquelle j'effectue mon stage j'ai réalisé un workbook excel qui enregistre les commandes sous formes d'un tableau à plusieurs colonnes dans un worksheet appelé DailyWorksheet. Le référentiel étant la première colonne qui stock les numéros de commande. Les commandes sont entrées dans l'ordre de ces numéros et par le bas du tableau. Ce tableau n'a donc pas un nombre figé de lignes.

L'ensemble des interactions avec l'utilisateur s'effectue par un worksheet d'accueil (appelé Neworder) et des macros commandés par bouton.

La dernière condition du cahier des charges qu'il me reste à remplir et de créer une macro également commandé par bouton qui cherche dans le tableau de DailyWorksheet, le numéro de commande saisi par l'utilisateur en B7 de Neworder; puis sélectionne la cellule de la colonne A de DailyWorksheet contenant ce numéro de commande.

Javais écrit ça:
Sub Searchonworksheet()
'Search on Worksheet a specific PO number
Range("B7").Copy
Sheets("WORKSHEET").Select
Range("P1").PasteSpecial
Range("A65536").End(xlUp).Select
Do While ActiveCell.Value > P1
ActiveCell.Offset(-1, 0).Select
Loop
ActiveSheet.Select
End Sub


Mais la seule chose que ca parvient à exécuter c'est le debuggeur VBA :D

Je suis désolé de vous ennuyer avec cette demande mais ca fait un moment que je cherche et pas moyen de trouver.

En vous remerciant par avance!

Jah

PS: Chaque numéro de commande n'est contenu que par une seule ligne du tableau

2 réponses

Messages postés
12186
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
15 octobre 2020
2 497
Bonjour,
Tu dois rechercher :
- un numéro de commande (peux tu le décrire : nombre, texte, si nombre >200000 etc...)
- contenu dans une cellule (B7 de Neworder)
- dans la 1ère colonne de DailyWorksheet
Dim Trouve As Range
Dim ValeurCherchee As Integer ' ou Long, Double ou String selon le format de tes num de commande
With Sheets("Neworder")
ValeurCherchee = .Range("B7").Value
End With
With Sheets("DailyWorksheet").Columns(1)
Set Trouve = .Cells.Find(ValeurCherchee)
End With
If Trouve Is Nothing Then
MsgBox "Ce numéro de commande n'existe pas"
Else
Sheets("DailyWorksheet").Activate
Trouve.Select
End If
Merci beaucoup, c'était exactement ce dont j'avais besoin.

Mon boss est ravi, thanks a lot!