IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

transférer des fichiers dans un autre dossier de façon dynamique


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 100
    Points : 58
    Points
    58
    Par défaut transférer des fichiers dans un autre dossier de façon dynamique
    Alors, vous l'aurez compris j'ai un petit problème. Pour traiter mon document je le sélectionne. Je voudrais en refermant ma base, expédier le document ouvert dans un autre dossier (Non je ne me trompe pas de forum mon code est dans un ficher excel). La question est vaut il mieux copier le fichier et le détruire ou utiliser une fonction que je ne connait pas. (J'ai essayé move file et ça plante, il me dit qu'il attend une expression).
    Voici mon code de base

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub MAJBase()
    Dim DocChoisi
        DocChoisi = Application.GetOpenFilename
            If DocChoisi <> False Then
                OuvreBase
                Workbooks.OpenText Filename:=DocChoisi, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
                Tab:=True, Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
                Lecture
                FermeBase
     
            End If
    End Sub
    J'ai essayé selon la même logique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DocChoisi.MoveFile:= Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
                Tab:=True, Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
    Manifestement il n'aime pas, bon je vous épargne la liste de ce que j'ai essayé et je n'ai pas trouvé de code pouvant m'aider. Je suis reneuse de toute idée.

    Merci d'avance

  2. #2
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Salut,

    tu peux utiliser pour la copie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FileCopy source, target
    et pour supprimer
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  3. #3
    Membre éprouvé
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Points : 1 191
    Points
    1 191
    Par défaut
    bonsoir,


    Il y as quoi dans ton code FermeBase ? tu ne peu pas faire un "saveAs" ?
    JacqueS.

    Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)

    Pour devenir mon ami laissez moi un message

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Bonjour,

    J'ignorais que l'instruction Name avait disparu !!!
    Depuis quand exactement ?

  5. #5
    Membre éprouvé
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Points : 1 191
    Points
    1 191
    Par défaut
    Citation Envoyé par ucfoutu Voir le message
    Bonjour,

    J'ignorais que l'instruction Name avait disparu !!!
    Depuis quand exactement ?

    Non ne t'inquéte pas elle n'as pas disparu, mais elle ne sera utile que dans le cas ou le dossier de destination est sur le même lecteur.

    De plus pourquoi "sauver" ces données dans un dossier pour ensuite déplacer le fichier dans un autre dossier ... c'est le pourquoi du saveas ( sur saveas te montrera que lui n'ont plus n'as pas disparu)
    JacqueS.

    Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)

    Pour devenir mon ami laissez moi un message

  6. #6
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 100
    Points : 58
    Points
    58
    Par défaut
    Le problème est que différentes personnes vont alimenter les tables avec ma moulinette et que chacune d'elle voudra "garder" ses infos, donc restockés le tout ensemble ne vas pas (adresse statique), il me fallait donc autre chose.

    J'essaie le saveas et je reviens

  7. #7
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Voilà ce que l'on lit :
    Citation Envoyé par soria_t Voir le message
    . Je voudrais en refermant ma base, expédier le document ouvert dans un autre dossier
    Je ne vois pas où il est dit "sous un autre nom" , mais simplement "dans un autre dossier"... et "expédier" veut dire ce qu'il veut dire !

    Aide VB :

    If newpathname and oldpathname have different paths and the same file name, Name moves the file to the new location and leaves the file name unchanged. Using Name, you can move a file from one directory or folder to another, but you can't move a directory or folder.
    Et (ma foi) il n'y a qu'à essayer, pour savoir !

  8. #8
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 100
    Points : 58
    Points
    58
    Par défaut
    Alors j'ai essayé la fonction Name.
    Une question est ce qu'il ne vaut mieux pas pour moi de faire le transfert à partir d'une autre sub tout en bas de ma moulinette ?
    Manifestement il n'aime pas ce que je lui ai proposé (tout un tas de variantes avec ce qu'il y a de dispo). Accessoirement, il ne connait pas getfilename .



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Sub MAJBase()
    Dim DocChoisi, OldName, NewName, NewDocChoisi
        DocChoisi = Application.GetOpenFilename
            If DocChoisi <> False Then
                OuvreBase
                Workbooks.OpenText Filename:=DocChoisi, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
                Tab:=True, Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
                Lecture
                FermeBase
                OldName = DocChoisi: NewName = NewDocChoisi
                NewName = Application.MoveFile
                    If NewDocChoisi <> False Then
                        Workbooks.OpenText Filename:=NewDocChoisi, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
                        Tab:=True, Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
                        Name OldName As NewName    ' Déplace et renomme le fichier
                    End If
            End If

  9. #9
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 100
    Points : 58
    Points
    58
    Par défaut
    Voilà un autre essai Qui ne m'enregistre pas mon fichier au bon endroit (qui ne me l'enregistre pas du tout en fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Sub MAJBase()
    Dim DocChoisi, OldName, NewName, NewDocChoisi
        DocChoisi = Application.GetOpenFilename
            If DocChoisi <> False Then
                OuvreBase
                Workbooks.OpenText Filename:=DocChoisi, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
                Tab:=True, Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
                Lecture
                OldName = DocChoisi: NewName = NewDocChoisi
                NewName = Application.GetSaveAsFilename
                    If NewDocChoisi <> False Then
                        Workbooks.OpenText Filename:=NewDocChoisi, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
                        Tab:=True, Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
                       ' (avec ou sans le quote, il n'y a pas de différence) Name OldName As NewName    ' Déplace et renomme le fichier
                    End If
                 FermeBase
            End If
    End Sub

  10. #10
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Bonjour,

    d'après la doc de .GetSaveasFilename

    GetSaveAsFilename Method
    See AlsoApplies ToExampleSpecificsDisplays the standard Save As dialog box and gets a file name from the user without actually saving any files.
    ce que tu fais ne sauve pas.

    Il te manque une instruction workbook.Saveasa
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  11. #11
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 100
    Points : 58
    Points
    58
    Par défaut
    oh j'ai essayé avant mais il m'annonce que je me suis encore plantée
    il m'annonce "Erreur de compilation, memebre de méthode ou de données introuvable "

    Bon je retourne me pendre.

    Et merci encore de me répondre, ça m'aide vraiment

  12. #12
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 100
    Points : 58
    Points
    58
    Par défaut
    Ce que j'obtiens de mieux:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub MAJBase()
    Dim DocChoisi, OldName, NewName, NewDocChoisi
        DocChoisi = Application.GetOpenFilename
            If DocChoisi <> False Then
                OuvreBase
                Workbooks.OpenText Filename:=DocChoisi, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
                Tab:=True, Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
                Lecture
                'OldName = DocChoisi: NewName = NewDocChoisi
                NewDocChoisi = Application.GetSaveAsFilename
                    If NewDocChoisi <> False Then
                        Workbooks.OpenText Filename:=NewDocChoisi, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
                        Tab:=True, Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
                        'Name OldName As NewName    ' Déplace et renomme le fichier
                        Workbooks.Add.SaveAs Filename:="NewDocChoisi"
                    End If
                FermeBase
            End If
    End Sub
    Mon probleme est dans opentext mais il refuse toute autre syntaxe (à ce que j'ai pu voir,c'est de mon manque de connaissance qu'on cause)

    Ceci dit, je me plante peut être completement

  13. #13
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    je pense aussi que les quotes sont en trop ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
                       Workbooks.Add.SaveAs Filename:="NewDocChoisi"
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  14. #14
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 100
    Points : 58
    Points
    58
    Par défaut
    Je pensais y etre arrivé, j'avais meme le message comme quoi c'était bien enregistré.
    Je désespère.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Sub MAJBase()
    Dim DocChoisi, OldName, NewName, NewDocChoisi
        DocChoisi = Application.GetOpenFilename
            If DocChoisi <> False Then
                OuvreBase
                Workbooks.OpenText Filename:=DocChoisi, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
                Tab:=True, Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
                Lecture
                'OldName = DocChoisi: NewName = NewDocChoisi
                NewDocChoisi = Application.GetSaveAsFilename( _
                fileFilter:="Text Files (*.txt), *.txt")
                    'If Filename <> False Then
                    If NewDocChoisi <> False Then
                        'Name OldName As NewName    ' Déplace et renomme le fichier
                        MsgBox "Save as " & NewDocChoisi
                        'DocChoisi.SaveAs Filename:=NewDocChoisi
                    End If
                FermeBase
            End If
    End Sub
    Je craque

  15. #15
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    'DocChoisi.SaveAs Filename:=NewDocChoisi
    Pourquoi cette ligne est-elle en commentaire ?

    (mais je pense qu'il y a d'autres problèmes plus gênants dans ton code.... mais pas de temps pour fouiller. Sorry)
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

Discussions similaires

  1. Fichier dans un autre dossier
    Par melreg dans le forum Fortran
    Réponses: 2
    Dernier message: 08/04/2009, 15h02
  2. Réponses: 9
    Dernier message: 20/02/2009, 17h51
  3. Déplacer des messages dans un autre dossier
    Par ouadie99 dans le forum Outlook
    Réponses: 5
    Dernier message: 26/02/2008, 17h10
  4. rechercher des fichiers dans tous les dossiers
    Par nitteo dans le forum MFC
    Réponses: 4
    Dernier message: 23/06/2006, 18h08
  5. Réponses: 3
    Dernier message: 12/04/2006, 20h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo