XL 2021 Conversion de formules XL imbriquées en VBA

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Jacques SPAGNOL

XLDnaute Nouveau
Bonjour le forum, je bute sur cette conversion de formule en VBA ( qui fonctionne en XL) pour me faire un retour sur un numéro de colonne
=RECHERCHEX('Semaine'!C3;'BdD2023'!62:62;COLONNE('BdD2023'!62:62))
edit
en fait la formule est destinée à alimenter une variable dans une macro et pas une cellule d'où mon petit problème

merci d'avance
 
Dernière édition:
Solution
Cela dit en nommant la cellule et la plage c'est plus simple :
VB:
Sub RechercheXColonne()
    Dim valeurTrouvee As Variant
    Sheets("Semaine").Range("C3").Name = "valeurRecherchee" 'cellule nommée
    Sheets("BdD2023").Range("62:62").Name = "plageRecherche" 'plage nommée
    valeurTrouvee = Application.Evaluate("XLOOKUP(valeurRecherchee,plageRecherche,COLUMN('BdD2023'!2:2))")
    Debug.Print valeurTrouvee
End Sub
Re,
en voulant intégrer la réponse proposée avec quelques variables je suis confronté à une :
" incompabilité de type"
un avis ?
Cdt Jacques

VB:
Sub RechercheXColonne()

    Dim valeurRecherchee As Integer     ' numéro de semaine
    Dim plageRecherche As Range
    Dim plageValeursRetour As Range
    Dim valeurTrouvee As Integer           'numéro de colonne 
    
    ' Définir la valeur à rechercher
    valeurRecherchee = Sheets("Semaine").Range("C3").Value
    
    ' Définir la plage de recherche (ligne 62)
    Set plageRecherche = Sheets("BdD2023").Range("62:62")
    
    ' Définir la plage contenant les valeurs de retour (ligne 2)
    Set plageValeursRetour = Sheets("BdD2023").Rows(2)

'    ' Effectuer la recherche X
'    valeurTrouvee = Application.Evaluate("XLOOKUP(Semaine!C3,'BdD2023'!62:62,COLUMN('BdD2023'!2:2))")
 
    ' Effectuer la recherche X
    valeurTrouvee = Application.Evaluate("XLOOKUP(valeurRecherchee ,plageRecherche ,COLUMN('BdD2023'!2:2))")
  

Debug.Print valeurTrouvee
End Sub
 
Bonjour,

Il faut aussi que la formule à évaluer soit interprétable donc au lieu de :
VB:
valeurTrouvee = Application.Evaluate("XLOOKUP(valeurRecherchee ,plageRecherche ,COLUMN('BdD2023'!2:2))")
écrivez :
VB:
valeurTrouvee = Application.Evaluate("XLOOKUP(" & valeurRecherchee & "," & plageRecherche.Address & ",COLUMN('BdD2023'!2:2))")
A+
 
Cela dit en nommant la cellule et la plage c'est plus simple :
VB:
Sub RechercheXColonne()
    Dim valeurTrouvee As Variant
    Sheets("Semaine").Range("C3").Name = "valeurRecherchee" 'cellule nommée
    Sheets("BdD2023").Range("62:62").Name = "plageRecherche" 'plage nommée
    valeurTrouvee = Application.Evaluate("XLOOKUP(valeurRecherchee,plageRecherche,COLUMN('BdD2023'!2:2))")
    Debug.Print valeurTrouvee
End Sub
 
Cela dit en nommant la cellule et la plage c'est plus simple :
VB:
Sub RechercheXColonne()
    Dim valeurTrouvee As Variant
    Sheets("Semaine").Range("C3").Name = "valeurRecherchee" 'cellule nommée
    Sheets("BdD2023").Range("62:62").Name = "plageRecherche" 'plage nommée
    valeurTrouvee = Application.Evaluate("XLOOKUP(valeurRecherchee,plageRecherche,COLUMN('BdD2023'!2:2))")
    Debug.Print valeurTrouvee
End Sub
Bonjour Job75 et le forum, et surtout merci pour votre apport ça me permet d'avancer dans mon projet mais aussi d'acquérir de nouvelles connaissances.
cdt Jacques
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
12
Affichages
1 K
Réponses
1
Affichages
1 K
Retour