Création de Dossier à partir d'une liste Excel
Bonjour,
A partir d'un tableau Excel (extrait simplifié en PJ avec le code VBA), je veux créer 1 dossier par ligne dans un dossier parent identifié dans le code VBA.
Quand j'active la macro, j'ai 2 soucis:
- Seuls 88 dossiers sur 241 sont crées (VBA s'arrête au site "LEVANGER" que l'on retrouve en ligne 125 du tableau)
- J'ai un débugage que je ne comprends pas (cf capture d'écran) sur MkDir (CheminDossier)
Question bonus :
- J'aimerais que la macro s'applique à chaque fois qu'il y a une nouvelle ligne. Comment faire?
- J'aimerais qu'il y ait un rangement conditionnel sur le critère "OCCUPANCY" en colonne C. Si le site est "Sold", alors, j'aimerais qu'il rentre dans un dossier "Sold"
Merci par avance pour vos réponses.
Bonjour QuentinS
Que le code s'arrêt à la ligne 125 est normal
A la ligne 126, voici ce que vous avez comme valeur "LILYDALE/TOTTENHAM"
Donc le code va vouloir créer le sous dossier "TOTTENHAM" dans le dossier "LILYDALE" qui n'existe pas
Il faut impérativement remplacer "/" par "_"
En ce qui concerne "Sold" il faut faire un test et au cas ou, l'ajouter au dossier
Sub CréerDossier()
'Indiquer les variables qui permettent de savoir où aller chercher la liste des dossiers à créer (lstr = last row)
Dim ws_data As Worksheet
Dim lstrw As String
'Indiquer les vairables qui permettent de savoir où ranger les dossiers à créer
Dim CheminDossier As String
Dim NomDossier As String
'Identifier la feuille
Set ws_data = Worksheets(1)
'Identifier la dernière line du tableau
lstrw = ws_data.Cells(Rows.Count, 1).End(xlUp).Row
'Boucle sur les données identifiées
For i = 4 To lstrw
'Indiquer où aller chercher le nom du dossier. Ici le 2 correspond au numéro de colonne "Site Cleaned"
NomDossier = ws_data.Cells(i, 2)
NomDossier = Replace(NomDossier, "/", "_")
' Vérifier si OCCUPANCY = Sold
If ws_data.Cells(i, 3) = "Sold" Then
' Dossier Sold
NomDossier = NomDossier & "\Sold"
End If
CheminDossier = "C:\Users\qseite\OneDrive - Nexans\Documents\Real Estate - Documents\Sites\TEST VBA\" & NomDossier & "\"
' Vérifier si le dossier n'existe pas
If Dir(CheminDossier, vbDirectory) = vbNullString Then
' Alors créer le dossier
MkDir (CheminDossier)
End If
Next
End SubA tester
A+
Merci Bruno. Je n'avais pas du tout pensé à ce "\". Il faut avoir l'oeil à partout.
Merci pour le complément de code pour le rangement conditionnel ;)
Je clos le sujet