Copier et renommer un fichier

Résolu
Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015 - 26 juin 2010 à 15:54
Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015 - 28 juin 2010 à 12:07
Salut !

Voici ma source. J'ai besoin que vous m'aidez à corriger car il m'envoie une erreur :
Nom ou numéro de fichier incorrect

Private Declare Function CopyFileA Lib "kernel32" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long

Private Sub Bouton1_Click()
MkDir App.Path & "\e-Sauvegarde"

Com.Filter = "Documents word (*.doc)|*.doc"
Com.ShowOpen
Chemin_File = Com.Filename 

T_Fichier = Chemin_File
T_Fichier = Left(T_Fichier, Len(T_Fichier) - 4)
T_FileCom = T_Fichier & Format(Now, "_ddmmyy_hhnn") & ".doc"
End Sub

Private Sub Bouton2_Click()
FileCopy Com.Filename, App.Path & "\e-Sauvegarde" & T_FileCom
End Sub


Ce qui donnera au lieu de :
Document.doc
Ceci :
Document_261010_1351.doc


Le but est de récupérer un fichier avec un CommonDialog et copier celui-ci avec un autre nom dans un endroit précis dans la racine de l'appli.

Pouvez-vous m'aider svp ?

Merci

----------
OS : Windows XP SP3 et Vista 32
Platforme : VB 6.0 + SP6
Ok VB6.0 c'est pas net !

8 réponses

cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
28 juin 2010 à 11:33
Supprime la déclaration d'API et colle ce code. T'aurais quand même pu faire un MsgBox de la destination vu que l'erreur te disait que le nom de fichier était incorrect.
Private Sub Bouton1_Click()
    Dim Tmp As String

    Tmp = App.Path & "\e-Sauvegarde"
    MkDir Tmp

    With com
        .Filter = "Documents Word (*.doc)|*.doc"
        .InitDir = Tmp
        .CancelError = True
        On Error GoTo err
        .ShowOpen
        On Error GoTo 0
        Tmp = .FileName
    End With
    Me.T_Fichier.Text = Tmp
    Tmp = Left(Tmp, Len(Tmp) - 4) & Format(Now, "_ddmmyy_hhnn") & ".doc"
    Me.T_FileCom.Text = Tmp
    
err:
End Sub

Private Sub Bouton2_Click()
Dim S As String,
S = Mid(Me.T_FileCom.Text, InStrRev(Me.T_FileCom.Text, "") + 1)
FileCopy T_Fichier.Text, App.Path & "\Sauvegarde" & S
End Sub


VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
3
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
26 juin 2010 à 22:35
Est-ce que T_FileCom est un textbox ? Si ce n'est pas le cas, crées-en une vu que Bouton1_Click semble l'évènement d'un bouton Parcourir. Il te suffira alors d'utiliser le contenu de ce textbox dans Bouton3_Click.

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
0
Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015
27 juin 2010 à 02:08
Effectivement, T_FileCom est un textbox et je l'ai utilisé dans le bouton2 comme ceci :
Private Sub Bouton2_Click()
FileCopy Com.Filename, App.Path & "\e-Sauvegarde" & T_FileCom
End Sub


Et c'est là que l'erreur apparait.
FileCopy NomEtChemin, NouveauChemin+NouveauNomFichier

Je me suis dis l'algo est pttr la source du problème mais je ne vois pas où est le problème. Il me fait quand même l'erreur
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
27 juin 2010 à 09:18
Private Sub Bouton2_Click()
CopyFile Com.Filename, App.Path & "\e-Sauvegarde" & T_FileCom.Text, 0
End Sub

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015
28 juin 2010 à 10:39
Salut !

J'ai un peux changé le code mais toujours une erreur s'exécute.

Private Declare Function CopyFileA Lib "kernel32" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long

Private Sub Bouton1_Click()
MkDir App.Path & "\e-Sauvegarde"

Com.Filter = "Documents Word (*.doc)|*.doc"
Com.ShowOpen

T_Fichier.Text = Com.Filename
T_FileCom.Text = Left(T_Fichier.Text, Len(T_Fichier.Text) - 4) & Format(Now, "_ddmmyy_hhnn") & ".doc"
End Sub

Private Sub Bouton2_Click()
CopyFile T_Fichier.Text, App.Path & "\e-Sauvegarde" & T_FileCom.Text
End Sub


Outlook s'ouvre et j'obtiens cette erreur:
Erreur définie par l'application ou par l'objet : Erreur 287
CopyFile T_Fichier, App.Path & "\Sauvegarde" & T_FileCom.Text


Est-ce que c'est ma déclaration CopyFileA qui fait cette erreur ou CopyFile de la ligne de commande de copie ou quoi ?
0
Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015
28 juin 2010 à 10:52
et avec ça :
Private Sub Bouton2_Click()
Filecopy T_Fichier, App.Path & "\Sauvegarde" & T_FileCom.Text
End Sub

j'ai :
Nom ou numéro de fichier incorrect : Erreur 52
0
Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015
28 juin 2010 à 11:52
Encore merci ghuysmans99, t'es super.
Par contre, le mkdir ne fonctionne pas. J'ai supprimé le dossier et à l'exécution il me dis que la source n'est pas valide. Or :
Dim Tmp As String
    Tmp = App.Path & "\e-Sauvegarde"
    MkDir Tmp
est pour créer le dossier si celui-ci n'y est pas...
0
Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015
28 juin 2010 à 12:07
Dossier créé avec succès ^^
Merci encore ghuysmans99
On considère le sujet comme réglé ;)
0
Rejoignez-nous