Créer une feuille et y insérer des macro

Fermé
boubou - 20 juin 2013 à 22:23
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 21 juin 2013 à 15:19
Bonjour,

Je fais une feuille excel pour des soumissions et au final je crée un onglet pour un client.

Worksheets.Add().Name = Client

Ca va très bien.

Ensuite, je formate la feuille du client à ma guise en y ajoutant des bouton auquel je rattache des macro, mais ou je bloque c'est que j'aimerais utiliser la fonction selectionchange de ma nouvelle feuille.

Disons y mettre le code suivant :
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim ligne As Integer

ligne = Selection.Row

If ligne > 2 Then
Range("C1").Value = Range("A" & ligne).Value
End If
End Sub

Le problème c'est que la feuille du client n'existe pas encore, je la créé via le code VBA.
Donc, comment insérer du code relié à un évènement sur une feuille qui n'existe pas encore ?

Comment faire pour peupler les évènement d'une feuille qu'on vient de créer via le code ?

Merci d'avance.

Boubou
A voir également:

3 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 777
20 juin 2013 à 23:42
1
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 777
21 juin 2013 à 15:19
Remplace "Feuil5" par
Worksheets("Ma Feuille").CodeName
1
Excellent. Mon nouveau code

With ActiveWorkbook.VBProject.VBComponents("Feuil5").CodeModule
'Chr(38) permet d'insérer le symbole & dans la procédure au besoin.
X = .CountOfLines
.InsertLines X + 1, "Private Sub Worksheet_SelectionChange(ByVal Target As Range)"
.InsertLines X + 2, "Ligne = selection.Row"
.InsertLines X + 3, "If ligne > 2 then"
.InsertLines X + 4, " Range(""C1"").value = Range(""A"" & Ligne).value"
.InsertLines X + 5, "Else"
.InsertLines X + 6, " Range(""C1"").value = """""
.InsertLines X + 7, "End if"
.InsertLines X + 8, "End Sub"
End With

Ma nouvelle question.
Je ne suis pas très à l'aise avec VBComponents.
Si au lieu de "Feuil5" quel serait la façon d'assigner une feuille par le nom de son d'onglet ?
Les feuilles sont créé dynamiquement, au moment de créer la macro, je sais le nom de l'onglet, mais j'ignore à quel # de feuille je suis rendu.
0