Vba: Insérer sub dans la feuil1 dynamiquement

Résolu/Fermé
ViriisXP Messages postés 482 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 11 janvier 2023 - 27 juin 2012 à 11:04
ViriisXP Messages postés 482 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 11 janvier 2023 - 16 juil. 2012 à 08:08
Bonjour, j'explique : j'ai actuellement un script qui me génère dynamiquement une liste d'optionboutton en fonction d'un nombre de valeur d'une feuille (une ligne = un bouton).

J'aimerais que comme lorsqu'on le rentre manuellement et qu'on ajoute l'option , je puisse faire :


Private Sub OptionButton_Click()
'blabla
End Sub


Sachant que ma feuille s'appel "Filtres" qu'il s'agit de la feuil1 et que j'aimerais que ce code soit généré directement dans mon For i = qui lui est présent dans une autre feuille ( a savoir "Valeurs").

En gros : je clic sur mon bouton de génération de macro dans la feuille "Valeurs"-> ca va chercher ma colonne A1 to A500 et ca prend le nombre de valeur qu'il as trouvé et crée dans la feuille "Filtres" autand d'optionbouton que de valeur trouvé (donc tout ca j'ai reussi!) et que dans le code de la feuil1("Filtres") ca me rajoute à la suite du code présent, autant de
Private Sub OptionButton_Click()
'blabla
End Sub

que de bouton générer....

Alors j'ai trouvé un truc comme ca :

    laMacro = "Private Sub OptionButton1_Click()" & vbCrLf
    laMacro = laMacro & "msgbox(" & "test" & ")" & vbCrLf
    laMacro = laMacro & "End Sub"
    
    With ThisWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule
        x = .CountOfLines + 1
        .InsertLines x, laMacro
    End With



Mais comme je suis pas dans la même feuille, je pense pas que ce code marche, je pense qu'il doit être plutôt dans un module.









2eme étapes : le code dans la private sub doit être générer dynamiquement également en fonction d'une concaténation de valeurs présente dans "Valeurs" mais on verra après ^^



Merci par avance à ceux qui proposerais leurs aides






3 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié par f894009 le 28/06/2012 à 10:52
Re,

Un exemple de programmation. J'ai volontairement enleve les "*" pour choix "Tous". Si vous voulez cette option de choix, a vous de faire le tri en fonction de ce choix. C'est faisable, mais il faudra cogiter un peu pour eviter les doublons dans les listbox.

A vous de programmer le filtre, car je ne sais pas ou vous voulez le faire.

https://www.cjoint.com/?BFCkQvZh2Qb

A+
1
ViriisXP Messages postés 482 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 11 janvier 2023 40
28 juin 2012 à 13:24
Merci !!!!!!!!!

J'ai demandé, * ne sera pas nécessaire.
Merci beaucoup pour tout !!!
0
ViriisXP Messages postés 482 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 11 janvier 2023 40
28 juin 2012 à 15:28
bon, mon chef aime l'idée du *

donc je suis reparti à sa création.... j'ai rajouter également des critères de plages de recherche. j'aurais surement besoin d'un peu d'aide ^^
0
ViriisXP Messages postés 482 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 11 janvier 2023 40
2 juil. 2012 à 07:51
Bonjour, j'ai regarder un peu le code ce weekend et je n'ai pas réussi à mettre en place le système des "*" . Je n'arrive pas à modifier de façon à ce que toutes les valeurs soit prise en compte. Si vous pouviez m'égailler un peu ... car là je rame ^^
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
2 juil. 2012 à 11:23
Bonjour,
bon, mon chef aime l'idée du *
Un chef est un chef. Par contre si c'est vous qui lui avez parle des "*", je ne dirai rien, mais......(cela commence par un F) et ce n'est pas toujours "payant".

Rappelez moi ce que vous vouliez parce que :

j'ai rajouter également des critères de plages de recherche

Cela risque d'etre un peu rock'n roll a programmer.
0
ViriisXP Messages postés 482 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 11 janvier 2023 40
2 juil. 2012 à 11:33
Non, c'est lui qui est revenu avec l'idée de pouvoir choisir plusieur op,site,client,série donc bon ^^.

En gros : ca me permettrait d'extraite un tableau de statistique en fonction du critère de recherche.

L'intérêt est de comptabilisé le nombre d'intervention prévu sur une plage donné (du ... au ...) et suivant le destinataire il faut pouvoir selectionner plutot selon les site, plutot selon les clients, ect ...
exemple non probant :
Si il veux toutes les OP des engins 81000, pour le site de Bordeaux, mais pas que pour le client Aqui, il veut que ca donne un tableau de stats.
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
27 juin 2012 à 11:39
Bonjour,

Remplacez ActiveSheet.Name par "Valeurs" ou activez la feuille "Valeurs".

A+
0
ViriisXP Messages postés 482 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 11 janvier 2023 40
27 juin 2012 à 11:47
Toujours Erreur d'exécution 9 : l'indice n'appartient pas à la sélection.
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
27 juin 2012 à 11:49
Re,
A quelle ligne de code??????????????????
0
ViriisXP Messages postés 482 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 11 janvier 2023 40
27 juin 2012 à 12:07
Re, bon j'ai expliquer le tout dans le fichier xls suivant .

ca te permettra de voir en direct ^^

https://www.cjoint.com/?BFBmgoEtNqn

Cordialement
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
27 juin 2012 à 12:14
Re,
Il y a peu de temps (sauf erreur de ma part), je vous ai donne un lien pour acceder a un exemple de classeur fait par Lermite (CCM). Cet exemple montre comment programmer pour utiliser les evenements de controles crees par programme. Ce que vous essayer ne marchera pas.

A+
0
ViriisXP Messages postés 482 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 11 janvier 2023 40
27 juin 2012 à 12:21
oui, mais je n'ai pas exactement compris la méthode (car très peu commenté) qui lui permet de faire cette procédure et pour lui il ne crée pas à partir d'une base de données se trouvant sur une feuille.
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
27 juin 2012 à 14:42
Re,
il ne crée pas à partir d'une base de données se trouvant sur une feuille.
Cela ne pose aucun probleme!
0