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

Gestion de dossier

15 réponses
Avatar
Joachim Ruegsegger
Bonjour,

à la fin de mon code j'aimerais enregistrer mon classeur dans un dossier que
je devrais manipuler:

1: il (le dossier cible) est une copie d'un "dossier de référence".

2: je le renomme avec un numéro entrer par l'utilisateur (par une msgbox)

...


je n'ai pas trouvé comment copier un dossier et j'aimerais savoir si il est
possible de copier et directement de lui donner le nom que l'on veut lors de
la copie

j'ai commencé mon code par ceci :

Public NDP as string ' NDP= Numéo de projet

Sub test()

If MsgBox("Est-ce que c'est une nouvelle offre ?", vbYesNo) = vbYes Then
NDP = InputBox("Entrer le numéro du nouveau projet" & Chr(13) &
"Exemple: 1859")


End Sub


Merci d'avance de vos conseils

10 réponses

1 2
Avatar
FFO
Salut à toi
Je te propose au lieu de le copier de le créer en lui affectant le nom de
ton choix avec ce code :

Dim filesysobj As Object
Dim ledossier As Object
Dim ledossierNMoinsUn As Object
Set filesysobj = CreateObject("Scripting.FileSystemObject")
Set ledossier = filesysobj.GetFolder(ThisWorkbook.Path)
Set ledossierNMoinsUn = ledossier.ParentFolder
MkDir (ledossierNMoinsUn & "" & InputBox("Entrer le numéro du nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859"))

celà peut-il convenir

Dit moi !!!


Bonjour,

à la fin de mon code j'aimerais enregistrer mon classeur dans un dossier que
je devrais manipuler:

1: il (le dossier cible) est une copie d'un "dossier de référence".

2: je le renomme avec un numéro entrer par l'utilisateur (par une msgbox)

....


je n'ai pas trouvé comment copier un dossier et j'aimerais savoir si il est
possible de copier et directement de lui donner le nom que l'on veut lors de
la copie

j'ai commencé mon code par ceci :

Public NDP as string ' NDP= Numéo de projet

Sub test()

If MsgBox("Est-ce que c'est une nouvelle offre ?", vbYesNo) = vbYes Then
NDP = InputBox("Entrer le numéro du nouveau projet" & Chr(13) &
"Exemple: 1859")


End Sub


Merci d'avance de vos conseils





Avatar
Joachim Ruegsegger
bonne idée sauf que dans ce dossier de référence, il y a des sous-dossiers
prédéfini avec des fichiers de base à remplir, etc... de toutes manières il
faut que je puisse faire de la copie de dossier.

dans ton exemple, je ne comprend pas très bien où je dois mettre les chemins
de dossier, désolé, c'est la première fois que je fais de la manip de
fichier/dossier avec VBA...


merci de ton aide
"FFO" a écrit dans le message de news:

Salut à toi
Je te propose au lieu de le copier de le créer en lui affectant le nom de
ton choix avec ce code :

Dim filesysobj As Object
Dim ledossier As Object
Dim ledossierNMoinsUn As Object
Set filesysobj = CreateObject("Scripting.FileSystemObject")
Set ledossier = filesysobj.GetFolder(ThisWorkbook.Path)
Set ledossierNMoinsUn = ledossier.ParentFolder
MkDir (ledossierNMoinsUn & "" & InputBox("Entrer le numéro du nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859"))

celà peut-il convenir

Dit moi !!!


Bonjour,

à la fin de mon code j'aimerais enregistrer mon classeur dans un dossier
que
je devrais manipuler:

1: il (le dossier cible) est une copie d'un "dossier de référence".

2: je le renomme avec un numéro entrer par l'utilisateur (par une msgbox)

....


je n'ai pas trouvé comment copier un dossier et j'aimerais savoir si il
est
possible de copier et directement de lui donner le nom que l'on veut lors
de
la copie

j'ai commencé mon code par ceci :

Public NDP as string ' NDP= Numéo de projet

Sub test()

If MsgBox("Est-ce que c'est une nouvelle offre ?", vbYesNo) = vbYes Then
NDP = InputBox("Entrer le numéro du nouveau projet" & Chr(13)
&
"Exemple: 1859")


End Sub


Merci d'avance de vos conseils







Avatar
FFO
Rebonjour à toi

C'était bien tenté mais pas à la hauteur du cahier des charges
Concernant le chemin du dossier partant du principe qu'il devait être
identique à celui du fichier en cours d'utilisation tu le retrouvais dans
l'instruction :

ThisWorkbook.Path

avec remonté au dossier parent par la ligne :

Set ledossierNMoinsUn = ledossier.ParentFolder

Puis de créer le dossier avec le nom souhaité par la ligne :

MkDir (ledossierNMoinsUn & "" & InputBox("Entrer le numéro du nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859"))
reprenant le chemin établit sous "le nom ledossierNMoinsUn"

J'espère avoir éclairci ta lanterne

Concernant tes attentes je te propose donc en lieu et place de ma première
suggestion ce code :

Dim Fso As Scripting.FileSystemObject
Dim Source As String, Destination As String

Set Fso = CreateObject("Scripting.FileSystemObject")

Source = "C:CheminFichier de référence"
Destination = "C:Chemin"

'False/True option pour écraser les fichiers
Fso.CopyFolder Source, Destination & InputBox("Entrer le numéro du nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859")), False

Ne pas oublier de mettre dans les références :

"reference Microsoft scripting Runtime"

Je pense que tu devrais être beaucoup plus satisfait !!!
Annonce moi la bonne nouvelle !!!!


bonne idée sauf que dans ce dossier de référence, il y a des sous-dossiers
prédéfini avec des fichiers de base à remplir, etc... de toutes manières il
faut que je puisse faire de la copie de dossier.

dans ton exemple, je ne comprend pas très bien où je dois mettre les chemins
de dossier, désolé, c'est la première fois que je fais de la manip de
fichier/dossier avec VBA...


merci de ton aide
"FFO" a écrit dans le message de news:

Salut à toi
Je te propose au lieu de le copier de le créer en lui affectant le nom de
ton choix avec ce code :

Dim filesysobj As Object
Dim ledossier As Object
Dim ledossierNMoinsUn As Object
Set filesysobj = CreateObject("Scripting.FileSystemObject")
Set ledossier = filesysobj.GetFolder(ThisWorkbook.Path)
Set ledossierNMoinsUn = ledossier.ParentFolder
MkDir (ledossierNMoinsUn & "" & InputBox("Entrer le numéro du nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859"))

celà peut-il convenir

Dit moi !!!


Bonjour,

à la fin de mon code j'aimerais enregistrer mon classeur dans un dossier
que
je devrais manipuler:

1: il (le dossier cible) est une copie d'un "dossier de référence".

2: je le renomme avec un numéro entrer par l'utilisateur (par une msgbox)

....


je n'ai pas trouvé comment copier un dossier et j'aimerais savoir si il
est
possible de copier et directement de lui donner le nom que l'on veut lors
de
la copie

j'ai commencé mon code par ceci :

Public NDP as string ' NDP= Numéo de projet

Sub test()

If MsgBox("Est-ce que c'est une nouvelle offre ?", vbYesNo) = vbYes Then
NDP = InputBox("Entrer le numéro du nouveau projet" & Chr(13)
&
"Exemple: 1859")


End Sub


Merci d'avance de vos conseils












Avatar
Joachim Ruegsegger
Ca ne fonctionne pas mais je pense que c'est un problème de syntaxe de la
dernière ligne :

Fso.CopyFolder Source, Destination & InputBox("Entrer le numéro du nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859")), False

j'ai modifé comme ceci:

Fso.CopyFolder (Source, Destination & InputBox("Entrer le numéro du nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859"), False)

mais il me dit qu'il y a toujours un problème de syntaxe

"Problème de compilation
attendu : = "

j'ai une autre question, les déclarations Dim, on peut les placers en plein
milieu d'un code ou l'on doit les mettres tous au début du code comme les
déclarations Public ?



"FFO" a écrit dans le message de news:

Rebonjour à toi

C'était bien tenté mais pas à la hauteur du cahier des charges
Concernant le chemin du dossier partant du principe qu'il devait être
identique à celui du fichier en cours d'utilisation tu le retrouvais dans
l'instruction :

ThisWorkbook.Path

avec remonté au dossier parent par la ligne :

Set ledossierNMoinsUn = ledossier.ParentFolder

Puis de créer le dossier avec le nom souhaité par la ligne :

MkDir (ledossierNMoinsUn & "" & InputBox("Entrer le numéro du nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859"))
reprenant le chemin établit sous "le nom ledossierNMoinsUn"

J'espère avoir éclairci ta lanterne

Concernant tes attentes je te propose donc en lieu et place de ma première
suggestion ce code :

Dim Fso As Scripting.FileSystemObject
Dim Source As String, Destination As String

Set Fso = CreateObject("Scripting.FileSystemObject")

Source = "C:CheminFichier de référence"
Destination = "C:Chemin"

'False/True option pour écraser les fichiers
Fso.CopyFolder Source, Destination & InputBox("Entrer le numéro du
nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859")), False

Ne pas oublier de mettre dans les références :

"reference Microsoft scripting Runtime"

Je pense que tu devrais être beaucoup plus satisfait !!!
Annonce moi la bonne nouvelle !!!!


bonne idée sauf que dans ce dossier de référence, il y a des
sous-dossiers
prédéfini avec des fichiers de base à remplir, etc... de toutes manières
il
faut que je puisse faire de la copie de dossier.

dans ton exemple, je ne comprend pas très bien où je dois mettre les
chemins
de dossier, désolé, c'est la première fois que je fais de la manip de
fichier/dossier avec VBA...


merci de ton aide
"FFO" a écrit dans le message de news:

Salut à toi
Je te propose au lieu de le copier de le créer en lui affectant le nom
de
ton choix avec ce code :

Dim filesysobj As Object
Dim ledossier As Object
Dim ledossierNMoinsUn As Object
Set filesysobj = CreateObject("Scripting.FileSystemObject")
Set ledossier = filesysobj.GetFolder(ThisWorkbook.Path)
Set ledossierNMoinsUn = ledossier.ParentFolder
MkDir (ledossierNMoinsUn & "" & InputBox("Entrer le numéro du nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859"))

celà peut-il convenir

Dit moi !!!


Bonjour,

à la fin de mon code j'aimerais enregistrer mon classeur dans un
dossier
que
je devrais manipuler:

1: il (le dossier cible) est une copie d'un "dossier de référence".

2: je le renomme avec un numéro entrer par l'utilisateur (par une
msgbox)

....


je n'ai pas trouvé comment copier un dossier et j'aimerais savoir si
il
est
possible de copier et directement de lui donner le nom que l'on veut
lors
de
la copie

j'ai commencé mon code par ceci :

Public NDP as string ' NDP= Numéo de projet

Sub test()

If MsgBox("Est-ce que c'est une nouvelle offre ?", vbYesNo) = vbYes
Then
NDP = InputBox("Entrer le numéro du nouveau projet" &
Chr(13)
&
"Exemple: 1859")


End Sub


Merci d'avance de vos conseils














Avatar
FFO
Rebonjour à toi

En préambule as tu pensé à la Référence :

"reference Microsoft scripting Runtime"


Aprés cette vérification et si le PB persiste tu devrais d'abord réaliser le
cas le plus simple comme ceci :


Set Fso = CreateObject("Scripting.FileSystemObject")
Source = "C:CheminRépertoire de référence"
Destination = "C:Chemin"
Fso.CopyFolder Source, Destination & "Toto", False

regarde si le nouveau répertoire "Toto" est bien créé avec toute sa panoplie
à l'identique du Répertoire de Référence

Puis change "Toto" avec InputBox("Entrer le numéro du nouveau
projet")

Nouvel essai en saisissant dans la Boîte de dialogue le nom du répertoire à
créer

Faire une nouvelle vérification

Si tout est Ok reste à mettre en place la partie :
& Chr(13) & "Nom du dossier et Exemple: 1859

J'ai retesté avec à la virgule prés ce que tu m'as mis dans ta réponse avec
ta correction (effectivement il y avait une parenthèse fermante en trop),
aucune anomalie à déplorer avec la création du répertoire

Réalise donc de proche en proche ce code et donne moi le résultat !!!!




Ca ne fonctionne pas mais je pense que c'est un problème de syntaxe de la
dernière ligne :

Fso.CopyFolder Source, Destination & InputBox("Entrer le numéro du nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859")), False

j'ai modifé comme ceci:

Fso.CopyFolder (Source, Destination & InputBox("Entrer le numéro du nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859"), False)

mais il me dit qu'il y a toujours un problème de syntaxe

"Problème de compilation
attendu : = "

j'ai une autre question, les déclarations Dim, on peut les placers en plein
milieu d'un code ou l'on doit les mettres tous au début du code comme les
déclarations Public ?



"FFO" a écrit dans le message de news:

Rebonjour à toi

C'était bien tenté mais pas à la hauteur du cahier des charges
Concernant le chemin du dossier partant du principe qu'il devait être
identique à celui du fichier en cours d'utilisation tu le retrouvais dans
l'instruction :

ThisWorkbook.Path

avec remonté au dossier parent par la ligne :

Set ledossierNMoinsUn = ledossier.ParentFolder

Puis de créer le dossier avec le nom souhaité par la ligne :

MkDir (ledossierNMoinsUn & "" & InputBox("Entrer le numéro du nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859"))
reprenant le chemin établit sous "le nom ledossierNMoinsUn"

J'espère avoir éclairci ta lanterne

Concernant tes attentes je te propose donc en lieu et place de ma première
suggestion ce code :

Dim Fso As Scripting.FileSystemObject
Dim Source As String, Destination As String

Set Fso = CreateObject("Scripting.FileSystemObject")

Source = "C:CheminFichier de référence"
Destination = "C:Chemin"

'False/True option pour écraser les fichiers
Fso.CopyFolder Source, Destination & InputBox("Entrer le numéro du
nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859")), False

Ne pas oublier de mettre dans les références :

"reference Microsoft scripting Runtime"

Je pense que tu devrais être beaucoup plus satisfait !!!
Annonce moi la bonne nouvelle !!!!


bonne idée sauf que dans ce dossier de référence, il y a des
sous-dossiers
prédéfini avec des fichiers de base à remplir, etc... de toutes manières
il
faut que je puisse faire de la copie de dossier.

dans ton exemple, je ne comprend pas très bien où je dois mettre les
chemins
de dossier, désolé, c'est la première fois que je fais de la manip de
fichier/dossier avec VBA...


merci de ton aide
"FFO" a écrit dans le message de news:

Salut à toi
Je te propose au lieu de le copier de le créer en lui affectant le nom
de
ton choix avec ce code :

Dim filesysobj As Object
Dim ledossier As Object
Dim ledossierNMoinsUn As Object
Set filesysobj = CreateObject("Scripting.FileSystemObject")
Set ledossier = filesysobj.GetFolder(ThisWorkbook.Path)
Set ledossierNMoinsUn = ledossier.ParentFolder
MkDir (ledossierNMoinsUn & "" & InputBox("Entrer le numéro du nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859"))

celà peut-il convenir

Dit moi !!!


Bonjour,

à la fin de mon code j'aimerais enregistrer mon classeur dans un
dossier
que
je devrais manipuler:

1: il (le dossier cible) est une copie d'un "dossier de référence".

2: je le renomme avec un numéro entrer par l'utilisateur (par une
msgbox)

....


je n'ai pas trouvé comment copier un dossier et j'aimerais savoir si
il
est
possible de copier et directement de lui donner le nom que l'on veut
lors
de
la copie

j'ai commencé mon code par ceci :

Public NDP as string ' NDP= Numéo de projet

Sub test()

If MsgBox("Est-ce que c'est une nouvelle offre ?", vbYesNo) = vbYes
Then
NDP = InputBox("Entrer le numéro du nouveau projet" &
Chr(13)
&
"Exemple: 1859")


End Sub


Merci d'avance de vos conseils



















Avatar
Joachim Ruegsegger
Excellent, je n'ai plus de problème de syntaxe (ça bloquait a cause des
parenthèses du copyfolder)

voici maintenant la "gueule" de mon bout de code pour la gestion du dossier

If MsgBox("Est-ce que c'est une nouvelle offre ?", vbYesNo) = vbYes Then

NDC = InputBox("Entrer le numéro du nouveau projet" & Chr(13) &
"Exemple: 1859")
Dim Fso As Scripting.FileSystemObject
Dim Source As String, Destination As String

Set Fso = CreateObject("Scripting.FileSystemObject")

Source = "C:Dossier de référence"
Destination = "C:"

'False/True option pour écraser les fichiers


Fso.CopyFolder Source, Destination & "toto", False

Else


End If


Malheureusement, à la ligne du copyfolder, j'ai un message d'erreur "chemin
d'accès introuvable" alors que c'est C:toto, bizarre....

le microsoft sripting runtime est bien activé.

Le copyfolder peut copier le dossier et le créé directement ??? (j'ai quand
meme fait un test en créant via l'explorateur de fichier un dossier "toto"
vide...

ne perdont pas espoir, on avance vers la compréhension du VBA mdr

"FFO" a écrit dans le message de news:

Rebonjour à toi

En préambule as tu pensé à la Référence :

"reference Microsoft scripting Runtime"


Aprés cette vérification et si le PB persiste tu devrais d'abord réaliser
le
cas le plus simple comme ceci :


Set Fso = CreateObject("Scripting.FileSystemObject")
Source = "C:CheminRépertoire de référence"
Destination = "C:Chemin"
Fso.CopyFolder Source, Destination & "Toto", False

regarde si le nouveau répertoire "Toto" est bien créé avec toute sa
panoplie
à l'identique du Répertoire de Référence

Puis change "Toto" avec InputBox("Entrer le numéro du nouveau
projet")

Nouvel essai en saisissant dans la Boîte de dialogue le nom du répertoire
à
créer

Faire une nouvelle vérification

Si tout est Ok reste à mettre en place la partie :
& Chr(13) & "Nom du dossier et Exemple: 1859

J'ai retesté avec à la virgule prés ce que tu m'as mis dans ta réponse
avec
ta correction (effectivement il y avait une parenthèse fermante en trop),
aucune anomalie à déplorer avec la création du répertoire

Réalise donc de proche en proche ce code et donne moi le résultat !!!!




Ca ne fonctionne pas mais je pense que c'est un problème de syntaxe de la
dernière ligne :

Fso.CopyFolder Source, Destination & InputBox("Entrer le numéro du
nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859")), False

j'ai modifé comme ceci:

Fso.CopyFolder (Source, Destination & InputBox("Entrer le numéro du
nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859"), False)

mais il me dit qu'il y a toujours un problème de syntaxe

"Problème de compilation
attendu : = "

j'ai une autre question, les déclarations Dim, on peut les placers en
plein
milieu d'un code ou l'on doit les mettres tous au début du code comme les
déclarations Public ?



"FFO" a écrit dans le message de news:

Rebonjour à toi

C'était bien tenté mais pas à la hauteur du cahier des charges
Concernant le chemin du dossier partant du principe qu'il devait être
identique à celui du fichier en cours d'utilisation tu le retrouvais
dans
l'instruction :

ThisWorkbook.Path

avec remonté au dossier parent par la ligne :

Set ledossierNMoinsUn = ledossier.ParentFolder

Puis de créer le dossier avec le nom souhaité par la ligne :

MkDir (ledossierNMoinsUn & "" & InputBox("Entrer le numéro du nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859"))
reprenant le chemin établit sous "le nom ledossierNMoinsUn"

J'espère avoir éclairci ta lanterne

Concernant tes attentes je te propose donc en lieu et place de ma
première
suggestion ce code :

Dim Fso As Scripting.FileSystemObject
Dim Source As String, Destination As String

Set Fso = CreateObject("Scripting.FileSystemObject")

Source = "C:CheminFichier de référence"
Destination = "C:Chemin"

'False/True option pour écraser les fichiers
Fso.CopyFolder Source, Destination & InputBox("Entrer le numéro du
nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859")), False

Ne pas oublier de mettre dans les références :

"reference Microsoft scripting Runtime"

Je pense que tu devrais être beaucoup plus satisfait !!!
Annonce moi la bonne nouvelle !!!!


bonne idée sauf que dans ce dossier de référence, il y a des
sous-dossiers
prédéfini avec des fichiers de base à remplir, etc... de toutes
manières
il
faut que je puisse faire de la copie de dossier.

dans ton exemple, je ne comprend pas très bien où je dois mettre les
chemins
de dossier, désolé, c'est la première fois que je fais de la manip de
fichier/dossier avec VBA...


merci de ton aide
"FFO" a écrit dans le message de news:

Salut à toi
Je te propose au lieu de le copier de le créer en lui affectant le
nom
de
ton choix avec ce code :

Dim filesysobj As Object
Dim ledossier As Object
Dim ledossierNMoinsUn As Object
Set filesysobj = CreateObject("Scripting.FileSystemObject")
Set ledossier = filesysobj.GetFolder(ThisWorkbook.Path)
Set ledossierNMoinsUn = ledossier.ParentFolder
MkDir (ledossierNMoinsUn & "" & InputBox("Entrer le numéro du
nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859"))

celà peut-il convenir

Dit moi !!!


Bonjour,

à la fin de mon code j'aimerais enregistrer mon classeur dans un
dossier
que
je devrais manipuler:

1: il (le dossier cible) est une copie d'un "dossier de référence".

2: je le renomme avec un numéro entrer par l'utilisateur (par une
msgbox)

....


je n'ai pas trouvé comment copier un dossier et j'aimerais savoir
si
il
est
possible de copier et directement de lui donner le nom que l'on
veut
lors
de
la copie

j'ai commencé mon code par ceci :

Public NDP as string ' NDP= Numéo de projet

Sub test()

If MsgBox("Est-ce que c'est une nouvelle offre ?", vbYesNo) = vbYes
Then
NDP = InputBox("Entrer le numéro du nouveau projet" &
Chr(13)
&
"Exemple: 1859")


End Sub


Merci d'avance de vos conseils





















Avatar
FFO
Rebonjour à toi

Ta ligne source est erroné
au lieu de
Source = "C:Dossier de référence"
mets
Source = "C:Dossier de référence"
Tu recopies le dossier "Dossier de référence" et non un répertoire à
l'interieur représenté avec le caractère "" qui le suit

Celà devrait mieux fonctionner

Dis moi !!!!


Excellent, je n'ai plus de problème de syntaxe (ça bloquait a cause des
parenthèses du copyfolder)

voici maintenant la "gueule" de mon bout de code pour la gestion du dossier

If MsgBox("Est-ce que c'est une nouvelle offre ?", vbYesNo) = vbYes Then

NDC = InputBox("Entrer le numéro du nouveau projet" & Chr(13) &
"Exemple: 1859")
Dim Fso As Scripting.FileSystemObject
Dim Source As String, Destination As String

Set Fso = CreateObject("Scripting.FileSystemObject")

Source = "C:Dossier de référence"
Destination = "C:"

'False/True option pour écraser les fichiers


Fso.CopyFolder Source, Destination & "toto", False

Else


End If


Malheureusement, à la ligne du copyfolder, j'ai un message d'erreur "chemin
d'accès introuvable" alors que c'est C:toto, bizarre....

le microsoft sripting runtime est bien activé.

Le copyfolder peut copier le dossier et le créé directement ??? (j'ai quand
meme fait un test en créant via l'explorateur de fichier un dossier "toto"
vide...

ne perdont pas espoir, on avance vers la compréhension du VBA mdr

"FFO" a écrit dans le message de news:

Rebonjour à toi

En préambule as tu pensé à la Référence :

"reference Microsoft scripting Runtime"


Aprés cette vérification et si le PB persiste tu devrais d'abord réaliser
le
cas le plus simple comme ceci :


Set Fso = CreateObject("Scripting.FileSystemObject")
Source = "C:CheminRépertoire de référence"
Destination = "C:Chemin"
Fso.CopyFolder Source, Destination & "Toto", False

regarde si le nouveau répertoire "Toto" est bien créé avec toute sa
panoplie
à l'identique du Répertoire de Référence

Puis change "Toto" avec InputBox("Entrer le numéro du nouveau
projet")

Nouvel essai en saisissant dans la Boîte de dialogue le nom du répertoire
à
créer

Faire une nouvelle vérification

Si tout est Ok reste à mettre en place la partie :
& Chr(13) & "Nom du dossier et Exemple: 1859

J'ai retesté avec à la virgule prés ce que tu m'as mis dans ta réponse
avec
ta correction (effectivement il y avait une parenthèse fermante en trop),
aucune anomalie à déplorer avec la création du répertoire

Réalise donc de proche en proche ce code et donne moi le résultat !!!!




Ca ne fonctionne pas mais je pense que c'est un problème de syntaxe de la
dernière ligne :

Fso.CopyFolder Source, Destination & InputBox("Entrer le numéro du
nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859")), False

j'ai modifé comme ceci:

Fso.CopyFolder (Source, Destination & InputBox("Entrer le numéro du
nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859"), False)

mais il me dit qu'il y a toujours un problème de syntaxe

"Problème de compilation
attendu : = "

j'ai une autre question, les déclarations Dim, on peut les placers en
plein
milieu d'un code ou l'on doit les mettres tous au début du code comme les
déclarations Public ?



"FFO" a écrit dans le message de news:

Rebonjour à toi

C'était bien tenté mais pas à la hauteur du cahier des charges
Concernant le chemin du dossier partant du principe qu'il devait être
identique à celui du fichier en cours d'utilisation tu le retrouvais
dans
l'instruction :

ThisWorkbook.Path

avec remonté au dossier parent par la ligne :

Set ledossierNMoinsUn = ledossier.ParentFolder

Puis de créer le dossier avec le nom souhaité par la ligne :

MkDir (ledossierNMoinsUn & "" & InputBox("Entrer le numéro du nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859"))
reprenant le chemin établit sous "le nom ledossierNMoinsUn"

J'espère avoir éclairci ta lanterne

Concernant tes attentes je te propose donc en lieu et place de ma
première
suggestion ce code :

Dim Fso As Scripting.FileSystemObject
Dim Source As String, Destination As String

Set Fso = CreateObject("Scripting.FileSystemObject")

Source = "C:CheminFichier de référence"
Destination = "C:Chemin"

'False/True option pour écraser les fichiers
Fso.CopyFolder Source, Destination & InputBox("Entrer le numéro du
nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859")), False

Ne pas oublier de mettre dans les références :

"reference Microsoft scripting Runtime"

Je pense que tu devrais être beaucoup plus satisfait !!!
Annonce moi la bonne nouvelle !!!!


bonne idée sauf que dans ce dossier de référence, il y a des
sous-dossiers
prédéfini avec des fichiers de base à remplir, etc... de toutes
manières
il
faut que je puisse faire de la copie de dossier.

dans ton exemple, je ne comprend pas très bien où je dois mettre les
chemins
de dossier, désolé, c'est la première fois que je fais de la manip de
fichier/dossier avec VBA...


merci de ton aide
"FFO" a écrit dans le message de news:

Salut à toi
Je te propose au lieu de le copier de le créer en lui affectant le
nom
de
ton choix avec ce code :

Dim filesysobj As Object
Dim ledossier As Object
Dim ledossierNMoinsUn As Object
Set filesysobj = CreateObject("Scripting.FileSystemObject")
Set ledossier = filesysobj.GetFolder(ThisWorkbook.Path)
Set ledossierNMoinsUn = ledossier.ParentFolder
MkDir (ledossierNMoinsUn & "" & InputBox("Entrer le numéro du
nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859"))

celà peut-il convenir

Dit moi !!!


Bonjour,

à la fin de mon code j'aimerais enregistrer mon classeur dans un
dossier
que
je devrais manipuler:

1: il (le dossier cible) est une copie d'un "dossier de référence".

2: je le renomme avec un numéro entrer par l'utilisateur (par une
msgbox)

....


je n'ai pas trouvé comment copier un dossier et j'aimerais savoir
si
il
est
possible de copier et directement de lui donner le nom que l'on
veut
lors
de
la copie

j'ai commencé mon code par ceci :

Public NDP as string ' NDP= Numéo de projet

Sub test()

If MsgBox("Est-ce que c'est une nouvelle offre ?", vbYesNo) = vbYes
Then
NDP = InputBox("Entrer le numéro du nouveau projet" &
Chr(13)
&
"Exemple: 1859")


End Sub


Merci d'avance de vos conseils


























Avatar
Joachim Ruegsegger
excellent, ça fonctionne parfaitement, faut que j'implémente encore des
contrôles pour voir si le dossier existe ou pas, etc...

mais en cette presque fin de journée, j'ai le sourire jusqu'aux oreilles

Merci pour ton aide !


"FFO" a écrit dans le message de news:

Rebonjour à toi

Ta ligne source est erroné
au lieu de
Source = "C:Dossier de référence"
mets
Source = "C:Dossier de référence"
Tu recopies le dossier "Dossier de référence" et non un répertoire à
l'interieur représenté avec le caractère "" qui le suit

Celà devrait mieux fonctionner

Dis moi !!!!


Excellent, je n'ai plus de problème de syntaxe (ça bloquait a cause des
parenthèses du copyfolder)

voici maintenant la "gueule" de mon bout de code pour la gestion du
dossier

If MsgBox("Est-ce que c'est une nouvelle offre ?", vbYesNo) = vbYes Then

NDC = InputBox("Entrer le numéro du nouveau projet" & Chr(13)
&
"Exemple: 1859")
Dim Fso As Scripting.FileSystemObject
Dim Source As String, Destination As String

Set Fso = CreateObject("Scripting.FileSystemObject")

Source = "C:Dossier de référence"
Destination = "C:"

'False/True option pour écraser les fichiers


Fso.CopyFolder Source, Destination & "toto", False

Else


End If


Malheureusement, à la ligne du copyfolder, j'ai un message d'erreur
"chemin
d'accès introuvable" alors que c'est C:toto, bizarre....

le microsoft sripting runtime est bien activé.

Le copyfolder peut copier le dossier et le créé directement ??? (j'ai
quand
meme fait un test en créant via l'explorateur de fichier un dossier
"toto"
vide...

ne perdont pas espoir, on avance vers la compréhension du VBA mdr

"FFO" a écrit dans le message de news:

Rebonjour à toi

En préambule as tu pensé à la Référence :

"reference Microsoft scripting Runtime"


Aprés cette vérification et si le PB persiste tu devrais d'abord
réaliser
le
cas le plus simple comme ceci :


Set Fso = CreateObject("Scripting.FileSystemObject")
Source = "C:CheminRépertoire de référence"
Destination = "C:Chemin"
Fso.CopyFolder Source, Destination & "Toto", False

regarde si le nouveau répertoire "Toto" est bien créé avec toute sa
panoplie
à l'identique du Répertoire de Référence

Puis change "Toto" avec InputBox("Entrer le numéro du nouveau
projet")

Nouvel essai en saisissant dans la Boîte de dialogue le nom du
répertoire
à
créer

Faire une nouvelle vérification

Si tout est Ok reste à mettre en place la partie :
& Chr(13) & "Nom du dossier et Exemple: 1859

J'ai retesté avec à la virgule prés ce que tu m'as mis dans ta réponse
avec
ta correction (effectivement il y avait une parenthèse fermante en
trop),
aucune anomalie à déplorer avec la création du répertoire

Réalise donc de proche en proche ce code et donne moi le résultat !!!!




Ca ne fonctionne pas mais je pense que c'est un problème de syntaxe de
la
dernière ligne :

Fso.CopyFolder Source, Destination & InputBox("Entrer le numéro du
nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859")), False

j'ai modifé comme ceci:

Fso.CopyFolder (Source, Destination & InputBox("Entrer le numéro du
nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859"), False)

mais il me dit qu'il y a toujours un problème de syntaxe

"Problème de compilation
attendu : = "

j'ai une autre question, les déclarations Dim, on peut les placers en
plein
milieu d'un code ou l'on doit les mettres tous au début du code comme
les
déclarations Public ?



"FFO" a écrit dans le message de news:

Rebonjour à toi

C'était bien tenté mais pas à la hauteur du cahier des charges
Concernant le chemin du dossier partant du principe qu'il devait
être
identique à celui du fichier en cours d'utilisation tu le retrouvais
dans
l'instruction :

ThisWorkbook.Path

avec remonté au dossier parent par la ligne :

Set ledossierNMoinsUn = ledossier.ParentFolder

Puis de créer le dossier avec le nom souhaité par la ligne :

MkDir (ledossierNMoinsUn & "" & InputBox("Entrer le numéro du
nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859"))
reprenant le chemin établit sous "le nom ledossierNMoinsUn"

J'espère avoir éclairci ta lanterne

Concernant tes attentes je te propose donc en lieu et place de ma
première
suggestion ce code :

Dim Fso As Scripting.FileSystemObject
Dim Source As String, Destination As String

Set Fso = CreateObject("Scripting.FileSystemObject")

Source = "C:CheminFichier de référence"
Destination = "C:Chemin"

'False/True option pour écraser les fichiers
Fso.CopyFolder Source, Destination & InputBox("Entrer le numéro du
nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859")), False

Ne pas oublier de mettre dans les références :

"reference Microsoft scripting Runtime"

Je pense que tu devrais être beaucoup plus satisfait !!!
Annonce moi la bonne nouvelle !!!!


bonne idée sauf que dans ce dossier de référence, il y a des
sous-dossiers
prédéfini avec des fichiers de base à remplir, etc... de toutes
manières
il
faut que je puisse faire de la copie de dossier.

dans ton exemple, je ne comprend pas très bien où je dois mettre
les
chemins
de dossier, désolé, c'est la première fois que je fais de la manip
de
fichier/dossier avec VBA...


merci de ton aide
"FFO" a écrit dans le message de
news:

Salut à toi
Je te propose au lieu de le copier de le créer en lui affectant
le
nom
de
ton choix avec ce code :

Dim filesysobj As Object
Dim ledossier As Object
Dim ledossierNMoinsUn As Object
Set filesysobj = CreateObject("Scripting.FileSystemObject")
Set ledossier = filesysobj.GetFolder(ThisWorkbook.Path)
Set ledossierNMoinsUn = ledossier.ParentFolder
MkDir (ledossierNMoinsUn & "" & InputBox("Entrer le numéro du
nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859"))

celà peut-il convenir

Dit moi !!!


Bonjour,

à la fin de mon code j'aimerais enregistrer mon classeur dans un
dossier
que
je devrais manipuler:

1: il (le dossier cible) est une copie d'un "dossier de
référence".

2: je le renomme avec un numéro entrer par l'utilisateur (par
une
msgbox)

....


je n'ai pas trouvé comment copier un dossier et j'aimerais
savoir
si
il
est
possible de copier et directement de lui donner le nom que l'on
veut
lors
de
la copie

j'ai commencé mon code par ceci :

Public NDP as string ' NDP= Numéo de projet

Sub test()

If MsgBox("Est-ce que c'est une nouvelle offre ?", vbYesNo) =
vbYes
Then
NDP = InputBox("Entrer le numéro du nouveau projet"
&
Chr(13)
&
"Exemple: 1859")


End Sub


Merci d'avance de vos conseils




























Avatar
Joachim Ruegsegger
dans ce bout de code, j'enregistre un fichier. Malheureusement si le fichier
existe déjà une boite de dialogue me demandant si je veux l'écraser ou pas
s'affiche

est-il possible de récupérer une info de cette boite de dialogue automatique
?

NOE = InputBox("Entrer le numéro d'une offre existante" & Chr(13) &
"Exemple: 1859", "Numéro d'une offre existante")

Set Fso2 = CreateObject("Scripting.FileSystemObject")
Destination = "S:TechniqueAutomationProjets AutoProjet
EssaiCommercialDossier de reception" & NOE

If Fso2.FolderExists(Destination) Then
ChDrive "S"
ChDir Destination & "Calculation"
ICI===> ActiveWorkbook.SaveAs Filename:=(NOE)
GoTo Selec4:
Else
If MsgBox("Le dossier " & NOE & " n'existe pas !,
voulez-vous revenir au début ?", vbYesNo) = vbYes Then
GoTo Selec:
Else
GoTo Selec3:
End If

End If


merci de votre réponse



"Joachim Ruegsegger" a écrit dans le message de
news:
excellent, ça fonctionne parfaitement, faut que j'implémente encore des
contrôles pour voir si le dossier existe ou pas, etc...

mais en cette presque fin de journée, j'ai le sourire jusqu'aux oreilles

Merci pour ton aide !


"FFO" a écrit dans le message de news:

Rebonjour à toi

Ta ligne source est erroné
au lieu de
Source = "C:Dossier de référence"
mets
Source = "C:Dossier de référence"
Tu recopies le dossier "Dossier de référence" et non un répertoire à
l'interieur représenté avec le caractère "" qui le suit

Celà devrait mieux fonctionner

Dis moi !!!!


Excellent, je n'ai plus de problème de syntaxe (ça bloquait a cause des
parenthèses du copyfolder)

voici maintenant la "gueule" de mon bout de code pour la gestion du
dossier

If MsgBox("Est-ce que c'est une nouvelle offre ?", vbYesNo) = vbYes Then

NDC = InputBox("Entrer le numéro du nouveau projet" &
Chr(13) &
"Exemple: 1859")
Dim Fso As Scripting.FileSystemObject
Dim Source As String, Destination As String

Set Fso = CreateObject("Scripting.FileSystemObject")

Source = "C:Dossier de référence"
Destination = "C:"

'False/True option pour écraser les fichiers


Fso.CopyFolder Source, Destination & "toto", False

Else


End If


Malheureusement, à la ligne du copyfolder, j'ai un message d'erreur
"chemin
d'accès introuvable" alors que c'est C:toto, bizarre....

le microsoft sripting runtime est bien activé.

Le copyfolder peut copier le dossier et le créé directement ??? (j'ai
quand
meme fait un test en créant via l'explorateur de fichier un dossier
"toto"
vide...

ne perdont pas espoir, on avance vers la compréhension du VBA mdr

"FFO" a écrit dans le message de news:

Rebonjour à toi

En préambule as tu pensé à la Référence :

"reference Microsoft scripting Runtime"


Aprés cette vérification et si le PB persiste tu devrais d'abord
réaliser
le
cas le plus simple comme ceci :


Set Fso = CreateObject("Scripting.FileSystemObject")
Source = "C:CheminRépertoire de référence"
Destination = "C:Chemin"
Fso.CopyFolder Source, Destination & "Toto", False

regarde si le nouveau répertoire "Toto" est bien créé avec toute sa
panoplie
à l'identique du Répertoire de Référence

Puis change "Toto" avec InputBox("Entrer le numéro du nouveau
projet")

Nouvel essai en saisissant dans la Boîte de dialogue le nom du
répertoire
à
créer

Faire une nouvelle vérification

Si tout est Ok reste à mettre en place la partie :
& Chr(13) & "Nom du dossier et Exemple: 1859

J'ai retesté avec à la virgule prés ce que tu m'as mis dans ta réponse
avec
ta correction (effectivement il y avait une parenthèse fermante en
trop),
aucune anomalie à déplorer avec la création du répertoire

Réalise donc de proche en proche ce code et donne moi le résultat !!!!




Ca ne fonctionne pas mais je pense que c'est un problème de syntaxe
de la
dernière ligne :

Fso.CopyFolder Source, Destination & InputBox("Entrer le numéro du
nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859")), False

j'ai modifé comme ceci:

Fso.CopyFolder (Source, Destination & InputBox("Entrer le numéro du
nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859"), False)

mais il me dit qu'il y a toujours un problème de syntaxe

"Problème de compilation
attendu : = "

j'ai une autre question, les déclarations Dim, on peut les placers en
plein
milieu d'un code ou l'on doit les mettres tous au début du code comme
les
déclarations Public ?



"FFO" a écrit dans le message de
news:

Rebonjour à toi

C'était bien tenté mais pas à la hauteur du cahier des charges
Concernant le chemin du dossier partant du principe qu'il devait
être
identique à celui du fichier en cours d'utilisation tu le
retrouvais
dans
l'instruction :

ThisWorkbook.Path

avec remonté au dossier parent par la ligne :

Set ledossierNMoinsUn = ledossier.ParentFolder

Puis de créer le dossier avec le nom souhaité par la ligne :

MkDir (ledossierNMoinsUn & "" & InputBox("Entrer le numéro du
nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859"))
reprenant le chemin établit sous "le nom ledossierNMoinsUn"

J'espère avoir éclairci ta lanterne

Concernant tes attentes je te propose donc en lieu et place de ma
première
suggestion ce code :

Dim Fso As Scripting.FileSystemObject
Dim Source As String, Destination As String

Set Fso = CreateObject("Scripting.FileSystemObject")

Source = "C:CheminFichier de référence"
Destination = "C:Chemin"

'False/True option pour écraser les fichiers
Fso.CopyFolder Source, Destination & InputBox("Entrer le numéro du
nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859")), False

Ne pas oublier de mettre dans les références :

"reference Microsoft scripting Runtime"

Je pense que tu devrais être beaucoup plus satisfait !!!
Annonce moi la bonne nouvelle !!!!


bonne idée sauf que dans ce dossier de référence, il y a des
sous-dossiers
prédéfini avec des fichiers de base à remplir, etc... de toutes
manières
il
faut que je puisse faire de la copie de dossier.

dans ton exemple, je ne comprend pas très bien où je dois mettre
les
chemins
de dossier, désolé, c'est la première fois que je fais de la manip
de
fichier/dossier avec VBA...


merci de ton aide
"FFO" a écrit dans le message de
news:

Salut à toi
Je te propose au lieu de le copier de le créer en lui affectant
le
nom
de
ton choix avec ce code :

Dim filesysobj As Object
Dim ledossier As Object
Dim ledossierNMoinsUn As Object
Set filesysobj = CreateObject("Scripting.FileSystemObject")
Set ledossier = filesysobj.GetFolder(ThisWorkbook.Path)
Set ledossierNMoinsUn = ledossier.ParentFolder
MkDir (ledossierNMoinsUn & "" & InputBox("Entrer le numéro du
nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859"))

celà peut-il convenir

Dit moi !!!


Bonjour,

à la fin de mon code j'aimerais enregistrer mon classeur dans
un
dossier
que
je devrais manipuler:

1: il (le dossier cible) est une copie d'un "dossier de
référence".

2: je le renomme avec un numéro entrer par l'utilisateur (par
une
msgbox)

....


je n'ai pas trouvé comment copier un dossier et j'aimerais
savoir
si
il
est
possible de copier et directement de lui donner le nom que l'on
veut
lors
de
la copie

j'ai commencé mon code par ceci :

Public NDP as string ' NDP= Numéo de projet

Sub test()

If MsgBox("Est-ce que c'est une nouvelle offre ?", vbYesNo) =
vbYes
Then
NDP = InputBox("Entrer le numéro du nouveau projet"
&
Chr(13)
&
"Exemple: 1859")


End Sub


Merci d'avance de vos conseils
































Avatar
FFO
Salut à toi

As tu essayé de mettre une de ces lignes juste avant :
Application.DisplayAlerts = False
Application.EnableEvents = False

Fait le test et dis moi !!!


dans ce bout de code, j'enregistre un fichier. Malheureusement si le fichier
existe déjà une boite de dialogue me demandant si je veux l'écraser ou pas
s'affiche

est-il possible de récupérer une info de cette boite de dialogue automatique
?

NOE = InputBox("Entrer le numéro d'une offre existante" & Chr(13) &
"Exemple: 1859", "Numéro d'une offre existante")

Set Fso2 = CreateObject("Scripting.FileSystemObject")
Destination = "S:TechniqueAutomationProjets AutoProjet
EssaiCommercialDossier de reception" & NOE

If Fso2.FolderExists(Destination) Then
ChDrive "S"
ChDir Destination & "Calculation"
ICI===> ActiveWorkbook.SaveAs Filename:=(NOE)
GoTo Selec4:
Else
If MsgBox("Le dossier " & NOE & " n'existe pas !,
voulez-vous revenir au début ?", vbYesNo) = vbYes Then
GoTo Selec:
Else
GoTo Selec3:
End If

End If


merci de votre réponse



"Joachim Ruegsegger" a écrit dans le message de
news:
excellent, ça fonctionne parfaitement, faut que j'implémente encore des
contrôles pour voir si le dossier existe ou pas, etc...

mais en cette presque fin de journée, j'ai le sourire jusqu'aux oreilles

Merci pour ton aide !


"FFO" a écrit dans le message de news:

Rebonjour à toi

Ta ligne source est erroné
au lieu de
Source = "C:Dossier de référence"
mets
Source = "C:Dossier de référence"
Tu recopies le dossier "Dossier de référence" et non un répertoire à
l'interieur représenté avec le caractère "" qui le suit

Celà devrait mieux fonctionner

Dis moi !!!!


Excellent, je n'ai plus de problème de syntaxe (ça bloquait a cause des
parenthèses du copyfolder)

voici maintenant la "gueule" de mon bout de code pour la gestion du
dossier

If MsgBox("Est-ce que c'est une nouvelle offre ?", vbYesNo) = vbYes Then

NDC = InputBox("Entrer le numéro du nouveau projet" &
Chr(13) &
"Exemple: 1859")
Dim Fso As Scripting.FileSystemObject
Dim Source As String, Destination As String

Set Fso = CreateObject("Scripting.FileSystemObject")

Source = "C:Dossier de référence"
Destination = "C:"

'False/True option pour écraser les fichiers


Fso.CopyFolder Source, Destination & "toto", False

Else


End If


Malheureusement, à la ligne du copyfolder, j'ai un message d'erreur
"chemin
d'accès introuvable" alors que c'est C:toto, bizarre....

le microsoft sripting runtime est bien activé.

Le copyfolder peut copier le dossier et le créé directement ??? (j'ai
quand
meme fait un test en créant via l'explorateur de fichier un dossier
"toto"
vide...

ne perdont pas espoir, on avance vers la compréhension du VBA mdr

"FFO" a écrit dans le message de news:

Rebonjour à toi

En préambule as tu pensé à la Référence :

"reference Microsoft scripting Runtime"


Aprés cette vérification et si le PB persiste tu devrais d'abord
réaliser
le
cas le plus simple comme ceci :


Set Fso = CreateObject("Scripting.FileSystemObject")
Source = "C:CheminRépertoire de référence"
Destination = "C:Chemin"
Fso.CopyFolder Source, Destination & "Toto", False

regarde si le nouveau répertoire "Toto" est bien créé avec toute sa
panoplie
à l'identique du Répertoire de Référence

Puis change "Toto" avec InputBox("Entrer le numéro du nouveau
projet")

Nouvel essai en saisissant dans la Boîte de dialogue le nom du
répertoire
à
créer

Faire une nouvelle vérification

Si tout est Ok reste à mettre en place la partie :
& Chr(13) & "Nom du dossier et Exemple: 1859

J'ai retesté avec à la virgule prés ce que tu m'as mis dans ta réponse
avec
ta correction (effectivement il y avait une parenthèse fermante en
trop),
aucune anomalie à déplorer avec la création du répertoire

Réalise donc de proche en proche ce code et donne moi le résultat !!!!




Ca ne fonctionne pas mais je pense que c'est un problème de syntaxe
de la
dernière ligne :

Fso.CopyFolder Source, Destination & InputBox("Entrer le numéro du
nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859")), False

j'ai modifé comme ceci:

Fso.CopyFolder (Source, Destination & InputBox("Entrer le numéro du
nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859"), False)

mais il me dit qu'il y a toujours un problème de syntaxe

"Problème de compilation
attendu : = "

j'ai une autre question, les déclarations Dim, on peut les placers en
plein
milieu d'un code ou l'on doit les mettres tous au début du code comme
les
déclarations Public ?



"FFO" a écrit dans le message de
news:

Rebonjour à toi

C'était bien tenté mais pas à la hauteur du cahier des charges
Concernant le chemin du dossier partant du principe qu'il devait
être
identique à celui du fichier en cours d'utilisation tu le
retrouvais
dans
l'instruction :

ThisWorkbook.Path

avec remonté au dossier parent par la ligne :

Set ledossierNMoinsUn = ledossier.ParentFolder

Puis de créer le dossier avec le nom souhaité par la ligne :

MkDir (ledossierNMoinsUn & "" & InputBox("Entrer le numéro du
nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859"))
reprenant le chemin établit sous "le nom ledossierNMoinsUn"

J'espère avoir éclairci ta lanterne

Concernant tes attentes je te propose donc en lieu et place de ma
première
suggestion ce code :

Dim Fso As Scripting.FileSystemObject
Dim Source As String, Destination As String

Set Fso = CreateObject("Scripting.FileSystemObject")

Source = "C:CheminFichier de référence"
Destination = "C:Chemin"

'False/True option pour écraser les fichiers
Fso.CopyFolder Source, Destination & InputBox("Entrer le numéro du
nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859")), False

Ne pas oublier de mettre dans les références :

"reference Microsoft scripting Runtime"

Je pense que tu devrais être beaucoup plus satisfait !!!
Annonce moi la bonne nouvelle !!!!


bonne idée sauf que dans ce dossier de référence, il y a des
sous-dossiers
prédéfini avec des fichiers de base à remplir, etc... de toutes
manières
il
faut que je puisse faire de la copie de dossier.

dans ton exemple, je ne comprend pas très bien où je dois mettre
les
chemins
de dossier, désolé, c'est la première fois que je fais de la manip
de
fichier/dossier avec VBA...


merci de ton aide
"FFO" a écrit dans le message de
news:

Salut à toi
Je te propose au lieu de le copier de le créer en lui affectant
le
nom
de
ton choix avec ce code :

Dim filesysobj As Object
Dim ledossier As Object
Dim ledossierNMoinsUn As Object
Set filesysobj = CreateObject("Scripting.FileSystemObject")
Set ledossier = filesysobj.GetFolder(ThisWorkbook.Path)
Set ledossierNMoinsUn = ledossier.ParentFolder
MkDir (ledossierNMoinsUn & "" & InputBox("Entrer le numéro du
nouveau
projet" & Chr(13) & "Nom du dossier et Exemple: 1859"))

celà peut-il convenir

Dit moi !!!


Bonjour,

à la fin de mon code j'aimerais enregistrer mon classeur dans
un
dossier
que
je devrais manipuler:

1: il (le dossier cible) est une copie d'un "dossier de
référence".

2: je le renomme avec un numéro entrer par l'utilisateur (par
une
msgbox)

....


je n'ai pas trouvé comment copier un dossier et j'aimerais
savoir
si
il




















1 2