VBA - Nom de feuille pour VLOOKUP variable

  • Initiateur de la discussion Initiateur de la discussion Delux
  • Date de début Date de début

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 !

Delux

XLDnaute Occasionnel
Bonjour a tous,

J'essaye depuis plusieurs heures a donner un nom de feuille variable a ma formule que j'insere par macro.

Je m'explique un peu mieux, j'ai des feuilles cachees et quand j'execute ma macro, je vais chercher la feuille cachee qui correspond au range Sheet17.Range("A1").Value.

Une fois la feuille reinseree, j'execute une macro qui va inserer une formule sous quelques conditions dans une autre feuille.
La formule est un vlookup, mais le vlookup change en fonction du nom de la feuille qui a ete reinseree.

Code:
VLOOKUP(B" & Cel.Row & ", Sheets(" & Feuille & ").Range("B4:AZ5000"), 2, 0)
VLOOKUP(B" & Cel.Row & ", " & Sheets(Feuille).Range("B4:AZ5000") & ", 2, 0)
VLOOKUP(B" & Cel.Row & ", '" & Feuille & "'!B4:AZ5000, 2, 0)

Code:
Sub DST_Attributes_Check2()
'Check all attributes

Dim mySource As Range
Dim myCible As Range
Dim Cel As Range
Dim dl As Integer
Dim dc As Byte
Dim Feuille As String

Application.ScreenUpdating = False

Sheet17.Select

dl = Sheet17.Range("A65489").End(xlUp).Row 'derniere ligne remplie en se basant sur la colonne A
dc = Sheet17.Range("iv4").End(xlToLeft).Column 'derniere colonne remplie en se basant sur la ligne 4
Feuille = Sheet17.Range("A1").Text

Set mySource = Sheet17.Range(Cells(4, 3), Cells(dl, dc)) 'definit la source en utilisant les dernieres cellules remplies
Set myCible = Sheet18.Range("C4:AZ" & [C65489].End(xlUp).Row) 'definit la cible

myCible.ClearContents

For Each Cel In mySource
    If Cel.Interior.ColorIndex = 6 Then 'si l'interieur de la cellule est jaune
           
        Sheet18.Cells(Cel.Row, Cel.Column).Formula = "=IF(AND(VLOOKUP(A" & Cel.Row & _
            ", 'IMPORT SHEET'!$A$4:$AZ$" & dl & ", " & Cel.Column & ", 0)<>"""", VLOOKUP(B" & Cel.Row & ", Sheets(" & Feuille & ").Range("B4:AZ5000"), 2, 0)=""X"")"
    
    End If
Next Cel

Application.Run "Check_percentage"


End Sub

J'ai essaye de nombreuse methodes (cites ci-dessus) mais je n'arrive pas a modifier le nom de la feuille dans la formule.
J'ai joint un fichier exemple ou la feuille Cable_schedule represente la feuille que j'ai reinsere par ma precedente macro (je n'ai pas mis les autres feuilles cachees pour alleger le fichier exemple).
C'est le nom de cette feuille que je dois insere dans ma formule Vlookup a nom de feuille variable.

Auriez vous une solution?

En vous remerciant par avance

Cordialement,

Delux
 

Pièces jointes

Re : VBA - Nom de feuille pour VLOOKUP variable

Oups,

J'ai trouve le probleme qui n'en etait pas un ^^.

Il fallait juste finir la formule

Code:
Sheet18.Cells(Cel.Row, Cel.Column).Formula = "=IF(AND(VLOOKUP(A" & Cel.Row & _
            ", 'IMPORT SHEET'!$A$4:$AZ$" & dl & ", " & Cel.Column & ", 0)<>"""", VLOOKUP(B" & Cel.Row & ", Sheets(" & Feuille & ").Range("B4:AZ5000"), 2, 0)=""X""), 1, 0)"

Merci quand meme.
 
- 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
2
Affichages
153
Réponses
3
Affichages
672
  • Question Question
Réponses
6
Affichages
668
Réponses
5
Affichages
501
Retour