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

Résolu/Fermé
topace18 Messages postés 25 Date d'inscription dimanche 1 juin 2008 Statut Membre Dernière intervention 3 janvier 2011 - 6 août 2010 à 11:48
Krysstof Messages postés 1483 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 23 août 2010 - 6 août 2010 à 12:22
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
A voir également:

3 réponses

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

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

reteste avec cette case cochée.
1
topace18 Messages postés 25 Date d'inscription dimanche 1 juin 2008 Statut Membre Dernière intervention 3 janvier 2011
6 août 2010 à 12:07
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 ^^
0
Krysstof Messages postés 1483 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 23 août 2010 294
6 août 2010 à 12:11
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
0
Krysstof Messages postés 1483 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 23 août 2010 294
6 août 2010 à 12:15
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
0
topace18 Messages postés 25 Date d'inscription dimanche 1 juin 2008 Statut Membre Dernière intervention 3 janvier 2011
6 août 2010 à 12:19
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
0
Krysstof Messages postés 1483 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 23 août 2010 294
6 août 2010 à 12:22
ah ben ca tu peux pas faire autrement !!!
0