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.
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
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