OVH Cloud OVH Cloud

Personnalisation de la date en VBA

10 réponses
Avatar
Michel
Bonjour a toutes et a tous,

Désolé de vous solicité aussi tôt.
Je débute en VBA et ses variables.
Voila je cherche a utilisé la date system dans le nom de fichier exporté et
donc de remplacer les "/" par des "-"

Bordereau d'export >>>>> 17-09-2006 Bordereau d'export.rtf

J'ai écrit :
----------------------------------
Private Sub Commande1_Click()
Dim Today As Date, strFileNew As String
strFileNew = "Bordereau d'export"
Today = Now
DateNew = Replace(Today, "" / "", "" - "")
DoCmd.OutputTo acReport, "Ville", "RichTextFormat(*.rtf)", "DateNew &
strFileNew, False, """
End Sub
----------------------------------
La ligne:

DoCmd.OutputTo acReport, "Ville", "RichTextFormat(*.rtf)", "DateNew &
strFileNew, False, """

produit une erreur et est coloré en jaune

J'aurais a utilisé ce type de changement sous de multiple forme tant date
que texte.
Si quelqu'un peut m'expliqué ce qu'il faut faire.

D'avance Merci
Michel

10 réponses

Avatar
Sylvain Lafontaine
Me semble que vous avez un guillemet de trop (ou manquant) à la fin: """ au
lieu de "".

Je ne comprends pas également le doublage de vos guillemets dans la commande
Replace.

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: http://cerbermail.com/?QugbLEWINF


"Michel" wrote in message
news:eeiko4$e7g$
Bonjour a toutes et a tous,

Désolé de vous solicité aussi tôt.
Je débute en VBA et ses variables.
Voila je cherche a utilisé la date system dans le nom de fichier exporté
et donc de remplacer les "/" par des "-"

Bordereau d'export >>>>> 17-09-2006 Bordereau d'export.rtf

----------------------------------
Private Sub Commande1_Click()
Dim Today As Date, strFileNew As String
strFileNew = "Bordereau d'export"
Today = Now
DateNew = Replace(Today, "" / "", "" - "")
DoCmd.OutputTo acReport, "Ville", "RichTextFormat(*.rtf)", "DateNew &
strFileNew, False, """
End Sub
----------------------------------
La ligne:

DoCmd.OutputTo acReport, "Ville", "RichTextFormat(*.rtf)", "DateNew &
strFileNew, False, """

produit une erreur et est coloré en jaune

J'aurais a utilisé ce type de changement sous de multiple forme tant date
que texte.
Si quelqu'un peut m'expliqué ce qu'il faut faire.

D'avance Merci
Michel




Avatar
Michel
Bonjour Sylvain

J'ai modifié en :
----------------------------------------
Private Sub Commande1_Click()
Dim Today As Date, strFileNew As String, strChemin As String
strChemin = "c:Club_Ligue"
strFileNew = "Bordereau d'Export"
Today = Now
DateNew = Replace(Today, " / ", " - ")
DoCmd.OutputTo acReport, "Ville", "RichTextFormat(*.rtf)", "DateNew &
strFileNew, False, "
End Sub
-----------------------------------------
Je n'ai plus d'erreur mais si il a généré le fichier je ne sais pas ou ?
Lorsque je met deux guillement a la fin Access en rajoute un troisième
Lorsque je n'en laisse qu'un seul, il ne conteste pas ?

Si vous avez une autre idée pour obtenir le résultat, je suis preneur

Merci pour le coup de main

Michel

"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)> a
écrit dans le message de news:
Me semble que vous avez un guillemet de trop (ou manquant) à la fin: """
au lieu de "".

Je ne comprends pas également le doublage de vos guillemets dans la
commande Replace.

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: http://cerbermail.com/?QugbLEWINF


"Michel" wrote in message
news:eeiko4$e7g$
Bonjour a toutes et a tous,

Désolé de vous solicité aussi tôt.
Je débute en VBA et ses variables.
Voila je cherche a utilisé la date system dans le nom de fichier exporté
et donc de remplacer les "/" par des "-"

Bordereau d'export >>>>> 17-09-2006 Bordereau d'export.rtf

----------------------------------
Private Sub Commande1_Click()
Dim Today As Date, strFileNew As String
strFileNew = "Bordereau d'export"
Today = Now
DateNew = Replace(Today, "" / "", "" - "")
DoCmd.OutputTo acReport, "Ville", "RichTextFormat(*.rtf)", "DateNew &
strFileNew, False, """
End Sub
----------------------------------
La ligne:

DoCmd.OutputTo acReport, "Ville", "RichTextFormat(*.rtf)", "DateNew &
strFileNew, False, """

produit une erreur et est coloré en jaune

J'aurais a utilisé ce type de changement sous de multiple forme tant date
que texte.
Si quelqu'un peut m'expliqué ce qu'il faut faire.

D'avance Merci
Michel








Avatar
Eric
Bonjour,

Tu ne retrouves pas le fichier car tu ne rajoutes pas au nom l'extension
.rtf. Dautre part, le guillemet avant DateNew dans la commande OutputTo
n'est pas utile, ce qui fait que le fichier est mal nommé et t'impose de
mettre des " en fin.

Personnellement, je n'utiliserai pas la fonction Replace() pour la mise
en forme de la date mais la fonction Format() qui retourne une String.

Je ferai quelque chose comme :

Sub Commande1_Click()
Dim strChemin As String
Dim strFileNew As String
Dim strFileNameExit As String
strChemin = "c:Club_Ligue"
strFileNew = "Bordereau d'Export.rtf"
strFileNameExit = strChemin & Format(Date, "dd-mm-yyyy") & " " &
strFileNew
DoCmd.OutputTo acReport, "Ville", "RichTextFormat(*.rtf)",
strFileNameExit, False
End Sub

mais si tu dois avoir plusiers fichiers dans ton répertoire ayant le
même nom mais dont seul le préfixe de date changerait, je préconiserai
le format AAAA-MM-JJ pour faciliter les recherches via l'explorateur.

je mettrai :
strFileNameExit = strChemin & Format(Date, "yyyy-mm-dd") & " " & strFileNew
au lieu de :
strFileNameExit = strChemin & Format(Date, "dd-mm-yyyy") & " " & strFileNew

Bonjour Sylvain

J'ai modifié en :
----------------------------------------
Private Sub Commande1_Click()
Dim Today As Date, strFileNew As String, strChemin As String
strChemin = "c:Club_Ligue"
strFileNew = "Bordereau d'Export"
Today = Now
DateNew = Replace(Today, " / ", " - ")
DoCmd.OutputTo acReport, "Ville", "RichTextFormat(*.rtf)", "DateNew &
strFileNew, False, "
End Sub
-----------------------------------------
Je n'ai plus d'erreur mais si il a généré le fichier je ne sais pas ou ?
Lorsque je met deux guillement a la fin Access en rajoute un troisième
Lorsque je n'en laisse qu'un seul, il ne conteste pas ?

Si vous avez une autre idée pour obtenir le résultat, je suis preneur

Merci pour le coup de main

Michel




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Michel
Bonjour Eric,

content de te lire.
Ca progresse bien et je foisonne d'idées d'application.

Encore une petite difficulté

le fichier de départ s'appelle "Beaumont_AETN-02-09-2006.exl"
La date de création du fichier au club.

A l'arrivée je souhaite "Beaumont_AETN-17-09-2006-Bordereau de couples.rtf"
La date de traitement à la Ligue

Alors que je génère ""Beaumont_AETN-02-09-2006.xls-17-09-2006-Bordereau de
couples.rtf"

C'est à dire le nom qui a été sauvegardé par

strCheminTemp = "c:cndsimportTemp"
FileCopy strChemin & strOldFile, strCheminTemp & strOldFile

Peut on sur cette sauvegarde éliminer "02-09-2006.xls"

sachant qu'il ne s'agit que de récupérer le nom pour le bordereau de couple
et est supprimé ensuite en fin de procédure

J

------------------------------------------
Private Sub Commande37_Click()

' prepare le fichier d'import

Dim strChemin As String, strOldFile As String, strCheminNew As String
Dim strNewFile As String, strFileNew As String, strCheminTemp As String
strChemin = "c:cndsimport"
strCheminTemp = "c:cndsimportTemp"
strCheminNew = "c:Club_Ligueimport"
strNewFile = "InscriptionCNDS.xls"
strFileNew = ".xls"
' s'il existe déjà un fichier portant ce nom, on le supprime
If Dir(strChemin & strNewFile) <> "" Then Kill strChemin & strNewFile
strOldFile = Dir(strChemin & "*" & strFileNew)
' Sauvegarde le fichier d'import
FileCopy strChemin & strOldFile, strCheminNew & strOldFile
FileCopy strChemin & strOldFile, strCheminTemp & strOldFile
' Renomme le fichier d'import
If strOldFile <> "" Then
Name strChemin & strOldFile As strChemin & strNewFile
End If


Suite Suite Suite


Dim strCheminCouple As String, strNewCouple As String
Dim strFileNew2 As String
Dim strFileNameExit As String
strCheminTemp = "c:cndsimportTemp"
strChemin = "c:Club_Ligue"
strOldFile = Dir(strCheminTemp & "*" & strFileNew)
strFileNew = "Bordereau de couples"
strFileNew2 = ".rtf"
strFileNameExit = strChemin & strOldFile & " " & Format(Date,
"dd-mm-yyyy") & "-" & strFileNew & strFileNew2
If DCount("*", "Intégration-Bordereaux-Couples-Rqt") > 0 Then
DoCmd.OutputTo acReport, "Intégration-Bordereaux-Couples",
"RichTextFormat(*.rtf)", strFileNameExit, False
MsgBox "Un bordereau de couples a été généré dans C:Club_Ligue !",
vbInformation, "Bordereau Couple"
End If

MsgBox "La mise à jour des membres du Club terminée !", vbInformation,
"LicenciésCNDS"
DoCmd.Close acForm, "Dlg_Intégration"

Suite Suite Suite

End sub




"Eric" a écrit dans le message de news:
%230L$
Bonjour,

Tu ne retrouves pas le fichier car tu ne rajoutes pas au nom l'extension
.rtf. Dautre part, le guillemet avant DateNew dans la commande OutputTo
n'est pas utile, ce qui fait que le fichier est mal nommé et t'impose de
mettre des " en fin.

Personnellement, je n'utiliserai pas la fonction Replace() pour la mise en
forme de la date mais la fonction Format() qui retourne une String.

Je ferai quelque chose comme :

Sub Commande1_Click()
Dim strChemin As String
Dim strFileNew As String
Dim strFileNameExit As String
strChemin = "c:Club_Ligue"
strFileNew = "Bordereau d'Export.rtf"
strFileNameExit = strChemin & Format(Date, "dd-mm-yyyy") & " " &
strFileNew
DoCmd.OutputTo acReport, "Ville", "RichTextFormat(*.rtf)",
strFileNameExit, False
End Sub

mais si tu dois avoir plusiers fichiers dans ton répertoire ayant le même
nom mais dont seul le préfixe de date changerait, je préconiserai le
format AAAA-MM-JJ pour faciliter les recherches via l'explorateur.

je mettrai :
strFileNameExit = strChemin & Format(Date, "yyyy-mm-dd") & " " &
strFileNew
au lieu de :
strFileNameExit = strChemin & Format(Date, "dd-mm-yyyy") & " " &
strFileNew

Bonjour Sylvain

J'ai modifié en :
----------------------------------------
Private Sub Commande1_Click()
Dim Today As Date, strFileNew As String, strChemin As String
strChemin = "c:Club_Ligue"
strFileNew = "Bordereau d'Export"
Today = Now
DateNew = Replace(Today, " / ", " - ")
DoCmd.OutputTo acReport, "Ville", "RichTextFormat(*.rtf)", "DateNew &
strFileNew, False, "
End Sub
-----------------------------------------
Je n'ai plus d'erreur mais si il a généré le fichier je ne sais pas ou ?
Lorsque je met deux guillement a la fin Access en rajoute un troisième
Lorsque je n'en laisse qu'un seul, il ne conteste pas ?

Si vous avez une autre idée pour obtenir le résultat, je suis preneur

Merci pour le coup de main

Michel




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
Eric
Bonjour Michel,

Je me perds un peu dans ton code ;-)
Si tes noms de fichiers originaux sont toujours de la forme
XXXXXXX-jj-mm-aaaa.xls ( ou X...X représente une suite quelconque de
caractères), tu peux faire comme ça:

Dans la partie déclaration des variables de la procédure:
Dim strOldFile2 As String

puis dans la 1ere partie de la procédure entre les 2 FileCopy
transformer comme suit:
strOldFile = Dir(strChemin & "*" & strFileNew)
FileCopy strChemin & strOldFile, strCheminNew & strOldFile
strOldFile2 = Left(strOldFile, Len(strOldFile) - 15)
FileCopy strChemin & strOldFile, strCheminTemp & strOldFile2 & ".xls"

A tester car j'ai fait ça de visu.
Remarque:
A mon avis, tu dois pouvoir supprimer dans la deuxième partie de ta
procédure l'instruction d'affectation
strCheminTemp = "c:cndsimportTemp"
sauf si dans les (suite suite suite) tu as modifié la valeur de
strCheminTemp

...
Encore une petite difficulté

le fichier de départ s'appelle "Beaumont_AETN-02-09-2006.exl"
La date de création du fichier au club.

A l'arrivée je souhaite "Beaumont_AETN-17-09-2006-Bordereau de couples.rtf"
La date de traitement à la Ligue

Alors que je génère ""Beaumont_AETN-02-09-2006.xls-17-09-2006-Bordereau de
couples.rtf"

C'est à dire le nom qui a été sauvegardé par

strCheminTemp = "c:cndsimportTemp"
FileCopy strChemin & strOldFile, strCheminTemp & strOldFile

Peut on sur cette sauvegarde éliminer "02-09-2006.xls"
...


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Michel
Bonsoir Eric,

je n'ai pas pu regarder le forum plus tôt,
Je ne suis pas ici demain, mais dés mardi, j'adapte et te tiens au courant.
Mais oui xxxxxxxxxxxxxavant -jj-mm-aaaa.xls représente bien une suite
quelconque de caractéres.
Je crois qu'avec ce que tu m'a montré je devrais y arriver.

Je te remercie énormement pour ta patience,
je crois que je suis en train de me prendre au jeu avec VBA,
cela fais des années que j'avais peur d'y toucher.

Encore Merci
Michel




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

Bonjour Michel,

Je me perds un peu dans ton code ;-)
Si tes noms de fichiers originaux sont toujours de la forme
XXXXXXX-jj-mm-aaaa.xls ( ou X...X représente une suite quelconque de
caractères), tu peux faire comme ça:

Dans la partie déclaration des variables de la procédure:
Dim strOldFile2 As String

puis dans la 1ere partie de la procédure entre les 2 FileCopy transformer
comme suit:
strOldFile = Dir(strChemin & "*" & strFileNew)
FileCopy strChemin & strOldFile, strCheminNew & strOldFile
strOldFile2 = Left(strOldFile, Len(strOldFile) - 15)
FileCopy strChemin & strOldFile, strCheminTemp & strOldFile2 & ".xls"

A tester car j'ai fait ça de visu.
Remarque:
A mon avis, tu dois pouvoir supprimer dans la deuxième partie de ta
procédure l'instruction d'affectation
strCheminTemp = "c:cndsimportTemp"
sauf si dans les (suite suite suite) tu as modifié la valeur de
strCheminTemp

...
Encore une petite difficulté

le fichier de départ s'appelle "Beaumont_AETN-02-09-2006.exl"
La date de création du fichier au club.

A l'arrivée je souhaite "Beaumont_AETN-17-09-2006-Bordereau de
couples.rtf"
La date de traitement à la Ligue

Alors que je génère ""Beaumont_AETN-02-09-2006.xls-17-09-2006-Bordereau
de couples.rtf"

C'est à dire le nom qui a été sauvegardé par

strCheminTemp = "c:cndsimportTemp"
FileCopy strChemin & strOldFile, strCheminTemp & strOldFile

Peut on sur cette sauvegarde éliminer "02-09-2006.xls"
...


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
Michel
Bonjour Eric,

Je viens de mettre en application ce que tu m'as envoyé,
FileCopy strChemin & strOldFile, strCheminTemp & strOldFile2 & ".xls"


j'ai juste enlevé &".xls" a la fin car je n'en ai pas besoin dans le nom du
bordereau.rtf qu'il va généré
ça marche impec.


Celle ci devrai créer une sauvegarde des bases dorsale avant les
intégrations, mais la ligne FileCopy génére une erreur.
Je pense que cela viens de "*.mdb" que je ne sais pas comment traiter ?
Je ne sais pas ou est autorisé le "*" et ou il est proscrit ?

Frontale : LicenciésCNDS.mdb
Dorsale : xxxxxxxxx.mdb
------------------------------------------------------------------
Dim strCheminSauv As String
Dim trChemin1 As String
Dim strSauvFile As String
strChemin1 = "C:CNDS"
strCheminSauv = "C:CNDSSauvegarde"
strSauvFile = "*.mdb"
FileCopy strChemin1 & strSauvFile, strCheminSauv & strSauvFile
Kill "C:CNDSImportSauvegardelicenciésCNDS.mdb"
-------------------------------------------------------------------

Encore merci
Michel





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

Bonjour Michel,

Je me perds un peu dans ton code ;-)
Si tes noms de fichiers originaux sont toujours de la forme
XXXXXXX-jj-mm-aaaa.xls ( ou X...X représente une suite quelconque de
caractères), tu peux faire comme ça:

Dans la partie déclaration des variables de la procédure:
Dim strOldFile2 As String

puis dans la 1ere partie de la procédure entre les 2 FileCopy transformer
comme suit:
strOldFile = Dir(strChemin & "*" & strFileNew)
FileCopy strChemin & strOldFile, strCheminNew & strOldFile
strOldFile2 = Left(strOldFile, Len(strOldFile) - 15)
FileCopy strChemin & strOldFile, strCheminTemp & strOldFile2 & ".xls"

A tester car j'ai fait ça de visu.
Remarque:
A mon avis, tu dois pouvoir supprimer dans la deuxième partie de ta
procédure l'instruction d'affectation
strCheminTemp = "c:cndsimportTemp"
sauf si dans les (suite suite suite) tu as modifié la valeur de
strCheminTemp

...
Encore une petite difficulté

le fichier de départ s'appelle "Beaumont_AETN-02-09-2006.exl"
La date de création du fichier au club.

A l'arrivée je souhaite "Beaumont_AETN-17-09-2006-Bordereau de
couples.rtf"
La date de traitement à la Ligue

Alors que je génère ""Beaumont_AETN-02-09-2006.xls-17-09-2006-Bordereau
de couples.rtf"

C'est à dire le nom qui a été sauvegardé par

strCheminTemp = "c:cndsimportTemp"
FileCopy strChemin & strOldFile, strCheminTemp & strOldFile

Peut on sur cette sauvegarde éliminer "02-09-2006.xls"
...


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
Eric
Bonjour Michel,

La commande FileCopy ne permet de copier qu'un seul fichier, donc ne
supporte pas le *.mdb.
Si tu n'as qu'un seul fichier .mdb dans le réperoire de départ, il faut
récupérer son nom par la commande Dir. Si plusieurs, tu peux boucler sur
Dir (voir l'exemple dans l'aide) mais il est préférable d'utiliser
Application.FileSearch pour récupérer tous les fichiers d'un répertoire
puis les copier.
Il ne faut pas que tes fichiers soient en cours d'utilisation pour les
copier.

Tu pourrais faire un truc du genre:
Sub zz()
' Ajouter la référence Microsoft Office x.x Object Library
Dim strCheminSauv As String
Dim strChemin1 As String
Dim i As Integer, NomFic As String
On Error Resume Next
strChemin1 = "C:CNDS"
strCheminSauv = "C:CNDSSauvegarde"
With Application.FileSearch
.NewSearch
.LookIn = strChemin1
.FileType = msoFileTypeDatabases
If .Execute() > 0 Then
DoCmd.Hourglass True
For i = 1 To .FoundFiles.Count
' on récupère le nom du fichier+extension sans le chemin
NomFic = Mid(.FoundFiles(i), InStrRev(.FoundFiles(i),
"") + 1)
FileCopy .FoundFiles(i), strCheminSauv & NomFic
Next i
DoCmd.Hourglass False
MsgBox "Copie terminée", vbInformation
Else
MsgBox "Aucun fichier à copier"
End If
End With
End Sub

A tester et adapter, manque la ligne Kill

Bonjour Eric,

Je viens de mettre en application ce que tu m'as envoyé,

FileCopy strChemin & strOldFile, strCheminTemp & strOldFile2 & ".xls"



j'ai juste enlevé &".xls" a la fin car je n'en ai pas besoin dans le nom du
bordereau.rtf qu'il va généré
ça marche impec.


Celle ci devrai créer une sauvegarde des bases dorsale avant les
intégrations, mais la ligne FileCopy génére une erreur.
Je pense que cela viens de "*.mdb" que je ne sais pas comment traiter ?
Je ne sais pas ou est autorisé le "*" et ou il est proscrit ?

Frontale : LicenciésCNDS.mdb
Dorsale : xxxxxxxxx.mdb
------------------------------------------------------------------
Dim strCheminSauv As String
Dim trChemin1 As String
Dim strSauvFile As String
strChemin1 = "C:CNDS"
strCheminSauv = "C:CNDSSauvegarde"
strSauvFile = "*.mdb"
FileCopy strChemin1 & strSauvFile, strCheminSauv & strSauvFile
Kill "C:CNDSImportSauvegardelicenciésCNDS.mdb"
-------------------------------------------------------------------

Encore merci
Michel





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


Bonjour Michel,

Je me perds un peu dans ton code ;-)
Si tes noms de fichiers originaux sont toujours de la forme
XXXXXXX-jj-mm-aaaa.xls ( ou X...X représente une suite quelconque de
caractères), tu peux faire comme ça:

Dans la partie déclaration des variables de la procédure:
Dim strOldFile2 As String

puis dans la 1ere partie de la procédure entre les 2 FileCopy transformer
comme suit:
strOldFile = Dir(strChemin & "*" & strFileNew)
FileCopy strChemin & strOldFile, strCheminNew & strOldFile
strOldFile2 = Left(strOldFile, Len(strOldFile) - 15)
FileCopy strChemin & strOldFile, strCheminTemp & strOldFile2 & ".xls"

A tester car j'ai fait ça de visu.
Remarque:
A mon avis, tu dois pouvoir supprimer dans la deuxième partie de ta
procédure l'instruction d'affectation
strCheminTemp = "c:cndsimportTemp"
sauf si dans les (suite suite suite) tu as modifié la valeur de
strCheminTemp


...
Encore une petite difficulté

le fichier de départ s'appelle "Beaumont_AETN-02-09-2006.exl"
La date de création du fichier au club.

A l'arrivée je souhaite "Beaumont_AETN-17-09-2006-Bordereau de
couples.rtf"
La date de traitement à la Ligue

Alors que je génère ""Beaumont_AETN-02-09-2006.xls-17-09-2006-Bordereau
de couples.rtf"

C'est à dire le nom qui a été sauvegardé par

strCheminTemp = "c:cndsimportTemp"
FileCopy strChemin & strOldFile, strCheminTemp & strOldFile

Peut on sur cette sauvegarde éliminer "02-09-2006.xls"
...


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr






--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
Michel
Bonjour Eric,

Je me doutais de quelque chose de ce genre, Je n'ai que 2 Fichiers .mdb
XXXXXXXXXX.mdb et LicenciésCNDS.mdb
Je ne souhaite sauvegarder que XXXXXXXXXXX.mdb
Mais comme je voulais le fairte a partir de l'application les fichiers sont
en cours d'utilisation et donc pas faisable.

Dans la mesure ou a l'ouverture de LicenciésCNDS, qui est la frontal, une
macro "autoexec" supprimes les tables attachées, puis attache de nouvelles
tables du XXXXXXXXXX.mdb correspondant a l'identité de l'utilisateur en
cours.

Pense tu qu'il soit possible d'intercaller une commande de Copy de la base
XXXXXXXXX.mdb entre le moment ou les tables sont supprimées et le moment ou
les nouvelles attaches sont faite.
Normalement a ce instant la XXXXXXXXX.mdb n'est pas encore utilisée et son
nom est connu par le biais de l'Utilisateur.

--------------------------------------------------------------------------------------
[Formulaires]![Acceuil]![Utilisateur]="Nord-Ouest" >>>>> SupprimerObjet

' entre ces 2 commande la base "Nord-Ouest.mdb" est idendifié mais
pas encore utilisé.

[Formulaires]![Acceuil]![Utilisateur]="Nord-Ouest" >>>>> TransférerBase
--------------------------------------------------------------------------------------

J'ai bien vue une commande : "CopierFichierBaseDeDonnées"
Mais cela n'a pas l'air de correspondre a une base ".mdb"

Entrevois tu une possibilté ?

D'avance merci

--
Confirmation de lecture demandée

Michel Bézoteaux

Tél. 01 76 11 04 88 (nouveau N° Tél.)
Fax 08 25 18 74 49


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

Bonjour Michel,

La commande FileCopy ne permet de copier qu'un seul fichier, donc ne
supporte pas le *.mdb.
Si tu n'as qu'un seul fichier .mdb dans le réperoire de départ, il faut
récupérer son nom par la commande Dir. Si plusieurs, tu peux boucler sur
Dir (voir l'exemple dans l'aide) mais il est préférable d'utiliser
Application.FileSearch pour récupérer tous les fichiers d'un répertoire
puis les copier.
Il ne faut pas que tes fichiers soient en cours d'utilisation pour les
copier.

Tu pourrais faire un truc du genre:
Sub zz()
' Ajouter la référence Microsoft Office x.x Object Library
Dim strCheminSauv As String
Dim strChemin1 As String
Dim i As Integer, NomFic As String
On Error Resume Next
strChemin1 = "C:CNDS"
strCheminSauv = "C:CNDSSauvegarde"
With Application.FileSearch
.NewSearch
.LookIn = strChemin1
.FileType = msoFileTypeDatabases
If .Execute() > 0 Then
DoCmd.Hourglass True
For i = 1 To .FoundFiles.Count
' on récupère le nom du fichier+extension sans le chemin
NomFic = Mid(.FoundFiles(i), InStrRev(.FoundFiles(i), "")
+ 1)
FileCopy .FoundFiles(i), strCheminSauv & NomFic
Next i
DoCmd.Hourglass False
MsgBox "Copie terminée", vbInformation
Else
MsgBox "Aucun fichier à copier"
End If
End With
End Sub

A tester et adapter, manque la ligne Kill

Bonjour Eric,

Je viens de mettre en application ce que tu m'as envoyé,

FileCopy strChemin & strOldFile, strCheminTemp & strOldFile2 & ".xls"



j'ai juste enlevé &".xls" a la fin car je n'en ai pas besoin dans le nom
du bordereau.rtf qu'il va généré
ça marche impec.


Celle ci devrai créer une sauvegarde des bases dorsale avant les
intégrations, mais la ligne FileCopy génére une erreur.
Je pense que cela viens de "*.mdb" que je ne sais pas comment traiter ?
Je ne sais pas ou est autorisé le "*" et ou il est proscrit ?

Frontale : LicenciésCNDS.mdb
Dorsale : xxxxxxxxx.mdb
------------------------------------------------------------------
Dim strCheminSauv As String
Dim trChemin1 As String
Dim strSauvFile As String
strChemin1 = "C:CNDS"
strCheminSauv = "C:CNDSSauvegarde"
strSauvFile = "*.mdb"
FileCopy strChemin1 & strSauvFile, strCheminSauv & strSauvFile
Kill "C:CNDSImportSauvegardelicenciésCNDS.mdb"
-------------------------------------------------------------------

Encore merci
Michel





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


Bonjour Michel,

Je me perds un peu dans ton code ;-)
Si tes noms de fichiers originaux sont toujours de la forme
XXXXXXX-jj-mm-aaaa.xls ( ou X...X représente une suite quelconque de
caractères), tu peux faire comme ça:

Dans la partie déclaration des variables de la procédure:
Dim strOldFile2 As String

puis dans la 1ere partie de la procédure entre les 2 FileCopy transformer
comme suit:
strOldFile = Dir(strChemin & "*" & strFileNew)
FileCopy strChemin & strOldFile, strCheminNew & strOldFile
strOldFile2 = Left(strOldFile, Len(strOldFile) - 15)
FileCopy strChemin & strOldFile, strCheminTemp & strOldFile2 & ".xls"

A tester car j'ai fait ça de visu.
Remarque:
A mon avis, tu dois pouvoir supprimer dans la deuxième partie de ta
procédure l'instruction d'affectation
strCheminTemp = "c:cndsimportTemp"
sauf si dans les (suite suite suite) tu as modifié la valeur de
strCheminTemp


...
Encore une petite difficulté

le fichier de départ s'appelle "Beaumont_AETN-02-09-2006.exl"
La date de création du fichier au club.

A l'arrivée je souhaite "Beaumont_AETN-17-09-2006-Bordereau de
couples.rtf"
La date de traitement à la Ligue

Alors que je génère ""Beaumont_AETN-02-09-2006.xls-17-09-2006-Bordereau
de couples.rtf"

C'est à dire le nom qui a été sauvegardé par

strCheminTemp = "c:cndsimportTemp"
FileCopy strChemin & strOldFile, strCheminTemp & strOldFile

Peut on sur cette sauvegarde éliminer "02-09-2006.xls"
...


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr






--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr





Avatar
Eric
Bonjour Michel,



Bonjour Eric,

Je me doutais de quelque chose de ce genre, Je n'ai que 2 Fichiers .mdb
XXXXXXXXXX.mdb et LicenciésCNDS.mdb
Je ne souhaite sauvegarder que XXXXXXXXXXX.mdb
Mais comme je voulais le fairte a partir de l'application les fichiers sont
en cours d'utilisation et donc pas faisable.

Dans la mesure ou a l'ouverture de LicenciésCNDS, qui est la frontal, une
macro "autoexec" supprimes les tables attachées, puis attache de nouvelles
tables du XXXXXXXXXX.mdb correspondant a l'identité de l'utilisateur en
cours.

Pense tu qu'il soit possible d'intercaller une commande de Copy de la base
XXXXXXXXX.mdb entre le moment ou les tables sont supprimées et le moment ou
les nouvelles attaches sont faite.
Normalement a ce instant la XXXXXXXXX.mdb n'est pas encore utilisée et son
nom est connu par le biais de l'Utilisateur.

--------------------------------------------------------------------------------------
[Formulaires]![Acceuil]![Utilisateur]="Nord-Ouest" >>>>> SupprimerObjet

' entre ces 2 commande la base "Nord-Ouest.mdb" est idendifié mais
pas encore utilisé.

[Formulaires]![Acceuil]![Utilisateur]="Nord-Ouest" >>>>> TransférerBase
--------------------------------------------------------------------------------------




Oui, c'est à tenter mais sous réserve que la base dorsale
XXXXXXXXXX.mdb ne soit pas utilisée par un autre utilisateur que
celui de la bd qui va lancer ces 2 commandes. Sinon pour ce
faire, il te faudrait déconnecter tous les utilisateurs.

--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr