Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

créer une feuille et du code inclu

  • Initiateur de la discussion Initiateur de la discussion grodep
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

grodep

XLDnaute Occasionnel
Bonjour à tous, voici ma question :
je constate qu'il est possible de créer des macros dans des modules mais aussi d'écrire du code "directement" dans une feuille(j'espere que c'est assez clair jusque là).
Est-il possible, lorsqu'on crée une feuille a l'aide d'une macro de faire en sorte que cette feuille "contienne" un code?
voici un exemple de ce que j'appelle une feuille qui contient du code(classeur créé par boisgontier)

merci a tous
 

Pièces jointes

Re : créer une feuille et du code inclu

oulalala c'est du lourd ce site 🙂

bon si j'ai bien compris, ce que je souhaite faire s'appelle "créer une macro dynamiquement" et l'exemple ci-dessous s'y rapporte :

Code:
Sub creationMacro()
Dim X As Integer

With ActiveWorkbook.VBProject.VBComponents("Feuil1").CodeModule
    X = .CountOfLines
    .InsertLines X + 1, "Private Sub Worksheet_SelectionChange(ByVal Target As Range)"
    
    'Chr(38) permet d'insérer le symbole & dans la procédure.
    .InsertLines X + 2, _
        "MsgBox ""La cellule sélectionnée: """ & Chr(38) & " Target.Address,,""Message"" "
    .InsertLines X + 3, "End Sub"
End With
End Sub

bon, j'vais voir ce que j'arrive a faire avec ça 😛

merci en tout cas pour les pistes de recherche
 
Re : créer une feuille et du code inclu

Re,

je n'ai pas 2007, je ne sais pas où tu dis de faire confiance au projet visual basic sur cette version... mais c'est exactement le type d'erreur qu'il fait si tu n'as pas coché l'option.
 
Re : créer une feuille et du code inclu

arghhh, j'essaie d'écrire ça correctement dans mon code, j'ai donc remplacé feuil1 par prévi

Code:
With ThisWorkbook
vry = Array("prévi", "vols", "sols", "recap")
    For i = 1 To 4
        .Sheets.Add after:=.Sheets(.Sheets.Count)
        .Sheets(.Sheets.Count).Name = vry(i)
    Next i
End With

'insertion module liste dynamique dans feuille prévi
With ActiveWorkbook.VBProject.VBComponents("prévi").CodeModule
lorsque je lance ma macro , le programme bloque sur cette ligne : erreur '9' : l'indice n'appartient pas à la sélection.
l'aide d'excel ne m'apporte aucun éclaircissement, je ne vois pas le rapport entre le message d'erreur, son explication et le code que j'introduis...

quelqu'un voit d'où peut venir le problème?

Edit: alors visiblement le problème vient de ce que je ne peux pas nommer VBComponents par son nom, il faut que ce soit du type "Feuil1". Du coup mon problème est autre : comment puis je savoir quel sera le numéro de ma feuille lors de sa création? En effet, si j'initialise plusieurs fois cette macro, le numéro des feuilles s'incrémente au fur et à mesure... Je suis sur qu'il y a un moyen simple et efficace de passer cet écueil mais je ne le connais pas..

merci d'avance.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
32
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…