[VBA EXCEL] Macro de Recherche dans un tablea

Résolu
jah -  
 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

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
    0
  2. jah
     
    Merci beaucoup, c'était exactement ce dont j'avais besoin.

    Mon boss est ravi, thanks a lot!
    0