Formule excel

Utilisateur anonyme -  
vaanbasch Messages postés 772 Date d'inscription   Statut Membre Dernière intervention   -

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

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 

bonjour,

cela peut se faire de plusieurs façons.

quel est l'objectif de cette traduction?

0
vaanbasch Messages postés 772 Date d'inscription   Statut Membre Dernière intervention   664
 

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