IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

Insérer une macro par le code


Sujet :

Contribuez

  1. #1
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut Insérer une macro par le code
    Placer ce code dans un module standard, n'importe lequel, d'un classeur, n'importe lequel, et l'exécuter.
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Option Explicit
    Sub EcrireDuCodeNimporteOu()
    Dim i, LeCode(1 To 13)
    Dim NomClasseur As String, NomFeuil As String
    Dim Wb As Workbook
    Application.Workbooks.Add
    NomClasseur = ActiveWorkbook.Name
    Worksheets.Add
    NomFeuil = ActiveSheet.Name
        LeCode(1) = "Private Sub Worksheet_Deactivate()"
        LeCode(2) = "Dim msg"
        LeCode(3) = "    msg = ""Après avoir beaucoup cherché sur le Web"" &  vbcr"
        LeCode(4) = "    msg = msg & ""Et suite à une méchante galère"" &  vbcr"
        LeCode(5) = "    msg = msg & ""J'ai trouvé un site super"" & vbcr"
        LeCode(6) = "    msg = msg & ""Où je peux enfin me défouler"" & vbcr"
        LeCode(7) = "    msg = msg & ""A glisser des trucs perverts"" & vbcr"
        LeCode(8) = "    msg = msg & ""Dans des codes élaborés"" & vbcr"
        LeCode(9) = "    msg = msg & ""Conclusion :"" & vbcr"
        LeCode(10) = "    msg = msg & "" Ne faites jamais confiance dans les codes qu'on vous passe"" & vbcr"
        LeCode(11) = "    msg = msg & "" Assurez-vous de l'avoir compris avant de dire """"Youpi !"""""
        LeCode(12) = "    msgbox msg"
        LeCode(13) = "End sub"
        Set Wb = Workbooks(NomClasseur)
        With Wb.VBProject.VBComponents(NomFeuil).CodeModule
            For i = .CountOfLines To 1 Step -1
                .DeleteLines i
                DoEvents
            Next
            For i = 1 To UBound(LeCode)
                .InsertLines i, LeCode(i)
            Next
        End With
        Workbooks(NomClasseur).Worksheets(2).Select
    End Sub


    ......................................................

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    J'ai une erreur sur cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Workbooks(NomClasseur).Worksheets(2).Select
    Il me dit que l'indice n'appartient pas à la sélection

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Alors c'est que tu n'as qu'une feuille dans un nouveau classeur. Je vais préciser de fixer à 2 ou plus le nombre de feuilles par défaut d'un classeur tout neuf.
    D'ailleurs, mon code ne fonctionne pas sur un Excel en Anglais

  4. #4
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    Ou alors insère une feuille mouarf

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Feuille ajoutée... Comme ça, même ce "#£¤╠▓&#╬!?¿╝#" d'illight pourra jouer avec

Discussions similaires

  1. [XL-2010] Lancement d'une macro par un scan de code-barres
    Par Poolipooo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/02/2014, 18h11
  2. [XL-2007] Crash excel lors de la création d'une macro par code
    Par miikado dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/11/2011, 18h47
  3. insérer une fonction dans une cellule par le code
    Par RemiT dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/09/2007, 16h15
  4. Ajouter une colonne (par du code) dans Listview
    Par __fabrice dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 23/11/2005, 17h39
  5. Démarrage d'une macro par SQL Server
    Par PiercingDegree dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 28/09/2005, 09h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo