Bonjour !
Ayant un grand nombre de Workbooks dans lesquels je souhaiterais remplacer leur code par un plus récent, je me suis fait la macro suivante (sous Excel 2000) :
Le souci c'est que lors de la copie ligne par ligne vers "ThisWorkbook" la copie de la 1ère ligne de la 2ème procédure provoque un plantage... Alors que dans n'importe quel module, il n'y a pas d'erreur ! Et le problème est le même en insérant un fichier *.txt !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Sub Remplacer_Procedure() Module = "ThisWorkbook" ' Nom du Module à Remplacer ("ThisWorkbook" ou "Module#") 'Copier dans "Module2" le texte de remplacement For Each WKB In Workbooks If WKB.Name <> "Automatisation.xls" Then 'Supprime le "Module" With Workbooks(WKB.Name).VBProject.VBComponents(Module).CodeModule LigneDebut = .CountOfDeclarationLines LigneFin = .countOfLines If LigneFin <> 0 Then .deleteLines LigneDebut, LigneFin End With 'Remplace Ligne par Ligne "Module" par "Module2" For Ligne = 1 To Workbooks("Automatisation.xls").VBProject.VBComponents("Module2").CodeModule.countOfLines Texte = Workbooks("Automatisation.xls").VBProject.VBComponents("Module2").CodeModule.Lines(Ligne, 1) Workbooks(WKB.Name).VBProject.VBComponents(Module).CodeModule.InsertLines Line:=Ligne, String:=Texte Next End If Next WKB End Sub
Si vous pouviez m'aiguiller !?
Merci...
Partager