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

Débutant VB

6 réponses
Avatar
yoannsolo
Bonjour,

J'aimerais créer des dossiers dans un répertoire à partir d'une colonne excel qui contient "NOM Prénom" de personnes en utilisant une automatisation.

J'ai essayé ce code dans visual basic, en changeant la destination :

on error resume next
For each c in range("A1:A10")
mkdir "C:MonRepertoire" & c.value
next

mais il y a des messages d'erreur, je ne sais pas comment ça fonctionne. C'est de la brasse coulée lol.

Je suis complètement débutant, j'ai besoin d'aide pour commencer.

En vous remerciant.

Yoann

6 réponses

Avatar
Jacky
Bonjour,

Essaie comme ceci
Le dossier "C:MonRepertoire" doit exister
'-------------
Sub test()
Dim c As Range
For Each c In Range("A1:A10")
'Verifie si le dossier est déjà exitant
If Dir("C:MonRepertoire" & c.Value, 16) = "" Then
'Sinon création du dossier sans oublier les ""
MkDir "C:MonRepertoire" & c.Value
End If
Next
End Sub
'-------------

Salutations
JJ

yoannsolo a exposé le 10/05/2016 :
Bonjour,

J'aimerais créer des dossiers dans un répertoire à partir d'une colonne excel
qui contient "NOM Prénom" de personnes en utilisant une automatisation.

J'ai essayé ce code dans visual basic, en changeant la destination :

on error resume next
For each c in range("A1:A10")
mkdir "C:MonRepertoire" & c.value
next

mais il y a des messages d'erreur, je ne sais pas comment ça fonctionne.
C'est de la brasse coulée lol.

Je suis complètement débutant, j'ai besoin d'aide pour commencer.

En vous remerciant.

Yoann
Avatar
LSteph
Bonjour,

Une façon

Sub CreeMRep()

On Error Resume Next
MkDir "C:monrep"
On Error GoTo 0

ChDir "C:monrep"



For Each c In [A1:A10]
On Error Resume Next
MkDir c
On Error GoTo 0

Next

End Sub

'LSteph


Le mardi 10 mai 2016 11:06:57 UTC+2, yoannsolo a écrit :
Bonjour,

J'aimerais créer des dossiers dans un répertoire à partir d'une col onne excel
qui contient "NOM Prénom" de personnes en utilisant une automatisation.

J'ai essayé ce code dans visual basic, en changeant la destination :

on error resume next
For each c in range("A1:A10")
mkdir "C:MonRepertoire" & c.value
next

mais il y a des messages d'erreur, je ne sais pas comment ça fonctionne . C'est
de la brasse coulée lol.

Je suis complètement débutant, j'ai besoin d'aide pour commencer.

En vous remerciant.

Yoann
Avatar
DanielCo
Bonjour,
Il faut mettre : "C:MonRepertoire" en supposant que "MonRepertoire"
est le nom du dossier et non celui d'une variable.
Cordialement.
Daniel

Bonjour,

J'aimerais créer des dossiers dans un répertoire à partir d'une
colonne excel qui contient "NOM Prénom" de personnes en utilisant une
automatisation.

J'ai essayé ce code dans visual basic, en changeant la destination :

on error resume next
For each c in range("A1:A10")
mkdir "C:MonRepertoire" & c.value
next

mais il y a des messages d'erreur, je ne sais pas comment ça
fonctionne. C'est de la brasse coulée lol.

Je suis complètement débutant, j'ai besoin d'aide pour commencer.

En vous remerciant.

Yoann
Avatar
LSteph
...explication

Sub CreeMRep()
'on crée d'abord le répertoire parent au cas où
On Error Resume Next 'on saute si ereur
MkDir "C:monrep" 'soit le répertoire existe déjà soit on le crée
On Error GoTo 0 'on rétablit la gestio des erreurs

ChDir "C:monrep" 'on est pas obligé mais je préfère
'me positionner dans ce répertoire avant de créer les sous rep



For Each c In [A1:A10] 'on boucle les cellules
On Error Resume Next 'à nouveau j'évite l'erreur si le répertoire ex istait
MkDir c 'sinon je crée
On Error GoTo 0 'je rétablit la gestion des erreurs

Next 'suivant

End Sub




Le mardi 10 mai 2016 11:43:45 UTC+2, LSteph a écrit :
Bonjour,

Une façon

Sub CreeMRep()

On Error Resume Next
MkDir "C:monrep"
On Error GoTo 0

ChDir "C:monrep"



For Each c In [A1:A10]
On Error Resume Next
MkDir c
On Error GoTo 0

Next

End Sub

'LSteph


Le mardi 10 mai 2016 11:06:57 UTC+2, yoannsolo a écrit :
> Bonjour,
>
> J'aimerais créer des dossiers dans un répertoire à partir d'une c olonne excel
> qui contient "NOM Prénom" de personnes en utilisant une automatisatio n.
>
> J'ai essayé ce code dans visual basic, en changeant la destination :
>
> on error resume next
> For each c in range("A1:A10")
> mkdir "C:MonRepertoire" & c.value
> next
>
> mais il y a des messages d'erreur, je ne sais pas comment ça fonction ne. C'est
> de la brasse coulée lol.
>
> Je suis complètement débutant, j'ai besoin d'aide pour commencer.
>
> En vous remerciant.
>
> Yoann
Avatar
MichD
Bonjour,

Essaie comme ceci. Prends le temps de lire la procédure
avant de l'exécuter et adapte la.


'-----------------------------------------------
Sub test()
Dim Chemin As String, Commande As String
Dim Répertoire As String
Dim Rg As Range, C As Range

'Le répertoire dans lequel tu veux créer des
'sous-répertoires à adapter selon tes besoin.
'Si ce chemin n'existe pas, la procédure va le créer
Répertoire = "c:UsersMichDDocumentsExcel"

'Définir la plage de cellules de la feuille de
'calcul où sont tes noms de répertoire

With Worksheets("Feuil1") 'Nom de l'onglet feuille à adapter
Set Rg = .Range("A2:A" & .Range("A" & .Rows.Count).End(xlUp).Row)
End With

'S'assurer que tu es sur le bon lecteur
ChDrive Left(Répertoire, 1)

'Le nom d'un répertoire ne peut pas contenir ces symboles
' / > < | " ? *
'Une boucle sur toutes les cellules de la plage
'Cette façon de procédure permet de créer un répertoire et un
sous-répertoire
'avec d'une seule ligne de commande.
'Assure-toi que tu n'as pas de doublons dans la liste de tes noms.

For Each C In Rg
Commande = Environ("comspec") & " /c mkdir " & Répertoire & C.Value
Shell Commande, 0
Next

End Sub

'-----------------------------------------------

MichD
Avatar
MichD
En supplément,

La procédure proposée ne génère aucune erreur si le répertoire à créer
existe déjà. La procédure ne créera rien si le chemin existe déjà ni
n'effacera aucun fichier que ce répertoire pourrait contenir.

MichD