Bug aléatoire sur MkDir(Dossier)

Bonjour,

J'ai une macro pour la création des dossier et sous dossiers.

Ce n'est pas systématique mais, pour certains dossier cela plante toujours à la même ligne, lors de la creation du premier sous dossier "1- Mail initial".

Ci dessous le code :

Sub Créer_Dossier()

Dim Ref_NCC, ligne, client, Date_NCC, Annee_NCC, Nom_Feuille, ClasseurSource, NCC As String
Dim dossier As String
Dim DossierNCC As String

    Application.Workbooks("NCC-LP V01.xlsm").Activate

    Sheets("REC-Info").Activate
    ligne = ActiveCell.Row 'numéro de la ligne
    NCC = Range("C" & ligne)
    Date_NCC = Range("F" & ligne)
    Ref_NCC = Left(NCC, 3) & Right(NCC, 3)
    Annee_NCC = Year(Range("F" & ligne))
    client = Range("G" & ligne)
    ClasseurSource = ActiveWorkbook.Name

    SousRep = AnneeNCC & "\" & Ref_NCC & "_" & client
    chemin = "C:\Users\" & Environ("username") & "\ArcelorMittal\AM Revigny - Quality Dev - Documents\Reclamations\NCClients"
    dossierAn = chemin & "\" & Annee_NCC
    DossierNCC = dossierAn & "\" & Ref_NCC & "_" & client

'creation des dossiers

' Verification de l'esxistence du dossier année
    dossier = dossierAn
    If Not Exist_Rep(dossier) Then MkDir (dossier)

' verification de l'existence des sous dossiers et création
        dossier = DossierNCC
    If Not Exist_Rep(dossier) Then MkDir (dossier)
        dossier = DossierNCC & "\1-Mail initial"
    If Not Exist_Rep(dossier) Then MkDir (dossier)
        dossier = DossierNCC & "\2-Echanges discussions"
    If Not Exist_Rep(dossier) Then MkDir (dossier)
        dossier = DossierNCC & "\3-Reponse"
    If Not Exist_Rep(dossier) Then MkDir (dossier)
        dossier = DossierNCC & "\4-Actions et Plan actions"
    If Not Exist_Rep(dossier) Then MkDir (dossier)

    MsgBox ("Les dossiers ont été créés")
    Call Creer_Dossier_Archive_Outlook

End Sub
Function Exist_Rep(Rep As String) As Boolean
    On Error Resume Next
    Exist_Rep = GetAttr(Rep) And vbDirectory
'    Exist_Rep = Dir(Rep, vbDirectory) <> ""
End Function

Je sèche, je ne comprend pas pourquoi cette ligne et pas une autre ?

Bonjour Loubarge

Essayez

Mkdir(Chr(34) & dossier & Chr(34))

Bonjour,

Je pense compris pourquoi c'était aléatoire, il y avait un espace " " à la fin du nom du client Range("G" & ligne).

La création du dossier ce fait bien, mais quand on veut atteindre les sous dossier cet espace est de trop.

Il faut que je trouve comment verifier la presence d'un espace.

J'ai ajouté un peu de code avant le creation des dossier et cela semble être OK.

DEL_Space:
    If Right(client, 1) = " " Then
        client = Left(client, Len(client) - 1)
        Range("G" & ligne).Value = client
        GoTo DEL_Space:
    Else
    End If

Désolé de vous avoir dérangé pour rien !

Bonjour,

Juste pour info il existe une fonction VBA incluse pour retirer le ou les eventuels espaces en début/fin de chaine :

Fonctions LTrim, RTrim et Trim (Visual Basic pour Applications) | Microsoft Learn

Bonjour,
Pour supprimer tous les espaces indésirables, avant, après, dedans, Il vaut mieux utiliser la fonction Replace qui ne nécessite qu'une seule passe, ce qui donne :

Range("G" & ligne).Value = Replace(Client," ","")
Rechercher des sujets similaires à "bug aleatoire mkdir dossier"