Formule excel

-  

Bonjour

Je voudrais traduire cette formule excel en VBA :

  • Dans la Feuille1 j'ai une liste (n° compte et son Intutilé)
  • Dans la Feuille2, dans la cellule A1, j'ai liste déroulante donc quel est le code VBA de cellule B1 en VBA.

Merci d'avance.

=SIERREUR(RECHERCHEV(C20;'Feuil1'!$E$2:$F$664;2;FAUX);"")

***@***

2 réponses

  1. Contributeur

    bonjour,

    cela peut se faire de plusieurs façons.

    quel est l'objectif de cette traduction?

    0
    1. Bonjour,

      Alors en s'y penchant de plus près, je propose ce code.

      Edit : une petite erreur modifiée. 

      Sub RechercheIntituleCompte()
          Dim ws1 As Worksheet, ws2 As Worksheet  ' Déclaration des variables pour les feuilles
          Dim rechercheValeur As Variant          ' Valeur recherchée (depuis C20)
          Dim cell As Range                       ' Chaque cellule de la plage de recherche
          Dim resultat As String                  ' Résultat de la recherche
      
          ' Définir les feuilles concernées
          Set ws1 = ThisWorkbook.Sheets("Feuil1")   ' Feuille contenant la liste des comptes
          Set ws2 = ThisWorkbook.Sheets("Feuil2")   ' Feuille où l'on fait la recherche
      
          ' Récupérer la valeur entrée dans C20 de Feuil2
          rechercheValeur = ws2.Range("C20").Value
      
          ' Initialiser le résultat par défaut en cas d'erreur
          resultat = ""
      
          ' Parcourir la plage de recherche E2:E664 de Feuil1
          For Each cell In ws1.Range("E2:E664")
              If cell.Value = rechercheValeur Then
                  ' Correspondance trouvée : On récupère la valeur correspondante de la colonne F
                  resultat = cell.Offset(0, 1).Value
                  Exit For  ' On arrête la recherche dès qu'on a trouvé
              End If
          Next cell
      
          ' Afficher le résultat trouvé dans la cellule B1 de Feuil2
          ws2.Range("B1").Value = resultat
      End Sub

      0