Bonjour, voici mon problème :

Je souhaite créer une forme sur une des 5 feuilles de mon fichier excel via une macro, la feuille qu'il faut sélectionner est renseignée dans un fichier texte:
je lis le fichier texte, je récupère la valeur (1,2,3,4 ou 5) puis en fonction de cette valeur je dois sélectionner la feuille adéquate (Feuil1,Feuil2,Feuil3,Feuil4 ou Feuil5).

Voici le code utilisé (sélection de la feuille) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 If sheet = 1 Then
        sheet_name = "Feuil1"
    ElseIf sheet = 2 Then
        sheet_name = "Feuil2"
    ElseIf sheet = 3 Then
        sheet_name = "Feuil3"
    ElseIf sheet = 4 Then
        sheet_name = "Feuil4"
    ElseIf sheet = 5 Then
        sheet_name = "Feuil5"
    End If
 
    'Ajout de formes automatique (Rectangle) dans la feuille
    With sheet_name.Shapes.AddShape(msoShapeRoundedRectangle, 10, coord1, 80, 85)
        .Name = "P0" & Project   'shape name
        .TextFrame.Characters.Text = Project   'inside Text
        .Fill.ForeColor.RGB = RGB(180, 130, 20) 'inside color
    End With
Mon problème c'est que la variable qui contient le nom de la feuille est de type String, j'ai déja essayé d'utiliser un type Worksheets en écriant sheet_name = worksheets("Feuil1").select mais ça ne marche pas non plus.

Ce code fonctionne uniquement quand je remplace sheet_name par le nom de la feuille directement (Feuil1 par exemple):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
   With Feuil1.Shapes.AddShape(msoShapeRoundedRectangle, 10, coord1, 80, 85)
        .Name = "P0" & Project   'shape name
        .TextFrame.Characters.Text = Project   'inside Text
        .Fill.ForeColor.RGB = RGB(180, 130, 20) 'inside color
    End With
Auriez-vous une idée de comment faire pour régler ce problème ? Sans avoir à copier 5 fois la même chose pour chaque feuille dans un mega IF

Merci d'avance pour votre aide