Vba

Résolu
bonjour,

je souhaite pouvoir rechercher une valeur avec 2 conditions est-ce possible en vlookup?

Worksheets("Feuil2").Range("B3") = WorksheetFunction.VLookup(Font.Bold = False & "pneu", Worksheets("Feuil1").Range("A1:C10"), 3, False)

il y a deux cellule qui porte le meme nom mais je ne veux pas la valeur de celui en caractere gras.

merci

2 réponses

  1. Bonjour,

    Tu peux utiliser la méthode Find :
    Sub Test()
    Dim C As Range
    Dim firstAddress As String
    Set C = Worksheets("Feuil1").Columns(1).Find("pneu", , xlValues, xlWhole)
    If Not C Is Nothing Then
    firstAddress = C.Address
    Do
    If C.Font.Bold = False Then
    Worksheets("Feuil2").Range("B3") = C.Offset(, 2).Value
    Exit Do
    End If
    Set C = Worksheets("Feuil1").Columns(1).FindNext(C)
    Loop While Not C Is Nothing And C.Address <> firstAddress
    End If
    End Sub

    A+
    0
    1. Contributeur
      Bonjour

      une autre proposition avec nombre de "pneu"= 2
      Option Explicit
      '-----------------------------
      Sub chercher_pneugras()
      Dim zone As Range, cellule As Range
      Dim Cptr As Integer

      Application.ScreenUpdating = False
      Set zone = Sheets(1).Range("A1:C10")
      With zone
      If Application.CountIf(zone, "pneu") = 0 Then GoTo vide
      Set cellule = .Find(what:="pneu", LookIn:=xlValues)
      For Cptr = 1 To 2
      If cellule.Font.Bold = True Then
      Sheets(2).Range("B3") = Sheets(1).Cells(cellule.Row, "C")
      Exit For
      End If
      Set cellule = .FindNext(cellule)
      Next
      End With
      Exit Sub

      vide:
      MsgBox """pneu"" absent dans la zone!", vbExclamation
      End Sub


      la maquette:
      http://www.cjoint.com/c/FDphapbuBYt
       Michel
      0
      1. Vraiment wow!!

        Très apprécié. La premiere fonctionne très bien. J'avais reussi avec un truc de logique sumif mais je veux sortir d'excel. Je vais apprécié la deuxième aussi. C'est pratique pcq ca aide à comprendre.

        Merci encore
        0