[VBA XL] Insérer du code dans un classeur

Résolu/Fermé
Messages postés
25
Date d'inscription
dimanche 1 juin 2008
Statut
Membre
Dernière intervention
3 janvier 2011
-
Messages postés
1483
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
23 août 2010
-
Bonjour,

J'ai un bout de code VBA que je dois appliquer dans la feuille "ThisWorkbook" de 352 classeurs Excel. Plutôt que de faire 352 copier/coller à la main, je cherche un moyen de le faire par VBA. J'ai trouvé quelques bouts de codes sur internet mais je n'arrive pas à les adapter à mon besoin, ne serait-ce que pour un seul classeur de test.

Actuellement j'ai ça :

Sub MAJThisWorkbook()
Dim S As String, Wbk As Workbook
  
  With ActiveWorkbook.VBProject.VBComponents("Module1").CodeModule
    S = .Lines(1, .CountOfLines)
  End With
  
  Set Wbk = Workbooks("C:\Documents and Settings\user\Bureau\test.xls")
  With Wbk.VBProject.VBComponents("ThisWorkbook").CodeModule
    .AddFromString S
  End With

End Sub


Ca plante à la ligne
With ActiveWorkbook.VBProject.VBComponents("Module1").CodeModule

"La méthode 'VBProject' de l'objet '_Workbook' a échoué"

Voilà, merci d'avance si vous pouvez m'aider !

Cdlt

3 réponses

Messages postés
1483
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
23 août 2010
289
sur office ??==>2003 :

menu outils, macro, sécurité, onglet "Source Fiable", cocher faire confiance au projet visual basic

reteste avec cette case cochée.
Messages postés
25
Date d'inscription
dimanche 1 juin 2008
Statut
Membre
Dernière intervention
3 janvier 2011

Oui Office 2003 pardon.
J'ai coché maintenant ça plante un peu plus bas y'a un progrès :D

Set Wbk = Workbooks("C:\Documents and Settings\user\Bureau\test.xls")

L'indice n'appartient pas à la sélection.

Merci pour l'aide ^^
Messages postés
1483
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
23 août 2010
289
normal, dans la macro que tu donne, il n'y a pas de "workbooks.open"

la ligne Set Wbk = Workbooks("C:\Documents and Settings\user\Bureau\test.xls")
implique que le fichier soit déja ouvert, faut que tu adapte ta macro
Messages postés
1483
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
23 août 2010
289
oué, en fait fait juste ca

Set Wbk = Workbooks.Open("C:\Documents and Settings\user\Bureau\test.xls")

et rajoute
wbk.save
wbk.close
a la fin, pour fermer le fichier
Messages postés
25
Date d'inscription
dimanche 1 juin 2008
Statut
Membre
Dernière intervention
3 janvier 2011

Effectivement avec :
Workbooks.Open ("C:\Documents and Settings\user\Bureau\test.xls")
Set Wbk = Workbooks("test.xls")


Ca marche nettement mieux :D
J'espérais ne pas être obligé d'ouvrir les fichiers un par un mais bon tant pis ça ira très bien comme ça.

Merci beaucoup ! :D
Messages postés
1483
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
23 août 2010
289
ah ben ca tu peux pas faire autrement !!!