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 :

Macro qui créée bouton et écrit sa macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Femme Profil pro
    Apprentie
    Inscrit en
    Avril 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Apprentie

    Informations forums :
    Inscription : Avril 2017
    Messages : 8
    Par défaut Macro qui créée bouton et écrit sa macro
    Bonjour le forum,

    Après mainte et mainte recherches, essais et macros dans tout genre je me tourne vers vous parce que je ne trouve vraiment pas de solution.

    J'ai une macro qui est reliée au bouton d'un userform et qui est sensé créer un bouton dans la cellule active lui donné le nom de la combobox du même userform et écrire une macro dans le Module "Module_Supp" qui permettra de se rendre sur le nom de la feuille choisie par le combobox. Ensuite cette macro est affecter à ce bouton puis fin de la macro.
    La combobox s'appelle : List_Der_Ong
    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
    Private Sub Bouton_Crear_Click()
     
    Dim Obj As Object
    Dim Code As String
    ActiveCell.Select
     
    Set Obj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
    Link:=False, DisplayAsIcon:=False, Left:=ActiveCell.Left, Top:=ActiveCell.Top, Width:=ActiveCell.Width, _
    Height:=ActiveCell.Height)
    Obj.Name = List_Der_Ong.Value
     
     
     
     
     
    ActiveSheet.OLEObjects(1).Object.Caption = List_Der_Ong.Value 'Le texte de la macro
    Code = "Sub " & Liste_Der_Ong.Value & "_Click()" & vbCrLf
    Code = "Sheets(" & Liste_Der_Ong.Value & ").Select" & vbCrLf
    Code = "End Sub"
    'Ajoute la macro en fin de module feuille
    With ActiveWorkbook.VBProject.VBComponents("Module_Supp").CodeModule
    .insertlines .CountOfLines + 1, Code
    Selection.OnAction = "Liste_Der_Ong.Value"
    End With
    End Sub
    Bien évidemment comme vous vous en doutez elle ne marche pas complétement.
    Elle créer bien le bouton au bon endroit avec le bon nom mais impossible de créer la macro et de l'y lié. Elle m'affiche un message : Erreur : 424, Objet requis!
    Je vous joins le fichier dans lequel je l'utilise si ça peut vous servir : d'un clic droit dans la cellule de la colonne "supplementado" de la feuille "Produccion" l'userform s'ouvre et la macro précédente qui ne fonctionne pas se trouve dans le code de cet userform qui s'appelle "Choix_Onglets".
    Planificateur de production - Copie.xlsm

    J'ai tester tout ce que j'ai trouver en vain, est-ce que qqn aurait une idée??

    Un grand merci d'avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Si ton combobox est un activex, ce serait vachement plus simple de sélectionner directement la feuille en fonction du choix du combobox, en gérant par exemple son évènement Click.
    Si c'est un combobox de formulaire, c'est la macro auquel tu le lies qui fera le travail.

    Ecrire du code qui écrit du code, c'est très rarement nécessaire et il y a toujours moyen de faire plus simple
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre régulier
    Femme Profil pro
    Apprentie
    Inscrit en
    Avril 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Apprentie

    Informations forums :
    Inscription : Avril 2017
    Messages : 8
    Par défaut
    Bonjour, merci de ta réponse

    Dans ce cas en l'occurence ça ne répondrait pas à mon problème car je ne veux pas que cela sélectionne mon onglet quand je choisi un nom de feuille dans la combobox mais que le userform me créer un bouton pour chaque ligne de mon tableau qui emmène à une page différente chacun en fonction de ce qui aura été choisis préalablement dans la combobox.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Ne te verrouille pas sur la solution à laquelle tu as pensé.

    J'ai bien compris ta demande, mais je répète que créer une macro par macro n'est pas une bonne option. Placer un bouton sur chaque ligne du tableau n'est pas une bonne solution non plus.

    Que veux-tu mettre en place? Peux-tu décrire ce qui doit se passer lorsque l'utilisateur cliquera sur le bouton dans la cellule?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre régulier
    Femme Profil pro
    Apprentie
    Inscrit en
    Avril 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Apprentie

    Informations forums :
    Inscription : Avril 2017
    Messages : 8
    Par défaut
    Bonjour Pierre,
    je ne suis pas vérouillée sur la solution,

    Disons juste que je travailles dessus depuis un bout de temps j'ai déjà réussi à créer tous ce qui permettra de faire mes boutons dans mes cellules il me manque juste cette macro qui m'écrit les macros et les assimile à des boutons, donc je ne voyais pas d'autre solution à mon problème. Mais je suis tout ouie

    J'aimerai que l'utilisateur 1 après avoir choisi dans la combobox de l'userform un nom de feuille et cliquer sur le bouton "Crear" de l'userform, qu'il y ai un bouton ou un lien ou autre avec le nom de la feuille visible qui se créé dans la cellule active (ou avait cliquer droit le premier utilisateur) et qu'il permette en un clic sur la cellule de se rendre sur l'onglet du classeur correspondant pour un utilisateur 2.
    Cela doit être reproductible dans chaque cellule de la colonne supplementado de l'onglet produccion, et chacun doit mener a des pages différentes.

    J'espère que j'ai réussie a être claire
    Merci de ton aide et de ta réponse

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Ok.

    Plutôt qu'un bouton avec macro, je te propose alors un lien hypertexte à placer dans la cellule. Ca me semble être la solution la plus simple.

    Voici une fonction qui réalise cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function AddHyperlink(Source As Range, Target As String, Optional Display As String)
      Source.Parent.Hyperlinks.Add anchor:=Source, Address:="", SubAddress:=Target, TextToDisplay:=IIf(Display = "", Target, Display)
    End Function
    Lors de l'action dans le userform, tu invoques cette fonction en lui passant les arguments suivants:
    • Source: Cellule qui recevra le lien hypertexte (a priori si j'ai bien compris, ActiveCell devrait faire l'affaire);
    • Target: Cible du lien, par exemple Feuil2!a3 ou Feuil5!C19;
    • Display: Texte du lien hypertexte à afficher. Si tu ne le renseignes pas, le lien affichera la cible.


    Voici un exemple de l'utilisation de cette fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    addhyperlink activecell,"Feuil3!a5","Cible du lien"
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Membre régulier
    Femme Profil pro
    Apprentie
    Inscrit en
    Avril 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Apprentie

    Informations forums :
    Inscription : Avril 2017
    Messages : 8
    Par défaut
    C'est génial!!! ça marche parfaitement

    Un gros merci Pierre pour avoir résolu mon problème, ta solution est mieux que tout ce que j'avais imaginé!!

    Bonne journée, je mets résolu et encore merci

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

Discussions similaires

  1. macro qui crée une macro est ce possible
    Par redstoff dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/02/2011, 11h49
  2. Macro qui crée une macro
    Par ankoubzh dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/05/2009, 19h44
  3. problème : une macro qui crée un tableau
    Par watashi wa dans le forum Mise en forme
    Réponses: 1
    Dernier message: 22/04/2008, 09h22
  4. macro qui crée une macro, est ce possible ?
    Par Djohn dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/07/2007, 09h43
  5. Macro qui crée et renomme un controle
    Par k-eisti dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/06/2007, 17h17

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