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

Créer un sous-répertoire dans le répertoire courant

4 réponses
Avatar
excel95
Bonjour,
Je débute en vba et je souhaite créer un sous dossier (sous répertoire) dans
le répertoire courant du classeur actif
J'arrive à récupérer le répertoire courant avec activeworkbook.path
mais pas à créer un sous-répertoire avec mkdir
Exemple :
mon répertoire actif est d:\outil de gestion (ce chemin peut différer pour
chaque utilisateur, et je dois donc récupérer cette information via vba)
Dans ce dossier, j'ai les fichiers "tableau de bord.xls" et "req.csv"
chaque année je dois faire un archivage des deux fichiers dans un sous
répertoire d:\outil de gestion\archive 2007. Je veux uniquement créer
\archive N , avec N qui dépend de l'année en cours.

Disque (C ou D)
|_Outil de gestion
|_archive 2007
|_archive 2008
|_ etc...

Pouvez vous m'aider? Merci !

4 réponses

Avatar
Mishell
Bonjour.

Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll"
(ByVal lpPath As String) As Long

Sub CreerChemin()

chemin = ActiveWorkbook.Path
If Right(chemin, 1) <> "" Then chemin = chemin & ""

annee = Trim(InputBox("Entrez l'année"))

If annee = "" Then
Exit Sub
End If

chemin = chemin & "archive " & annee & ""

ret = MakeSureDirectoryPathExists(chemin)
If ret <> 0 Then
'Aucun problème
Else
MsgBox "Impossible de créer le chemin" & vbCrLf & chemin
End If

End Sub



Mishell

"excel95" wrote in message
news:
Bonjour,
Je débute en vba et je souhaite créer un sous dossier (sous répertoire)
dans
le répertoire courant du classeur actif
J'arrive à récupérer le répertoire courant avec activeworkbook.path
mais pas à créer un sous-répertoire avec mkdir
Exemple :
mon répertoire actif est d:outil de gestion (ce chemin peut différer pour
chaque utilisateur, et je dois donc récupérer cette information via vba)
Dans ce dossier, j'ai les fichiers "tableau de bord.xls" et "req.csv"
chaque année je dois faire un archivage des deux fichiers dans un sous
répertoire d:outil de gestionarchive 2007. Je veux uniquement créer
archive N , avec N qui dépend de l'année en cours.

Disque (C ou D)
|_Outil de gestion
|_archive 2007
|_archive 2008
|_ etc...

Pouvez vous m'aider? Merci !



Avatar
excel95
Merci beaucoup,

En complément, comment copier les fichiers tableau de bord.xls et req.csv
dans le repertoire ainsi créé ?
et... à quoi correspond lib "imagehlp.dll" ?
(précision, je travail sous excel 97 sr2 (et oui, y'a p'us d'sous))


Bonjour.

Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll"
(ByVal lpPath As String) As Long

Sub CreerChemin()

chemin = ActiveWorkbook.Path
If Right(chemin, 1) <> "" Then chemin = chemin & ""

annee = Trim(InputBox("Entrez l'année"))

If annee = "" Then
Exit Sub
End If

chemin = chemin & "archive " & annee & ""

ret = MakeSureDirectoryPathExists(chemin)
If ret <> 0 Then
'Aucun problème
Else
MsgBox "Impossible de créer le chemin" & vbCrLf & chemin
End If

End Sub



Mishell

"excel95" wrote in message
news:
Bonjour,
Je débute en vba et je souhaite créer un sous dossier (sous répertoire)
dans
le répertoire courant du classeur actif
J'arrive à récupérer le répertoire courant avec activeworkbook.path
mais pas à créer un sous-répertoire avec mkdir
Exemple :
mon répertoire actif est d:outil de gestion (ce chemin peut différer pour
chaque utilisateur, et je dois donc récupérer cette information via vba)
Dans ce dossier, j'ai les fichiers "tableau de bord.xls" et "req.csv"
chaque année je dois faire un archivage des deux fichiers dans un sous
répertoire d:outil de gestionarchive 2007. Je veux uniquement créer
archive N , avec N qui dépend de l'année en cours.

Disque (C ou D)
|_Outil de gestion
|_archive 2007
|_archive 2008
|_ etc...

Pouvez vous m'aider? Merci !








Avatar
Mishell
Imagehlp.dll est une librairie faisant partie de Windows. Cette librairie
contient une fonction qui permet de créer un répertoire et plusieurs
sous-répertoires en une seule commande.

Voici aussi comment créer un répertoire (ou sous-répertoire) avec la
commande MkDir et comment copier un fichier.

Sub CreerCheminEtCopier()

CheminActiveWorkbook = ActiveWorkbook.Path
If Right(CheminActiveWorkbook, 1) <> "" Then CheminActiveWorkbook =
CheminActiveWorkbook & ""

annee = Trim(InputBox("Entrez l'année"))

If annee = "" Then
Exit Sub
End If

CheminSousRepertoire = CheminActiveWorkbook & "archive " & annee & ""
On Error Resume Next
Err.Clear

MkDir CheminSousRepertoire
If Err <> 0 Then
MsgBox Error
End If

fichier = "bord.xls"
Source = CheminActiveWorkbook & fichier
Destination = CheminSousRepertoire & fichier

Err.Clear

FileCopy Source, Destination

If Err <> 0 Then
MsgBox Error
End If

End Sub


Mishell



"excel95" wrote in message
news:
Merci beaucoup,

En complément, comment copier les fichiers tableau de bord.xls et req.csv
dans le repertoire ainsi créé ?
et... à quoi correspond lib "imagehlp.dll" ?
(précision, je travail sous excel 97 sr2 (et oui, y'a p'us d'sous))


Bonjour.

Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll"
(ByVal lpPath As String) As Long

Sub CreerChemin()

chemin = ActiveWorkbook.Path
If Right(chemin, 1) <> "" Then chemin = chemin & ""

annee = Trim(InputBox("Entrez l'année"))

If annee = "" Then
Exit Sub
End If

chemin = chemin & "archive " & annee & ""

ret = MakeSureDirectoryPathExists(chemin)
If ret <> 0 Then
'Aucun problème
Else
MsgBox "Impossible de créer le chemin" & vbCrLf & chemin
End If

End Sub



Mishell

"excel95" wrote in message
news:
Bonjour,
Je débute en vba et je souhaite créer un sous dossier (sous répertoire)
dans
le répertoire courant du classeur actif
J'arrive à récupérer le répertoire courant avec activeworkbook.path
mais pas à créer un sous-répertoire avec mkdir
Exemple :
mon répertoire actif est d:outil de gestion (ce chemin peut différer
pour
chaque utilisateur, et je dois donc récupérer cette information via
vba)
Dans ce dossier, j'ai les fichiers "tableau de bord.xls" et "req.csv"
chaque année je dois faire un archivage des deux fichiers dans un sous
répertoire d:outil de gestionarchive 2007. Je veux uniquement créer
archive N , avec N qui dépend de l'année en cours.

Disque (C ou D)
|_Outil de gestion
|_archive 2007
|_archive 2008
|_ etc...

Pouvez vous m'aider? Merci !










Avatar
excel95
Merci, génial.




Imagehlp.dll est une librairie faisant partie de Windows. Cette librairie
contient une fonction qui permet de créer un répertoire et plusieurs
sous-répertoires en une seule commande.

Voici aussi comment créer un répertoire (ou sous-répertoire) avec la
commande MkDir et comment copier un fichier.

Sub CreerCheminEtCopier()

CheminActiveWorkbook = ActiveWorkbook.Path
If Right(CheminActiveWorkbook, 1) <> "" Then CheminActiveWorkbook =
CheminActiveWorkbook & ""

annee = Trim(InputBox("Entrez l'année"))

If annee = "" Then
Exit Sub
End If

CheminSousRepertoire = CheminActiveWorkbook & "archive " & annee & ""
On Error Resume Next
Err.Clear

MkDir CheminSousRepertoire
If Err <> 0 Then
MsgBox Error
End If

fichier = "bord.xls"
Source = CheminActiveWorkbook & fichier
Destination = CheminSousRepertoire & fichier

Err.Clear

FileCopy Source, Destination

If Err <> 0 Then
MsgBox Error
End If

End Sub


Mishell



"excel95" wrote in message
news:
Merci beaucoup,

En complément, comment copier les fichiers tableau de bord.xls et req.csv
dans le repertoire ainsi créé ?
et... à quoi correspond lib "imagehlp.dll" ?
(précision, je travail sous excel 97 sr2 (et oui, y'a p'us d'sous))


Bonjour.

Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll"
(ByVal lpPath As String) As Long

Sub CreerChemin()

chemin = ActiveWorkbook.Path
If Right(chemin, 1) <> "" Then chemin = chemin & ""

annee = Trim(InputBox("Entrez l'année"))

If annee = "" Then
Exit Sub
End If

chemin = chemin & "archive " & annee & ""

ret = MakeSureDirectoryPathExists(chemin)
If ret <> 0 Then
'Aucun problème
Else
MsgBox "Impossible de créer le chemin" & vbCrLf & chemin
End If

End Sub



Mishell

"excel95" wrote in message
news:
Bonjour,
Je débute en vba et je souhaite créer un sous dossier (sous répertoire)
dans
le répertoire courant du classeur actif
J'arrive à récupérer le répertoire courant avec activeworkbook.path
mais pas à créer un sous-répertoire avec mkdir
Exemple :
mon répertoire actif est d:outil de gestion (ce chemin peut différer
pour
chaque utilisateur, et je dois donc récupérer cette information via
vba)
Dans ce dossier, j'ai les fichiers "tableau de bord.xls" et "req.csv"
chaque année je dois faire un archivage des deux fichiers dans un sous
répertoire d:outil de gestionarchive 2007. Je veux uniquement créer
archive N , avec N qui dépend de l'année en cours.

Disque (C ou D)
|_Outil de gestion
|_archive 2007
|_archive 2008
|_ etc...

Pouvez vous m'aider? Merci !