Bonjour à tous,

J'ai mis en place les codes suivants que je recopie dans 250 feuilles, c'est un travail fastidieux. Je souhaiterai mettre en place un module avec ces codes et ainsi rendre moi lourde la saisie dans toutes les feuilles. Comment puis-je procéder ? Pouvez-vous m'apporter votre aide s'il vous plait ? J'ai bien essayé de copier ces codes dans un module, mais cela ne fonctionne pas. Je dois certainement oublier de faire quelque chose mais je n'arrive pas à trouver.
Je vous en remercie par avance

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
Sub affiche()
    Dim FNew As Worksheet, Wb As Workbook
    Set Wb = ThisWorkbook
        For Each FNew In Wb.Worksheets
            FNew.Visible = xlSheetVisible
        Next FNew
        Set FNew = Nothing: Set Wb = Nothing
End Sub
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
36
37
38
39
40
41
42
43
44
45
46
47
48
 
 
'En cliquant dans une cellule de la colonne A, si pas de saisie de nom dans la colonne C alors message d'avertissement. Sinon, ouverture d'un fichier "FL" avec le numéro de la ligne.
 
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'on error GoTo fin
 
If Not Intersect([A12:A39], Target) Is Nothing Then
    Cancel = True
        If Target(, 2).Value = "" Then MsgBox "Merci de saisir votre NOM dans la cellule" & " " & Target(, 2).Address(0, 0): Exit Sub
    Dim FNew As Worksheet, Wb As Workbook, Sh As Worksheet
    Dim Cible As String
    Dim NumLig As Variant
 
    NumLig = ActiveSheet.Range("D5")
    Cible = ("FL" & NumLig)
    Set Wb = ThisWorkbook
 
    On Error Resume Next
        Set FNew = Wb.Worksheets(Cible)
    On Error GoTo Fin
        If Not FNew Is Nothing Then
        FNew.Activate
        FNew.Visible = True
        Else
            GoTo Fin
        End If
 
        'on masque les feuilles inutiles
        For Each Sh In Wb.Worksheets
            If FNew.name <> Cible Then
            If FNew.name <> ("L" & NumLig) Then
                FNew.Visible = xlSheetVeryHidden
            End If
        End If
        Next Sh
 
        FNew.Cells((Target.Value - 1) * 41 + 2, 3).Select
        'Application.GoTo reference:=
        End If
 
        FNew.Rows("1:1185").Hidden = True
            FNew.Range(FNew.Cells((Target.Value - 1) * 41 + 2, 3), FNew.Cells((Target.Value - 1) * 41 + 1 + 38, 3)).EntireRow.Hidden = False
                FNew.Cells((Target.Value - 1) * 41 + 2, 3).Select
                Application.Goto FNew.Cells((Target.Value - 1) * 41 + 2, 3), True
Fin:
        Set FNew = Nothing: Set Wb = Nothing: Set Sh = Nothing
End Sub
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
 
' Si dans la colonne C on tape autre chose que du numérique, message d'avertissement, retour en arrière et effacement de la saisie dans la cellule.
 
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Range("C12:C39"), Target) Is Nothing And Target.Count = 1 Then
        If Not IsNumeric(Target) Then
            MsgBox "Merci de saisir un montant !!!"
            With Application
            .EnableEvents = False
            .Undo
            .EnableEvents = True
            End With
        End If
    End If
End Sub