Bonjour
En VBA, pour manipuler une feuille de calcul donnée, il est souvent utile de créer une variable objet comme ceci :
Sur ce code, "Feuil1" correspond au nom de l'onglet de la feuille visible dans Excel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set MaFeuille = ActiveWorkbook.Worksheets("Feuil1")
Coté VBA Editor, il est possible d'utiliser le nom VBA de la feuille de calcul (qui par défaut est également Feuil1) et qui correspond à la propriété (Name) avec les parenthèses.
Jusqu'ici, j’utilise ce nom VBA de la feuille pour ne pas être tributaire du nom visible côté Excel comme ceci :
J'en arrive à ma problématique : comment déclarer une variable objet avec l'instruction set en utilisant le nom VBA de la feuille et pas le nom visible d'Excel ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part Feuil2.Range("A1") = "test"
Cela me serait particulièrement utile lorsque je souhaite travailler sur d'autres classeurs que celui qui contient le code VBA et pour manipuler une des feuilles de celui-ci.
Exemple pour un classeur nommé Planning.xlsx avec une feuille nommé "Janvier" coté Excel (et coté VBA, la feuille est nommée F01) :
Comment remplacer ce code pour utiliser le nom VBA de ma feuille ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Set MonClasseur = Workbooks("Planning.xlsx") Set MaFeuille= MonClasseur.Worksheets("Janvier") MaFeuille.Columns("D:D").Delete Shift:=xlToLeft
Les lignes suivantes ne fonctionnent pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Set MonClasseur = Workbooks("Planning.xlsx") Set MaFeuille= MonClasseur.F01 'erreur sur cette ligne MaFeuille.Columns("D:D").Delete Shift:=xlToLeft
J'espère que ma demande est assez explicite.
Merci pour toute aide apportée.
DG
Partager