Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

modifier le code par une macro

0 views
Skip to first unread message

claude

unread,
Jun 6, 2002, 9:30:00 AM6/6/02
to
bonjour à tous
je voudrais modifier le code d'une macro en utilisant ...le code
par exemple, je voudrais entrer une constante que je demanderai à
l'utilisateur une fois à l'aide d'une inputbox
j'ai toujours la solution d'écrire çà dans une cellule que j'irai coller
dans un coin et lire la prochaine fois, mais je voudrais
savoir si c'est possible d'inscrire cette donnée dans le code
merci d'avance
claude


Marc

unread,
Jun 6, 2002, 10:31:11 AM6/6/02
to
Bonjour,

Il est possible de modifier dynamiquement le code VBA par
un programme ... VBA.

Pour cela, il faut utiliser les objets "VBE"
et "VBProject" de l'objet Application.
Je pense que tu trouveras des exmples dans l'aide VBA.

Bonne journée

Marc


>-----Message d'origine-----

>.
>

papy Jean

unread,
Jun 6, 2002, 3:41:39 PM6/6/02
to
Bonsoir Claude !

Je risque un point de vue qui ne répond pas exactement à la façon dont tu as
formulé ta demande, mais comme tu utilises les mots <dans un coin>

Il me semble plus simple et plus ... tout, de mettre TOUS les paramètres des
macros dans une feuille à part, feuille que la macro commence par aller
lire.
Rien n'empêche alors de les demander s'ils sont vides.
De plus, on peut les faire remplir hors macro, ce qui simplifie le travail
de programmation.
Enfin toutes les macros sont à jour en même temps .
Il est possible de séparer dans cette feuille les paramètres aux quels
l'utilisateur peut (ou doit) toucher, des autres paramètres.

Salutations
Papy Jean

"claude" <docl...@worldonline.fr> a écrit dans le message news:
newscache$oidaxg$1f3$1...@news.tiscali.fr...

Denis Michon

unread,
Jun 6, 2002, 3:50:14 PM6/6/02
to
Bonjour Claude,

Voici un exemple ajouter en deuxième ligne une constante numérique
à un code ...Attention... assure-toi que la ligne de code se place
bien au bon endroit.

P.S. si tu dois répéter cette action... cette procédure n'efface pas
la ligne de code que tu as ajouté précédemment.... il faudra prévoir
d'effacer la ligne avant de d'ajouter la nouvelle constante..


---------------------
Sub AjouterUneLigneDeCode()

Dim Comp As Object, NoLigne As Integer, Ajout As String

Ajout = "Const toto =" & Application.InputBox("Valeur de la constante...", , , , , , , 1)

Set Comp = ThisWorkbook.VBProject.VBComponents("module1").CodeModule

'indique à quelle ligne la procédure "Trouver" débute.
NoLigne = Comp.ProcStartLine("Trouver", vbext_pk_Proc)

'Ajoute à la deuxième ligne le code désiré
Comp.InsertLines NoLigne + 2, Ajout

End Sub
--------------------

Salutations!


"claude" <docl...@worldonline.fr> a écrit dans le message de news: newscache$oidaxg$1f3$1...@news.tiscali.fr...

Denis Michon

unread,
Jun 6, 2002, 3:59:17 PM6/6/02
to
Bonjour Claude,

Pour effacer une ligne de code :

Attention, si dans ton projet VBE, il y a une ligne séparant
chacune des procédures, il est important de te rappeler que
ces procédures débutent le calcul des lignes des procédures
à partir de ces lignes... si la première ligne est vide... cela
n'a pas d'importance... c'est la ligne 1

-----------------
Sub effacerLigneDeCode()

Dim Comp As Object, NoLigne As Integer

Set Comp = ThisWorkbook.VBProject.VBComponents("module1").CodeModule

'indique à quelle ligne la procédure "Denis" débute.


NoLigne = Comp.ProcStartLine("Trouver", vbext_pk_Proc)

'Détruit la ligne de code indiquée
Comp.DeleteLines NoLigne + 2, 1

Set Comp = Nothing
End Sub
------------------------


"claude" <docl...@worldonline.fr> a écrit dans le message de news: newscache$oidaxg$1f3$1...@news.tiscali.fr...

claude

unread,
Jun 7, 2002, 6:57:06 AM6/7/02
to
formidable ce groupe : on a toujours des réponses et le plus souvent trsè
bonnes
merci à tous pour vos précieux conseils: je vais tester
en fait, c'est vrai que c'est plus simple de mettre dans une feuille cachée
(c'est ce que j'avais fait jusqu'ici)
mais c'est pour le fun et puis j'espère ainsi alléger ma feuille qui fait
déjà près d'un Mo, et si je peux supprimer une feuille ...

Au fait à la fin, je sais que c'est surtout les userform qui augmentent la
taille
mais pour le reste : le nombre de lign"es de codes
la difficulté des opérations demandées (boucles, fonctions, ...)
là je patauge
merci encore
:-))
claude

0 new messages