Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Copier contenu d'un bloc note dans le code d'une feuille

libellule85

XLDnaute Accro
Bonjour les pros d'Excel,

J'aurais besoin de vos lumières. En effet, j'aimerais savoir comment copier automatiquement ou non le contenu d'un bloc note (contenant une macro) dans le code d'une feuille excel.
D'avance merci pour votre aide.
 

job75

XLDnaute Barbatruc
Bonjour libellule85,

Voyez les fichiers zippés joints.

Le fichier texte Module3.txt contient ce texte :
Code:
Option Explicit

Sub CopierModule()
Dim chemin$
chemin = ThisWorkbook.Path & "\"
On Error Resume Next
With ActiveWorkbook.VBProject
    .VBComponents.Remove .VBComponents("Module3") 'RAZ
    .VBComponents.Import(chemin & "Module3.txt").Name = "Module3"
End With
End Sub

Sub Message()
MsgBox "Bonjour le forum"
End Sub
La macro CopierModule se trouve déjà dans le fichier Excel, lancez-la, le fichier Excel actif peut-être quelconque.

Nota : pour que l'accès au VBAProject soit possible par macro il faut avoir coché l'option :

- sur Excel 2003 et versions antérieures Faire confiance au projet Visual Basic (menu Outils-Macro-Sécurité-Editeurs approuvés)

- sur Excel 2007 et versions suivantes Accès approuvé au modèle d'objet du projet VBA (onglet Fichier-Options-Centre de gestion de la confidentialité-Paramètres...-Paramètres des macros).

A+
 

Pièces jointes

  • CopierModule(1).zip
    16.6 KB · Affichages: 33
Dernière édition:

job75

XLDnaute Barbatruc
Re,

La macro précédente copie le bloc-notes dans un module standard.

Maintenant pour le copier comme demandé dans le code d'une feuille utiliser :
Code:
Sub CopierCode()
Dim fichier$, t
fichier = ThisWorkbook.Path & "\Code.txt" 'à adapter
Application.ScreenUpdating = False
With Workbooks.Open(fichier).Sheets(1)
    t = Application.Transpose(.UsedRange) 'maximum 65536 lignes
    If IsArray(t) Then t = Join(t, vbLf)
    .Parent.Close
End With
With ActiveWorkbook.VBProject.VBComponents("Feuil1").CodeModule
    .DeleteLines 1, .CountOfLines
    .InsertLines 1, t
End With
End Sub
Fichiers joints.

Bonne nuit.
 

Pièces jointes

  • CopierCode(1).zip
    18.1 KB · Affichages: 33

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…