Réaliser un VBA pour consultation article

Pacococo -  
 mcou -
Bonjour,

J'ai réalisé un projet de gestion de stock et j'aimerais un programme permettant de consulter les informations contenu dans les ligne

Mon tableau
Ref Désignation Qty fournisseur

J'aimerai que quand je tape dans la InputBox la ref,
Les autres info apparaissent,

J'ai déja le programme pour un, mais je crois que ej m'y prend mal


2 réponses

pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bonjour,
Perso je ferais un petit UserForm, pour la forme.
Cjoint un petit ezemple...
0
mcou
 
Hello
tu peux tout mettre dans un input box (cf ci dessous) mais un formulaire serait plus adapté...

Option Explicit

Sub REF()




    Dim Trouve As Boolean 'déclare la variable Trouve comme étant un nombre Boolean (renvoie à une valeur vraie et une valeur fausse)
    Dim saisie As String 'déclare la variable saisie comme étant une chaîne de caractère
    Dim NRef As Long 'déclare la variable NRef comme étant un entier long

' demande quelle est la référence que l'on veut vérifier
' recherche la commande à partir de son numéro de référence dans le classeur, colonne A

    saisie = InputBox("Quel numéro de référence?", "REF", 1)
    If IsNumeric(saisie) Then
        NRef = CLng(saisie)
    Else
        MsgBox "La macro est arrêtée."
        Exit Sub
    End If
            
    Trouve = False
    Range("A2").Select
        
    Do While ActiveCell.Offset(0, 1).Value <> ""
        If ActiveCell.Value = NRef Then
            Trouve = True
            Exit Do
            Else: ActiveCell.Offset(1, 0).Select
        End If
    Loop
    If Trouve = False Then
        MsgBox "Le numéro de référence est inexistant."
        Exit Sub
    End If


    MsgBox "Le numéro de référence est : " & ActiveCell.Value & Chr(13) & _
    "La désignation est : " & ActiveCell.Offset(0, 1).Value & Chr(13) & _
    "La quantité est : " & ActiveCell.Offset(0, 2).Value & Chr(13) & _
    "Le fournisseur est : " & ActiveCell.Offset(0, 3).Value
    
    End Sub
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
re-
Plutôt que de boucler sur toutes les cellules d'une colonne pour trouver la bonne valeur, il vaux mieux utiliser la méthode Find :
Sub cherche() 
Dim Trouve As Range 
Dim Valeur_cherchee As String, Valeur_trouvee As String 
Valeur_cherchee = "Gnagna" 
    Set Trouve = ActiveSheet.Columns(1).Cells.Find(what:=Valeur_cherchee) 
        If Trouve Is Nothing Then 
            MsgBox "Pas trouvé" 
        Else 
            Valeur_trouvee = Trouve.Offset(0, 1).Value 
        End If 
Set Trouve = Nothing 
End Sub
0
mcou
 
un exemple avec ce que j'avais fait.

http://nt2217.1fichier.com/REF%20pacococo.xls

Merci pour le tuyau find, je vais utiliser ça !!
0