Recherche avec vba excel

Résolu
math -  
 math -
Bonjour,

J'essaye de faire une macro qui cherche une valeur dans une base de donnée et copie une quantité 2 colonnes après la référence.

exemple:

base de données:
ps85
ps86
ps77
ps52
...

dans une userform, une liste déroulante en value "ps86" , une autre avec la quantité "5"
un bouton valider

quand je clique sur le bouton j'aimerais obtenir dans la base de donnée:

ps85
ps86 5
ps77
ps52
...

j'ai essayé avec vlookup mais aucun résultat.

2 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
     
    Bonjour,
    Essayez ce code :
    ComboBox1 = liste déroulante des valeurs (ps85, ps86 ...)
    ComboBox2 = liste des Qttés
    CommandButton1 = le bouton

    A adapter (en gras dans le code) le nom de la feuille contenant les données, le numéro de la colonne contenant les valeurs (ps85 etc...), le nombre de colonnes de "décalage" :

    Private Sub CommandButton1_Click()
    Dim RngTrouve As Range
    If ComboBox1 <> "" And ComboBox2 <> "" Then
        With Sheets(NomDeTaFeuil).Columns(1)
            Set RngTrouve = .Cells.Find(ComboBox1.Value, lookat:=xlWhole)
            If RngTrouve Is Nothing Then
                MsgBox "valeur inexistante"
            Else
                RngTrouve.Offset(0, 2).Value = ComboBox2.Value
            End If
        End With
    End If
    Set RngTrouve = Nothing
    End Sub
    --
    Cordialement,
    Franck P
    1
    1. math
       
      Parfait, ton code marche très bien, je l'ai un peu modifié pour l'adapter a mon fichier.
      Merci beaucoup.
      0
  2. math
     
    Merci beaucoup, je vais essayer ça dans la journée.
    0
    1. math
       
      j'ai une autre problématique, je voudrai que la valeur ComboBox2 s'ajoute à une valeur existante dans la cellule.
      ???
      0
    2. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
       
      Dans ce cas, il suffit de remplacer :
      RngTrouve.Offset(0, 2).Value = ComboBox2.Value
      par
      RngTrouve.Offset(0, 2).Value = RngTrouve.Offset(0, 2).Value + ComboBox2.Value


      Cordialement.
      0
    3. math
       
      impec, merci bien, vous êtes des champions!
      0