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) :
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.
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
Ce code fonctionne uniquement quand je remplace sheet_name par le nom de la feuille directement (Feuil1 par exemple):
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
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
Merci d'avance pour votre aide
Partager