VBA Excel, Modifier le code d'un fichier Excel fermé
monaldinho
Messages postés74Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention25 octobre 2007
-
3 août 2007 à 11:05
monaldinho
Messages postés74Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention25 octobre 2007
-
3 août 2007 à 17:16
Programmeur du jour, Bonjour!
Après avoir cherché partout si mon probleme avait déjà été renconté, je dois faire appel à vous ( car apparement le sujet n'a pas été abordé!)
My problem:
Je suis sur le code du fichier Excel "classeur1.xls", j'aimerais allé sur le code du fichier excel "classeur2.xls", sans l'ouvrir ( ou si il fo l'ouvrir obligatoiremen ca me derange pa), aller sur le module "M_Declaration" , dans la procédure "Declaration", à la 3em ligne ( la ou je declare le classeur) , et faire ce changement:
j'ai l'instruction suivante:
Set WB = Workbooks("classeur2.xls")
et je veux la changer en
Set WB = Workbooks("Classeur2 " & textbox1 & ".xls")
(avec textbox1, un textbox du classeur1)
Si un génie a une idée... je suis preneur !!!
Merci !
Monaldinho.
faites comme moi, éssayer d'éviter le coté obscur de la force
monaldinho
Messages postés74Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention25 octobre 2007 3 août 2007 à 12:00
Re hello Programmeur du jour !
Soit mon probleme n'est pas resolvable, soit je n'ai pas été clair.
J'espere c'est la deuxieme solution!
Je vais essayer d'etre le plus clair possible, voici mon code avec explication:
' je suis sur le fichier "classeur1.xls"
Private Sub CommandButton1_Click()
Call FileCopy("classeur2.xls", "classeur2" & Me.TextBox1 & ".xls")
'lorsqu'on clik sur le bonton Ok
'on copie un fichier excel "classeur2" sous un autre nom
Dim XlsX As String
XlsX = "Intuitec V7 " & Me.TextBox1 & ".xls"
'j'initialise une variable sous le nom du nouveau fichier excel
workbooks(XlsX).activate
'j'active le classeur sur lequel je desire faire ma modification
...
'je ne sais pas comment pointer sur les modules, sur les procédures, sur les lignes de procédures..
i am bloqued here!
please, give me one solution!
thanks.
Monaldinho.
faites comme moi, éssayer d'éviter le coté obscur de la force
monaldinho
Messages postés74Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention25 octobre 2007 3 août 2007 à 16:13
aaaaah re moi !
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>je met le code tel qu'il est pour le tester et j'ai un message d'erreur !
Ça me met : " la méthode « vbproject » de l’objet _workbook a échoué !!!!!!! "
Il faut une librairie spécial pour utilisé cela ou quoi ?
svp, de l'aideeeeeeee!
Je deviens fou!
Monaldinho.
faites comme moi, éssayer d'éviter le coté obscur de la force
michelxld
Messages postés402Date d'inscriptionvendredi 6 août 2004StatutMembreDernière intervention12 octobre 200832 3 août 2007 à 16:32
bonjour
As tu activé la référence "Microsoft Visual Basic for Applications Extensibility 5.3" ?
Dans l'éditeur de macros (Alt+F11):
Menu Outils
Références
Cochez la ligne "Microsoft Visual Basic for Applications Extensibility 5.3"
Cliquez sur "OK" pour valider.
Assures toi aussi dans le menu Outils/Macros/Sécurité/Onglet "Sources fiables", que les deux options sont cochées.
michel
Vous n’avez pas trouvé la réponse que vous recherchez ?
kalobit
Messages postés169Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention 7 avril 20082 3 août 2007 à 16:40
Salut,
la collection VBProjects appartient à VBE et non à l'objet workbook
pour trouver le bon vbproject, tu dois boucler sur la collection VBprojects de l'objet VBE.
Par exemple :
dim MyWbk as workbook
set MyWbk = workbooks.open("c:\classeur2.xls")
for each VbProj in application.vbe.vbprojects
if vbproj.filename = mywbk.fullname then
'mets ici le code de remplacement de la ligne 3
exit for
end if
next
et voilà, ça devrait rouler.
@++++
[mailto:K@lobit K@lobit] < Ne pas clicker ici
Mon Site < Mais ici
Je cherche des personnes pour développer un site dédié à excel, si vous êtes partant pou
monaldinho
Messages postés74Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention25 octobre 2007 3 août 2007 à 17:16
hello kalobit et michel!!!!
tout d'abord merci bcp de m'aider! c'est trop cool!
j'ai tester vos deux propositions !
michel , avec la librairie "Microsoft Visual Basic for Applications Extensibility 5.3" et en cochant les deux cases pour la fiabilité, je n'ai plus d'erreur sur le Vbobject, par contre j'en ai une sur les deux lignes d'apres...
-->Classeur.VBProject.VBComponents(Module).CodeModule.DeleteLines LiDeb + Ligne, 1
et
-->Classeur.VBProject.VBComponents(Module).CodeModule.InsertLines LiDeb + Ligne, Modif
ca me met comme erreur : "impossible de rentrer en mode arret maintenant"
ce qui est bizarre, c'est que ca fait bien ce que je veux, ca me met une erreur, mais ca execute qd meme!
j'ai mis un "on error resume next" au debut pour que ca ne me met pas de message d'erreur... mais ca ne marche pas! le message apparait qd meme!
kalobit, ta version marche également... jusqu'au code de remplacement ( car c'est le meme code de remplacement) et donc la meme erreur qui apparait...
n'y a t'il pas une instruction plus forte que "on error resume next" et qui passe vraiment ?!
merci de vos reponses!
Monaldinho
faites comme moi, éssayer d'éviter le coté obscur de la force