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 :

Commandes DOS en VBA / Concaténation de fichier sous Dos


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2007
    Messages : 78
    Par défaut Commandes DOS en VBA / Concaténation de fichier sous Dos
    Bonjour,

    J'ai une petite question toute bête mais qui me tracasse :

    Quelqu'un peut-il me dire ce qui cloche dans la macro écrite avec Excel 2003 sous Windows XP ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test1()
        lerep = CurDir
        file1 = lerep & "\LoyersBruts1003.CSV"
        file2 = lerep & "\Foncier1003.CSV"
        file3 = lerep & "\complet1003.CSV"
        lacommande = "file1 + file2  file3"
        Shell "command.com /c copy" & lacommande
     
    End Sub
    Quand je la fais tourner, je n'ai pas de message d'erreur mais le fichier "complet1003.csv" est introuvable...

    Si j'enlève le commutateur /c, dans la fenêtre d'invite de commandes, j'ai le message suivant :

    Mauvais répertoire de recherche de COMMAND.COM
    Format de paramètre incorrect
    Trop de paramètres
    Trop de paramètres

    Merci pour votre aide.

    Christian

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Bonjour,

    Que veux-tu avoir AU FINAL dans ta variable "lacommande " ? Que doit-elle donner ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2007
    Messages : 78
    Par défaut
    Merci pour la réponse rapide.

    En fait je cherche à concatener deux fichiers csv en un. J'utilise pour cela la commande DOS copy file1 + file2 file3.

    Mais ça marche pô !

    A bientôt.

  4. #4
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Déja est ce que Lerep est le bon repertoire ?

    ensuite vérifie la commande que tu vas passer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test1()
    lerep = CurDir
    file1 = lerep & "\LoyersBruts1003.CSV"
    file2 = lerep & "\Foncier1003.CSV"
    file3 = lerep & "\complet1003.CSV"
    lacommande = "file1 + file2 file3"
    msgbox  "command.com /c copy" & lacommande
     
    End Sub
    Vérifie que le code marche en direct dans la boite de commande

    sans tout faire mais en regardant d'un peu plus près :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lacommande = "file1 + file2 file3"
    te donne pour la commande une chaine de caractères "file1 + file2 file3"
    a mon avis c'est pas ça que tu veux.

    De plus aucun espace entre copy et macommande

    En fait je cherche à concatener deux fichiers csv en un. J'utilise pour cela la commande DOS copy file1 + file2 file3.
    en fait je ne connais pas cette utilisation de la commande, ça marche ?

    edit : ok ça existe

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2007
    Messages : 78
    Par défaut
    C'est vrai qu'il manque un espace !!

    J'essaye tout de suite et reviens vers vous !

    merci encore !

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2007
    Messages : 78
    Par défaut
    Non ! Rien à faire !

    J'ai toujours des messages d'erreurs sous DOS.

    lerep doit être le bon répertoire puisque je vais le chercher avec CurDir.

    En fait, je suis sous ma partition d: et mon windows est sous c:. Cela peut-il avoir un effet ?

  7. #7
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    salut,
    la concaténation que tu tentes n'est-elle pas un peu bancale ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lacommande = file1 & " "  & file2 & " " & file3
    serait déjà moins aléatoire
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  8. #8
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Je viens de faire le test sous dos pour que ça fonctionne tu dois avoir dans ta variable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    copy "D:\...\1.csv" + "D:\AGR\VBA Excel\2.csv" "D:\..\3.csv"

  9. #9
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    LA but c'est déja que tu obtienne la bonne commande, montres nous ce que tu obtiens quand tu fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox  "command.com /c copy" & lacommande
    En fait, je suis sous ma partition d: et mon windows est sous c:. Cela peut-il avoir un effet ?
    Moi aussi et pas de soucis.

  10. #10
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2007
    Messages : 78
    Par défaut
    C'est ce que me donne la variable lerep

    Au début du code j'ai :

    lerep= CurDir

    qui me donne le chemin complet des fichiers à concatener ...

    Bizarre, n'est-ce-pas ?

    Bien sûr ! Suis-je bête !!

    si je mets de guillemets entre file1 + file2 file3, j'obtiens file1 + file2 file3

    Merci de m'avoir ouvert les yeux !!!

    Mais il faut encore que j'essaye ...

    A tout de suite !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Modification contenu d'un fichier sous dos
    Par bhe dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 05/06/2008, 19h01
  2. supprimer des fichiers sous dos en fonction de leur date
    Par nikoko dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 28/04/2008, 16h37
  3. fonction copy fichier sous Dos et net use
    Par bml dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 06/09/2007, 10h36
  4. commande d'execution d'une classe java sous dos
    Par sirine1 dans le forum Langage
    Réponses: 1
    Dernier message: 11/08/2007, 14h48
  5. Suppression de lignes dans un fichier sous dos
    Par ducho dans le forum Windows
    Réponses: 2
    Dernier message: 16/05/2005, 10h20

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