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

Résolu
topace18 Messages postés 27 Statut Membre -  
Krysstof Messages postés 1659 Statut Membre -
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

  1. Krysstof Messages postés 1659 Statut Membre 295
     
    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
  2. topace18 Messages postés 27 Statut Membre
     
    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
    1. Krysstof Messages postés 1659 Statut Membre 295
       
      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
    2. Krysstof Messages postés 1659 Statut Membre 295
       
      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
  3. topace18 Messages postés 27 Statut Membre
     
    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
    1. Krysstof Messages postés 1659 Statut Membre 295
       
      ah ben ca tu peux pas faire autrement !!!
      0