Vous pouvez mettre votre fichier où bon vous semble. Ne sachant pas où les dossiers doivent être créés par rapport à ce fichier, j'ai fait en sorte que les sous-dossiers soient créés dans le même dossier. Mais si vous savez exactement où il faut les créer, donnez-nous en le chemin absolu.
Dans mon code, on ne pointe jamais sur la colonne A, c'est votre formule qui crée l'événement.
Le code expliqué :
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim col As Integer, lign As Long ' n° de colonne et de ligne
Dim fichier As String, chemin As String
col = Target.Column ' le contenu d'une cellule de la feuille a changé
If col < 2 Or col > 5 Then Exit Sub ' Si l'utilisateur a modifié une cellule de la colonne 1 ou > 5 on quitte (NOP)
' Le changement s'est produit dans la colonne 2, 3, 4 ou 5
chemin = ThisWorkbook.Path & "\" ' On cherche le chemin du dossier où se trouve le fichier sdos-test.xlsm
lign = Target.Row ' Le changement a eu lieu sur la ligne "lign"
fichier = "" ' Par défaut, la variable "fichier" est vide, mais comme elle peut être publique, on se méfie.
If Cells(lign, 1) <> "" Then fichier = Cells(lign, 1) ' Si la cellule de la colonne 1 a changé 2 possibilités :
' a) l'utilisateur à vidé une cellule de la colonne 2, 3, 4 ou 5 et la cellule de la colonne 1 s'est vidée : on ne fait rien.
' b) l'utilisateur a rempli la dernière cellule vide de la colonne 2, 3, 4 ou 5), la cellule de la colonne 1 a maintenant un contenu grâce à votre formule, on l'affecte à la variable "fichier"
If fichier <> "" Then MkDir chemin & fichier ' La variable dossier ayant un contenu, on crée le sous-dossier dans le dossier maître.
End Sub