Macro excell afficahge d'une valeur

Résolu
Eric34370 Messages postés 24 Date d'inscription   Statut Membre -  
Eric34370 Messages postés 24 Date d'inscription   Statut Membre -
Bonjour,
je débute en VBA excel et j'ai une feuille excel avec 2 Colonne trés longues.
l'une indique un code et l'autre une valeure correspondant au code
je voudrais savoir comment peut on faire pour afficher une boite qui demande à l'utilisateur de rentrer le code et une autre qui affiche la valeur du code en fonction du code rentré par l'utilisateur

Ex A1=100814 (code) B2 = 1561 (valeur du code)
A2=125685 (code) B2 = 1589 (valeur du code)
et ainsi de suite

Je vous remercie par avance de l'interet que vous porterez à ma demande
Trés cordialement Eric
Configuration: Windows XP
Internet Explorer 7.0

2 réponses

  1. my_name Messages postés 18 Date d'inscription   Statut Membre 1
     
    salut je peut t'aider. il faut que tu fasse une boucle qui te permet de visualiser l'ensemble de t valeur ( while, wend) ensuite soit tu passe par un user form soit un input box qui va permettre d'entrer le code de l'utilisateur ensuite tu fais un test conditionnel (if) exemple :
    sub recherche ()

    dim i as integer
    dim code as variant
    dim vcode as double

    code = inputbox("taper un code")
    i = 4
    while range("a"& i) <> ""
    if range("a"& i ) = code then
    vcode = range("b"& i )
    end if
    i = i + 1
    wend
    msgbox("la valeur du code est:"& vcode)

    end sub
    0
    1. Eric34370 Messages postés 24 Date d'inscription   Statut Membre
       
      Merci pour tes infos je vais les tester ,
      Je te tiens au courant. En tous cas c'est super sympa de prendre du temps pour les novices comme moi

      Cordialement Eric
      0
    2. Eric34370 Messages postés 24 Date d'inscription   Statut Membre
       
      Bonjour,
      j'ai essayer le code et rechercher partout pour le faire fonctionner mais je n'y suis pas parvenue
      la msg box me renvoie tour la valeur "0"
      peut etre me suisje mal exprimé dans ma demande

      j'ai 2 colonne dans ma feuille excel
      une avec les codes" code SAP"
      une autre à coté avec la valeur"NB col" affecté à chaque codeSAP

      l'input box permet à l'utilisateur de rentrer le Code SAP
      et la messageBox lui donnera le NBcol affecté à ce code Sap
      j'espére avoir été un peu plus clair dans ma demande je peux envoyer le fichier excell au cas ou

      Merci d'avance

      cordialement Eric
      0
      1. didier09 Messages postés 13 Statut Membre 36 > Eric34370 Messages postés 24 Date d'inscription   Statut Membre
         
        Bonjour

        tu doit créer un formulaire(propriété Caption=Recherche valeur du code) qui contient

        *Une zone de texte (propriété Name=code)

        *Un bouton de commande (propriété Name=cmdok,propriété Caption=OK)

        Le code correspondant au bouton de commande cmdok est

        Private Sub Cmdok_Click()
        Dim compteur As Long
        Dim valeurcode As Long
        Dim rep As Byte

        For compteur = 1 To Sheets("Liste").Range("A1").End.xlDown).Row
        If TextBox1.Value = Sheets("Liste").Cells(compteur, 1).Value Then
        valeurcode = Sheets("Liste").Cells(compteur, 2).Value
        rep = MsgBox("La valeur du code correspondant est " & valeurcode, vbOKOnly, "Recherche code")

        End If
        Next compteur
        End Sub

        Note: Liste correspond au nom de la feuille contenant ton tableau
        0
      2. Eric34370 Messages postés 24 Date d'inscription   Statut Membre > didier09 Messages postés 13 Statut Membre
         
        Bonjour didier,

        je vais essayer ton code et comprendre sa structure
        Merci pour tout c'est sympa.

        cordialement Eric
        0
      3. Eric34370 Messages postés 24 Date d'inscription   Statut Membre > didier09 Messages postés 13 Statut Membre
         
        Re bonjour,

        Désolé didier mais cela ne fonctionne pas.
        j'ai recopier ton code(corrigé une parenthése qui manquait(détail), fait le User form avec tout et les propriété (Name) et tout et tout.
        j'obtiends bien la boite de Dial et quand je rentre une valeur de mon tableau et je clique sur ok rien ne se passe
        j'ai fait une feuille excel nommé Liste pour que tout soit comme dans la demarche que tu me proposé.
        J'en perd mon latin
        j'ai un bouquin Escel VBA mais cela ne m'a plus avancé.

        cordialement Eric
        0
  2. didier09 Messages postés 13 Statut Membre 36
     
    Il faut que la feuille Liste soit sélectionnée.

    Rajoute dans le code sur une auter ligne après Dim rep As Byte
    Sheets("Liste").Select

    j'ai essayé le code complet et sa marche.

    Si tu as un livre VBA tu doit y arriver
    Bon courrage
    j'attends de tes nouvelles
    0
    1. Eric34370 Messages postés 24 Date d'inscription   Statut Membre
       
      Salut didier,

      j'ai essayer le code mais toujour pas mieux
      peut tu m'envoyer le fichier que tu as essayé ou je t'envoie le mien
      mon mail ericdelwal@neuf.fr
      merci beaucoup pour ton aide j'apprécie beaucoup

      cordialement eric
      0
    2. Eric34370 Messages postés 24 Date d'inscription   Statut Membre
       
      Bonjour didier,

      meric pour le fichier que tu m'as envoyeé
      il marche impect et tes explications sont limpides
      je mets le code que tu m'as envoyer il peut servir à d'autres.

      Private Sub cmdok_Click()
      
      'Déclaration des variables utilisées
      Dim ligne As Long
      Dim valeursaisie As String
      Dim valeurcherchée As String
      Dim Message As Byte
      
      
      'Boucle permettant de chercher la valeur saisie
      For ligne = 2 To Sheets("Liste").Range("A1").End(xlDown).Row
          valeursaisie = Sheets("Liste").Range("A" & ligne).Value
              If valeursaisie = code.Value Then
                  valeurcherchée = Sheets("Liste").Range("B" & ligne).Value
                  Message = MsgBox("La valeur cherchée est " & valeurcherchée, vbOKOnly, "Valeur cherchée")
              End If
      Next ligne
      End Sub
      
      

      Explication

      La boucle For To s'éxécute jusqu'à la dernière ligne non vite
      A chaque passage, on mémorise la valeur de la cellule de la colonne A dans la variable valeursaisie
      Une condition If…End If vérifie si cette valeur est égale à la valeur saisie par la personne dans le formulaire (code.Value)
      Si c'est le cas, on mémorise dans la variable valeurcherchée, la valeur qui se trouve dans la colonne B et sur la même ligne
      puis on ouvre la boîte de dialogue affichant la valeur du code correspondant
      Si non, on passe à la ligne suivante jusqu'à la fin de la boucle



      cordialement Eric
      0