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-----
>.
>
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...
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...
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...
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