Bonjour à l'aimable communauté

Je travaille sur Excel 2019
Je viens de créer une boite de dialogue dont les fonctionnalités sont les suivantes:
1- Rechercher un fichier sur le disque
2- Le sauvegarder dans un répertoire éphémère crée avec la racine D:\AFC_FMR_ + un nom de dossier saisi dans la textbox "Nom à donner..." (exemple D:\AFC_FMR_MonAnalyse)
3- Ouvrir ce nouveau fichier, trier ses lignes sur la premiere colonne (Code reference = les 3 premières digits de la valeur de la cellule)
4- Sélectionner la ligne titre + les lignes dont le code reference (3 premiers digit) correspond à celui de l'AL sélectionnée
5- Créer un fichier cible sous le répertoire éphémère dans lequel sont recopiées les lignes extraites pour le code AL demandé
6- Sauvegarder dans le répertoire éphémère le fichier cible sous le nom D:\AFC_FMR_Nom à donner_Code 3digit (exemple D:\AFC_FMR_MonAnalyse_103)

Je suis un peu honteux car il doit s'agir d'une erreur de débutant sur les déclarations. Je donne ma langue au chat pour pouvoir avancer.
Merci par avance pour le temps que vous aurez bien voulu consacrer à cette lecture et pour vos recommandations à venir
Bien cordialement
Ozabois


La macro fonctionne très bien jusqu'à l'étape 5. Mon problème se révèle à l'étape 6 avec une Erreur d'exécution 1004 au niveau de la dernière instruction :
ActiveWorkbook.SaveAs Filename:=sDossier & " \ " & NomEnquete & "-" & AL & ".xlsx"

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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
 
 
Option Explicit
Private Sub Workbook_Open()        ' Dans This Workbook'
    UserForm1.Show
End Sub
 
 
Sub Parcourir()
 
 
    'selectionner une fichier à partir de l'explorateur de fichier
    Dim chemin As FileDialog
    Set chemin = Application.FileDialog(msoFileDialogFilePicker)
    chemin.AllowMultiSelect = False 'selection d'un seul fichier à la fois
    chemin.Title = "Sélectionnez votre fichier data"
    chemin.Filters.Clear
    chemin.Show
    UserForm1.TextBox1.Value = chemin.SelectedItems(1)
 
End Sub
 
 
 
Sub Process_Extract()
    Call CreationDossier    ' Création dossier et place une copie du fichier après l'avoir renommée
End Sub
 
 
Sub CreationDossier()   ' Création dossier et place une copie du fichier après l'avoir renommée
Dim sDossier As String
Dim sChaine As String
Dim NomEnquete As String
Dim NbL As Variant
Dim AL As Variant
Dim PL As Variant  ' Premmière Ligne de la tranche recherchée AL
Dim DL As Variant  ' Dernière Ligne de la tranche recherchée AL
Dim CodeAL As Variant  ' Code AL 3 digit
Dim CodeALP As Variant  ' Code AL 3 digit de l'enregistrement précédent
Dim Contenu As Variant ' Contenu de la cellule
Dim L As Variant ' Contenu de la cellule
Dim NomExtractAL As Workbooks  ' Nom de u fichier extract / AL
 
 
    ' Crée le dossier ephemère
    NomEnquete = UserForm1.TextBox5.Value
    sDossier = "D:\AFC_FMR_" & NomEnquete
    sChaine = Environ("comspec") & " /c mkdir " & sDossier
    Shell sChaine, 0
 
 
    ' Duplique le fichier d'une autre directory en changeant le nom
    Dim FichierOriginal
    Dim FichierCopie
    MkDir sDossier
 
 
    FichierOriginal = UserForm1.TextBox1.Value
    FichierCopie = sDossier & "\" & NomEnquete & ".xlsx"
 
    FileCopy FichierOriginal, FichierCopie
 
 
    Workbooks.Open (FichierCopie)
 
    ' Trie la table
    Range("A1").Select
    Selection.CurrentRegion.Select
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add2 Key:=Range("A2:A18") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Feuil1").Sort
        .SetRange Range("A1:E18")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
 
    ' Recherche la tranche à extraire
    NbL = Cells(Rows.Count, 1).End(xlUp).Row
    AL = UserForm1.TextBox4.Value
    For L = 2 To NbL
        CodeAL = Left(Cells(L, 1).Value, 3)         ' Code AL sur la ligne
        CodeALP = Left(Cells(L - 1, 1).Value, 3)    ' Code AL de l'enregistrement précédent
 
        Select Case CodeAL
            Case Is = AL
                 If CodeALP <> AL Then PL = L
            Case Else
                If CodeALP = AL Then DL = L - 1
        End Select
    Next L
 
    Range("1:1," & PL & ":" & DL).Select
    Selection.Copy
    Workbooks.Add
    ActiveSheet.Paste Destination:=Range("A1")
    ActiveWorkbook.SaveAs Filename:=sDossier & " \ " & NomEnquete & "-" & AL & ".xlsx"
 
 
 
End Sub