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
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" <jruegsegger@daril-sa.com> a écrit dans le message
de
news: OMK34EDrHHA.4100@TK2MSFTNGP06.phx.gbl...
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" <FFO@discussions.microsoft.com> a écrit dans le message de news:
C7A5DEC7-CDA4-4430-AC60-CBE1C46CC8DB@microsoft.com...
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" <FFO@discussions.microsoft.com> a écrit dans le message de
news:
65E90B1B-6F22-49D6-84C4-F5F68BB06206@microsoft.com...
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" <FFO@discussions.microsoft.com> a écrit dans le message de
news:
6D5417F5-4FFE-4951-9C6D-82490DEFD8EE@microsoft.com...
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" <FFO@discussions.microsoft.com> a écrit dans le message
de
news:
F6D51DA4-1C22-4BF7-8F2B-959DAE880344@microsoft.com...
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
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
le problème c'est que j'aimerais exploiter cette boîte de dialogue...
j'ai modifé comme ceci, mais ça me signale une erreur de syntaxe
ChDrive "S"
ChDir Destination & "Calculation"
reponse = ActiveWorkbook.SaveAs(NOE)
If reponse = vbNo Then
GoTo Selec3:
End If
cordialement
JR
"FFO" a écrit dans le message de news: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
le problème c'est que j'aimerais exploiter cette boîte de dialogue...
j'ai modifé comme ceci, mais ça me signale une erreur de syntaxe
ChDrive "S"
ChDir Destination & "Calculation"
reponse = ActiveWorkbook.SaveAs(NOE)
If reponse = vbNo Then
GoTo Selec3:
End If
cordialement
JR
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
5A03CA51-5236-48B5-B84E-986923B98CF6@microsoft.com...
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" <jruegsegger@daril-sa.com> a écrit dans le message
de
news: OMK34EDrHHA.4100@TK2MSFTNGP06.phx.gbl...
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" <FFO@discussions.microsoft.com> a écrit dans le message de news:
C7A5DEC7-CDA4-4430-AC60-CBE1C46CC8DB@microsoft.com...
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" <FFO@discussions.microsoft.com> a écrit dans le message de
news:
65E90B1B-6F22-49D6-84C4-F5F68BB06206@microsoft.com...
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" <FFO@discussions.microsoft.com> a écrit dans le message de
news:
6D5417F5-4FFE-4951-9C6D-82490DEFD8EE@microsoft.com...
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" <FFO@discussions.microsoft.com> a écrit dans le message
de
le problème c'est que j'aimerais exploiter cette boîte de dialogue...
j'ai modifé comme ceci, mais ça me signale une erreur de syntaxe
ChDrive "S"
ChDir Destination & "Calculation"
reponse = ActiveWorkbook.SaveAs(NOE)
If reponse = vbNo Then
GoTo Selec3:
End If
cordialement
JR
"FFO" a écrit dans le message de news: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
le problème c'est que j'aimerais exploiter cette boîte de dialogue...
j'ai modifé comme ceci, mais ça me signale une erreur de syntaxe
ChDrive "S"
ChDir Destination & "Calculation"
reponse = ActiveWorkbook.SaveAs(NOE)
If reponse = vbNo Then
GoTo Selec3:
End If
cordialement
JR
"FFO" a écrit dans le message de news: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
le problème c'est que j'aimerais exploiter cette boîte de dialogue...
j'ai modifé comme ceci, mais ça me signale une erreur de syntaxe
ChDrive "S"
ChDir Destination & "Calculation"
reponse = ActiveWorkbook.SaveAs(NOE)
If reponse = vbNo Then
GoTo Selec3:
End If
cordialement
JR
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
5A03CA51-5236-48B5-B84E-986923B98CF6@microsoft.com...
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" <jruegsegger@daril-sa.com> a écrit dans le message
de
news: OMK34EDrHHA.4100@TK2MSFTNGP06.phx.gbl...
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" <FFO@discussions.microsoft.com> a écrit dans le message de news:
C7A5DEC7-CDA4-4430-AC60-CBE1C46CC8DB@microsoft.com...
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" <FFO@discussions.microsoft.com> a écrit dans le message de
news:
65E90B1B-6F22-49D6-84C4-F5F68BB06206@microsoft.com...
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" <FFO@discussions.microsoft.com> a écrit dans le message de
news:
6D5417F5-4FFE-4951-9C6D-82490DEFD8EE@microsoft.com...
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" <FFO@discussions.microsoft.com> a écrit dans le message
de
le problème c'est que j'aimerais exploiter cette boîte de dialogue...
j'ai modifé comme ceci, mais ça me signale une erreur de syntaxe
ChDrive "S"
ChDir Destination & "Calculation"
reponse = ActiveWorkbook.SaveAs(NOE)
If reponse = vbNo Then
GoTo Selec3:
End If
cordialement
JR
"FFO" a écrit dans le message de news: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
Rebonjour encore
j'ai une solution !!!!
Tu mets ce code :
If Dir("C:CheminFichier.xls", vbDirectory) = "" Then
ActiveWorkbook.SaveAs (NOE)
Else
Goto Selec3
Code
Selec3:
Code
C:CheminFichier.xls doit être le chemin et le nom de ton fichier que
représente ta variable NOE
Je pense qu'avec ça tu devrais t'en sortir
Dis moi !!!!le problème c'est que j'aimerais exploiter cette boîte de dialogue...
j'ai modifé comme ceci, mais ça me signale une erreur de syntaxe
ChDrive "S"
ChDir Destination & "Calculation"
reponse = ActiveWorkbook.SaveAs(NOE)
If reponse = vbNo Then
GoTo Selec3:
End If
cordialement
JR
"FFO" a écrit dans le message de news: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
Rebonjour encore
j'ai une solution !!!!
Tu mets ce code :
If Dir("C:CheminFichier.xls", vbDirectory) = "" Then
ActiveWorkbook.SaveAs (NOE)
Else
Goto Selec3
Code
Selec3:
Code
C:CheminFichier.xls doit être le chemin et le nom de ton fichier que
représente ta variable NOE
Je pense qu'avec ça tu devrais t'en sortir
Dis moi !!!!
le problème c'est que j'aimerais exploiter cette boîte de dialogue...
j'ai modifé comme ceci, mais ça me signale une erreur de syntaxe
ChDrive "S"
ChDir Destination & "Calculation"
reponse = ActiveWorkbook.SaveAs(NOE)
If reponse = vbNo Then
GoTo Selec3:
End If
cordialement
JR
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
5A03CA51-5236-48B5-B84E-986923B98CF6@microsoft.com...
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" <jruegsegger@daril-sa.com> a écrit dans le
message
de
news: OMK34EDrHHA.4100@TK2MSFTNGP06.phx.gbl...
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" <FFO@discussions.microsoft.com> a écrit dans le message de
news:
C7A5DEC7-CDA4-4430-AC60-CBE1C46CC8DB@microsoft.com...
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" <FFO@discussions.microsoft.com> a écrit dans le message de
news:
65E90B1B-6F22-49D6-84C4-F5F68BB06206@microsoft.com...
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" <FFO@discussions.microsoft.com> a écrit dans le message
de
news:
6D5417F5-4FFE-4951-9C6D-82490DEFD8EE@microsoft.com...
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" <FFO@discussions.microsoft.com> a écrit dans le
message
de
Rebonjour encore
j'ai une solution !!!!
Tu mets ce code :
If Dir("C:CheminFichier.xls", vbDirectory) = "" Then
ActiveWorkbook.SaveAs (NOE)
Else
Goto Selec3
Code
Selec3:
Code
C:CheminFichier.xls doit être le chemin et le nom de ton fichier que
représente ta variable NOE
Je pense qu'avec ça tu devrais t'en sortir
Dis moi !!!!le problème c'est que j'aimerais exploiter cette boîte de dialogue...
j'ai modifé comme ceci, mais ça me signale une erreur de syntaxe
ChDrive "S"
ChDir Destination & "Calculation"
reponse = ActiveWorkbook.SaveAs(NOE)
If reponse = vbNo Then
GoTo Selec3:
End If
cordialement
JR
"FFO" a écrit dans le message de news: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
excellent merci !
une petite question encore...
je fais une recherche de fichier et j'utilise la propriété .Foundfiles(I)
pour récupéré le chemin du fichier.
est-ce qu'il existe une propriété qui récupère seulement le nom du fichier +
son extension ?
cordialement
JR
"FFO" a écrit dans le message de news:Rebonjour encore
j'ai une solution !!!!
Tu mets ce code :
If Dir("C:CheminFichier.xls", vbDirectory) = "" Then
ActiveWorkbook.SaveAs (NOE)
Else
Goto Selec3
Code
Selec3:
Code
C:CheminFichier.xls doit être le chemin et le nom de ton fichier que
représente ta variable NOE
Je pense qu'avec ça tu devrais t'en sortir
Dis moi !!!!le problème c'est que j'aimerais exploiter cette boîte de dialogue...
j'ai modifé comme ceci, mais ça me signale une erreur de syntaxe
ChDrive "S"
ChDir Destination & "Calculation"
reponse = ActiveWorkbook.SaveAs(NOE)
If reponse = vbNo Then
GoTo Selec3:
End If
cordialement
JR
"FFO" a écrit dans le message de news: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
excellent merci !
une petite question encore...
je fais une recherche de fichier et j'utilise la propriété .Foundfiles(I)
pour récupéré le chemin du fichier.
est-ce qu'il existe une propriété qui récupère seulement le nom du fichier +
son extension ?
cordialement
JR
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
523FA00B-29E5-44B8-9239-B4E994EAB81B@microsoft.com...
Rebonjour encore
j'ai une solution !!!!
Tu mets ce code :
If Dir("C:CheminFichier.xls", vbDirectory) = "" Then
ActiveWorkbook.SaveAs (NOE)
Else
Goto Selec3
Code
Selec3:
Code
C:CheminFichier.xls doit être le chemin et le nom de ton fichier que
représente ta variable NOE
Je pense qu'avec ça tu devrais t'en sortir
Dis moi !!!!
le problème c'est que j'aimerais exploiter cette boîte de dialogue...
j'ai modifé comme ceci, mais ça me signale une erreur de syntaxe
ChDrive "S"
ChDir Destination & "Calculation"
reponse = ActiveWorkbook.SaveAs(NOE)
If reponse = vbNo Then
GoTo Selec3:
End If
cordialement
JR
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
5A03CA51-5236-48B5-B84E-986923B98CF6@microsoft.com...
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" <jruegsegger@daril-sa.com> a écrit dans le
message
de
news: OMK34EDrHHA.4100@TK2MSFTNGP06.phx.gbl...
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" <FFO@discussions.microsoft.com> a écrit dans le message de
news:
C7A5DEC7-CDA4-4430-AC60-CBE1C46CC8DB@microsoft.com...
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" <FFO@discussions.microsoft.com> a écrit dans le message de
news:
65E90B1B-6F22-49D6-84C4-F5F68BB06206@microsoft.com...
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" <FFO@discussions.microsoft.com> a écrit dans le message
de
news:
6D5417F5-4FFE-4951-9C6D-82490DEFD8EE@microsoft.com...
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
excellent merci !
une petite question encore...
je fais une recherche de fichier et j'utilise la propriété .Foundfiles(I)
pour récupéré le chemin du fichier.
est-ce qu'il existe une propriété qui récupère seulement le nom du fichier +
son extension ?
cordialement
JR
"FFO" a écrit dans le message de news:Rebonjour encore
j'ai une solution !!!!
Tu mets ce code :
If Dir("C:CheminFichier.xls", vbDirectory) = "" Then
ActiveWorkbook.SaveAs (NOE)
Else
Goto Selec3
Code
Selec3:
Code
C:CheminFichier.xls doit être le chemin et le nom de ton fichier que
représente ta variable NOE
Je pense qu'avec ça tu devrais t'en sortir
Dis moi !!!!le problème c'est que j'aimerais exploiter cette boîte de dialogue...
j'ai modifé comme ceci, mais ça me signale une erreur de syntaxe
ChDrive "S"
ChDir Destination & "Calculation"
reponse = ActiveWorkbook.SaveAs(NOE)
If reponse = vbNo Then
GoTo Selec3:
End If
cordialement
JR
"FFO" a écrit dans le message de news: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