Bonsoir,
J'ai créé un fichier qui génère plusieurs feuilles, et dans ces feuilles que je veux copier une procédure en particulier.
Donc pour cela j'ai mis dans ThisWorkbook la procédure suivante :
Mon problème est que mon application plante sur la ligne :
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 Private Sub Workbook_NewSheet(ByVal Sh As Object) Dim code As String Dim NextLine As String Dim NewSheet As Worksheet Set NewSheet = Sheets(ActiveSheet.Name) 'Imputation de la procédure dans une variable code = "Private Sub Worksheet_Change(ByVal Target As Range)" & vbCrLf code = code & "'Déclarations des variables" & vbCrLf code = code & "Dim strValeur As String" & vbCrLf code = code & "Dim varColor As Variant" & vbCrLf code = code & "" & vbCrLf code = code & "'Récupération de la valeur" & vbCrLf code = code & "strValeur = Cells(Target.Row, Target.Column).Value" & vbCrLf code = code & "" & vbCrLf code = code & "'Si la valeur n'est pas null" & vbCrLf code = code & "If strValeur <> """" and blnCreation = False Then" & vbCrLf code = code & "" & vbCrLf code = code & " 'Centrage de la valeur" & vbCrLf code = code & " With Selection" & vbCrLf code = code & " .HorizontalAlignment = xlCenter" & vbCrLf code = code & " .VerticalAlignment = xlCenter" & vbCrLf code = code & " .WrapText = False" & vbCrLf code = code & " .Orientation = 0" & vbCrLf code = code & " .AddIndent = False" & vbCrLf code = code & " .IndentLevel = 0" & vbCrLf code = code & " .ShrinkToFit = False" & vbCrLf code = code & "End Sub" With ThisWorkbook.VBProject.VBComponents(NewSheet.CodeName).CodeModule NextLine = .CountOfLines + 1 .InsertLines NextLine, code End With End Sub
Auriez-vous une idée pour résoudre cela ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ThisWorkbook.VBProject.VBComponents(NewSheet.CodeName).CodeModule
D'avance merci
Nefertari
Partager