Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Creation d'un repertoire

4 réponses
Avatar
AF86
Bonjour à tous, et merci d'avance pour vos réponses...

Bon alors voilà, je dois faire en sorte avec un macro de créer un répertoire
a l'aide de renseignements situés dans une feuille excel.

J'arrive à créer le répertoire avec un nom fixe grâce à cette macro :
Sub creation_rep_2()
Dim fso ' As Scripting.FileSystemObject
Dim fd ' As Scripting.Folder
Dim sFolderName ' As String
' Initialisation du nom du dossier
sFolderName = "J:\DOSSIER A\Dossier 1\NomPrénomAdresseCPVille"
Set fso = CreateObject("Scripting.FileSystemObject")
' Vérifier que le dossier à créer n'existe pas
If Not fso.FolderExists(sFolderName) Then
' Créer le dossier.
Set fd = fso.CreateFolder(sFolderName)
MsgBox "Le dossier " & sFolderName & " a été créé"
Else
MsgBox "Le dossier " & sFolderName & " existe déjà!"
End If
Shell "explorer.exe J:\DOSSIER A\Dossier 1", vbNormalFocus
End Sub

Bon jusqu'ici ok mais là où je rame, c'est pour prendre des infos dans une
feuille excel et faire en sorte de les intégrer directement dans le nom du
dossier lors de sa création...

Dans cette feuille excel, se trouve un tableau avec le nom prenom des
personnes avec leur adresse CP et ville.

Comment faire en sorte alors pour utiliser ces infos et créer autant de
dossier que de ligne présente (en règle générale, 15 lignes seront utilisées
!) ?

Merci d'avance pour vos réponses ;-)

4 réponses

Avatar
JB
Bonjour,

For Each c In [A1:A3]
On Error Resume Next
MkDir "c:" & c
If Err > 0 Then
MsgBox c & " existe"
End If
Next

JB
http://boisgontierjacques.free.fr


On 11 mai, 16:37, AF86 wrote:
Bonjour à tous, et merci d'avance pour vos réponses...

Bon alors voilà, je dois faire en sorte avec un macro de créer un r épertoire
a l'aide de renseignements situés dans une feuille excel.

J'arrive à créer le répertoire avec un nom fixe grâce à cette m acro :
Sub creation_rep_2()
    Dim fso ' As Scripting.FileSystemObject
    Dim fd ' As Scripting.Folder
    Dim sFolderName ' As String
    ' Initialisation du nom du dossier
    sFolderName = "J:DOSSIER ADossier 1NomPrénomAdresseCPVille "
    Set fso = CreateObject("Scripting.FileSystemObject")
    ' Vérifier que le dossier à créer n'existe pas
    If Not fso.FolderExists(sFolderName) Then
    ' Créer le dossier.
    Set fd = fso.CreateFolder(sFolderName)
    MsgBox "Le dossier " & sFolderName & " a été créé"
    Else
    MsgBox "Le dossier " & sFolderName & " existe déjà!"
    End If
    Shell "explorer.exe J:DOSSIER ADossier 1", vbNormalFocus
End Sub

Bon jusqu'ici ok mais là où je rame, c'est pour prendre des infos dan s une
feuille excel et faire en sorte de les intégrer directement dans le nom du
dossier lors de sa création...

Dans cette feuille excel, se trouve un tableau avec le nom prenom des
personnes avec leur adresse CP et ville.

Comment faire en sorte alors pour utiliser ces infos et créer autant de
dossier que de ligne présente (en règle générale, 15 lignes seron t utilisées
!) ?

Merci d'avance pour vos réponses ;-)


Avatar
AF86
Bonjour, et merci pour ta réponse

J'ai été obligé de rajouter une cellule dans mon tableau avec la formule
"concatener" pour que ça marche.

Comme ça, j'ai le Nom-Prénom-Adresse... qui se mettre directement dans le
nom du dossier en prenant en compte plusieurs elements.

De plus, ton code est bien plus court, simple et rapide que le mien !

Je te remercie encore, réponse validée ! ;-)

"JB" a écrit :

Bonjour,

For Each c In [A1:A3]
On Error Resume Next
MkDir "c:" & c
If Err > 0 Then
MsgBox c & " existe"
End If
Next

JB
http://boisgontierjacques.free.fr



Avatar
AF86
Re-bonjour et désolé mais après avoir intégré ton magnifique code dans ma
macro, je me suis aperçu d'un petit problème.

Comme je te l'avais dit, je pense utiliser à chaque fois environ que les 15
premières lignes de mon tableau pour générer les dossiers avec les noms
personnalisés.
Ce que tu ne savait peut être pas, c'est qu'il peut y avoir au lieu des 15
lignes que 3 lignes ou bien 7 ou même dans certains cas 32 lignes qui
serviront à générer ces petits dossiers.

Donc voici ma question : Comment faire comprendre à Excel qu'il faut arrêter
la macro dès qu'il n'y a plus de données dans les lignes (ex : au bout de la
3e ou bien la 7e ou encore à la 32e lignes) ?

Merci d'avance pour ta réponse car si je laisse cela comme ça, la macro
tourne jusqu'à la fin de toutes les lignes spécifiées.

"JB" a écrit :

Bonjour,

For Each c In [A1:A3]
On Error Resume Next
MkDir "c:" & c
If Err > 0 Then
MsgBox c & " existe"
End If
Next

JB
http://boisgontierjacques.free.fr




Avatar
isabelle
bonjour,

sélectionne la plage à traiter avant d'exécuter la macro
et modifie la ligne suivante

For Each c In [A1:A3]

par

For Each c In Selection

isabelle



AF86 a écrit :
Re-bonjour et désolé mais après avoir intégré ton magnifique code dans ma
macro, je me suis aperçu d'un petit problème.

Comme je te l'avais dit, je pense utiliser à chaque fois environ que les 15
premières lignes de mon tableau pour générer les dossiers avec les noms
personnalisés.
Ce que tu ne savait peut être pas, c'est qu'il peut y avoir au lieu des 15
lignes que 3 lignes ou bien 7 ou même dans certains cas 32 lignes qui
serviront à générer ces petits dossiers.

Donc voici ma question : Comment faire comprendre à Excel qu'il faut arrêter
la macro dès qu'il n'y a plus de données dans les lignes (ex : au bout de la
3e ou bien la 7e ou encore à la 32e lignes) ?

Merci d'avance pour ta réponse car si je laisse cela comme ça, la macro
tourne jusqu'à la fin de toutes les lignes spécifiées.

"JB" a écrit :


Bonjour,

For Each c In [A1:A3]
On Error Resume Next
MkDir "c:" & c
If Err > 0 Then
MsgBox c & " existe"
End If
Next

JB
http://boisgontierjacques.free.fr