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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| Sub Ajout_eleves()
Dim S As Worksheet
Dim nb_eleves As Integer
Dim liste_eleves() As String
Dim i As Integer
'---
nb_eleves = WorksheetFunction.CountA(Range("A:A")) - 1
ReDim liste_eleves(nb_eleves, 3)
'--- Les donnée ---
For i = 1 To nb_eleves
liste_eleves(i, 1) = Cells(i + 1, 1)
liste_eleves(i, 2) = Cells(i + 1, 2)
liste_eleves(i, 3) = liste_eleves(i, 1) & " " & liste_eleves(i, 2)
Next i
'--- Création des feuilles ---
For i = 1 To nb_eleves
Set S = Sheets.Add(, ActiveSheet)
S.Name = liste_eleves(i, 3)
S.[B1] = liste_eleves(i, 3)
Call EcrireCode(S) '///ajout
Next i
End Sub
Sub EcrireCode(S As Worksheet) ' Sub et non Function car il n'y a pas de valeur de retour
Dim S2 As Worksheet
Dim guil$
Dim A$
Dim LeCodeName$
'--- Chaîne du code ---
guil = """"
A$ = A$ & vbLf & "Sub Worksheet_Change(ByVal Target As Range)"
A$ = A$ & vbLf & "Select Case Target"
A$ = A$ & vbLf & "Case Is = " & guil & "0" & guil
A$ = A$ & vbLf & "Target.Interior.Color = RGB(245, 245, 220)"
A$ = A$ & vbLf & "Case Is = " & guil & "E" & guil
A$ = A$ & vbLf & "Target.Interior.Color = RGB(0, 128, 224)"
A$ = A$ & vbLf & "Case Is = " & guil & "A" & guil
A$ = A$ & vbLf & "Target.Interior.Color = RGB(0, 224, 0)"
A$ = A$ & vbLf & "Case Is = " & guil & "VA" & guil
A$ = A$ & vbLf & "Target.Interior.Color = RGB(255, 160, 0)"
A$ = A$ & vbLf & "Case Is = " & guil & "NA" & guil
A$ = A$ & vbLf & "Target.Interior.Color = RGB(255, 0, 0)"
A$ = A$ & vbLf & "End Select"
A$ = A$ & vbLf & "Target.Borders.Weight = 2"
A$ = A$ & vbLf & "Target.Font.Bold = True"
A$ = A$ & vbLf & "Target.Font.Size = 12"
A$ = A$ & vbLf & "End sub"
'--- Quel est le CodeName ---
For Each S2 In ThisWorkbook.Worksheets
If S.Name = S2.Name Then
LeCodeName$ = S2.CodeName
Exit For
End If
Next S2
'--- Ajout du code ---
ThisWorkbook.VBProject.VBComponents(LeCodeName$).CodeModule.AddFromString A$
End Sub |
Partager