Recherche avec vba excel

Résolu
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. Modérateur
    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. Parfait, ton code marche très bien, je l'ai un peu modifié pour l'adapter a mon fichier.
      Merci beaucoup.
  2. Merci beaucoup, je vais essayer ça dans la journée.
    1. j'ai une autre problématique, je voudrai que la valeur ComboBox2 s'ajoute à une valeur existante dans la cellule.
      ???
    2. Contributeur
      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.
    3. impec, merci bien, vous êtes des champions!