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

Macros et VBA Excel Discussion :

Créer une macro dans un module à partir d'un autre module


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2018
    Messages : 22
    Par défaut Créer une macro dans un module à partir d'un autre module
    Bonjour,

    Cela fait maintenant 2 jours que je cherche mais impossible de trouver.

    Je m'explique, j'ai un userforme avec une TextBox j'aimerais que quand on valide ce TextBox cela me crée dans un module bien précis une nouvelle macro avec comme titre ce qu'il y a dans la TextBox.


    HELP!!! Merci beaucoup pour votre aide je n'en peux plus je n'en n'ai pas dormi.

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2018
    Messages : 29
    Par défaut
    Bonsoir,

    Jamais fait mais une idée ne sera pas de refus je pense.

    Plutot que de créer un Sub Txtbox.Value() 'c'est bien votre idée ?
    Pourriez vous trouvez votre compte avec Function Fonction_en_dure(Txtbox.Value)

    Tout ceci est mystérieux n'hésitez pas à poster la suite de la démarche avec ce Sub vide/arg inconnu, ça peut être intéressant.

  3. #3
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2018
    Messages : 22
    Par défaut
    Merci pour ta réponse mais je t'avoue que je suis encore débutant et pas tout compris à ton message.

    Mais je vais essayer d’être plus claire pour le projets.

    En claire j'ai une feuille principal qui va reprendre les titres de livre que j'aurais lu. Pour ajouter un titre je passe par un userform ou j'indique le Titre du livre celui ci me crée une nouvelle page avec pour nom le titre du livre. En même temps sur la page principal il me crée un bouton avec pour caption le titre du livre, et pour action Sélectionné la page du livre correspondant.

    Pour le moment j'ai ceci comme code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
       Private Sub CommandButton1_Click()
       ActiveSheet.Buttons.Add(0, 51, 48, 15).Select
       Selection.Characters.Text = TextBox1
       Sheets.Add After:=ActiveSheet
       ActiveSheet.Name = TextBox1
       Range("A1").Select
       ActiveCell.FormulaR1C1 = TextBox1
       End Sub
    Merci beaucoup

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2018
    Messages : 29
    Par défaut
    Bonjour,

    Merci on voit mieux ce qu'il y a à faire.

    Je ne vois pas dans ce code quand vous inscrivez le nouveau titre dans la feuille. Il faudrait déjà faire une formule pour ça et elle devra trouver la première cellule vide (faire une recherche la dessus en précisant "vba excel").

    Vous utilisez Activesheet ce qui est pratique mais qui va devenir illisible et source d'erreur puisque vous avez une procédure sur tout le classeur. Prenez le temps de déclarer au moins un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim SommaireSheet As Worksheets ' (pas sur du S ...)
    Set SommaireSheet = Activesheet
    Une fois fait ce sera plus lisible et évitera de faire souvent des .select ou .activate.

    Au plaisir de voir votre avancement.

  5. #5
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2018
    Messages : 22
    Par défaut
    Bonjour,

    Alors voila ou j'en suis arrivé.

    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
    Private Sub CommandButton1_Click()
    ActiveSheet.Buttons.Add(0, 51, 48, 15).Select
    Selection.Characters.Text = TextBox1
    Sheets.Add After:=ActiveSheet
    ActiveSheet.Name = TextBox1
    Range("A1").Select
    ActiveCell.FormulaR1C1 = TextBox1
    Dim x As Long, str As String
        str = ""
        Set VBCodeMod = ThisWorkbook.VBProject.VBComponents("Module1").CodeModule
        With VBCodeMod
            str = "Sub TextBox1()" & vbCrLf
            str = str & "      Msgbox ""Nouvelle Procedure""" & vbCrLf
            str = str & "End Sub" & vbCrLf
            x = .CountOfLines + 1
            .InsertLines x, str
        End With
    End Sub
    Je renomme la nouvelle page avec la ligne de code ActiveSheet.Name= TextBox1.

    Pour la premier cellule elle sera toujours vide vue que c'est une nouvelle feuille vierge qui est crée.

    Il me reste par-contre juste un petit problème je n'arrive pas a nommer ma nouvelle macro avec le titre dans la TextBox.

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2018
    Messages : 29
    Par défaut
    Bravo pour ce que tu as trouvé.

    La première cellule je parlais de l'onglet "sommaire".

    Je ne recomprend pas encore pourquoi vous voulez créer une nouvelle macro, car si j'ai saisi elle n'aura rien de nouveau (à part son Titre ce qui peut être résolu en utilisant une variable).

    Voila en francais ce que j'ai compris de votre procédure :
    Envoi du Titre dans la l'onglet du sommaire
    Création d'un boutton qui ouvrira l'onglet du Titre
    Création de l'onglet du Titre

    En soit ceci est déjà une macro en 3 étapes, elle fera toujours la même chose mais avec les titres différents qui lui seront envoyés, on se comprend ou pas du tout ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer une macro dans Word
    Par Chevalbleu dans le forum VBA Word
    Réponses: 5
    Dernier message: 15/09/2019, 10h10
  2. Réponses: 5
    Dernier message: 20/01/2016, 09h49
  3. [XL-2003] Rédiger une macro dans un classeur à partir d’une macro d'un autre classeur
    Par Roms un dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/11/2009, 15h44
  4. Réponses: 1
    Dernier message: 08/10/2008, 15h30
  5. Impossible de créer une macro dans Visio 2007
    Par JerBi dans le forum Visio
    Réponses: 5
    Dernier message: 15/05/2008, 10h25

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