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 :

Comportement différent lancement manuel vs depuis batch


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 Comportement différent lancement manuel vs depuis batch
    Bonjour à tous,

    ca va faire quelques jours que je me casse les dents sur un comportement que je n'arrive pas à expliquer ni à corriger.

    J'ai un traitement VBA qui consiste en la création d'un classeur dans lequel je copie des données, et dont j'enregistre le tout au format CSV, avec des séparateurs ;.

    La syntaxe de la ligne étant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    wbk.SAveAs strCompletePath, FileFormat:=xlCSV, CreateBackup:=False, Local:=True
    wbk.Close False
    L'enjeu que j'ai actuellement est que lorsque je lance le code complet, l'enregistrement final se déroule parfaitement, et je me retrouve bien avec mon fichier csv rempli comme attendu.

    Mon soucis est lorsque j'exécute le code en l'appelant depuis un batch (je sais que le code d'appel est bon, j'ai des tutos pour le prouver ), je me retrouve en bout de ligne avec 2 fichiers : un fichier csv avec le nom attendu, mais au contenu vide ET un autre fichier avec une extension .tmp qui contient les données attendues.

    Je penche pour un supposé problème de droit de lancement, mais comme le soucis n'est pas aléatoire, constant, et peu importe le nom de la feuille ou du csv, j'imagine que le soucis est dans les paramètres régionaux qui sont inclus dans l'environnement cmd (le local:=True vient jouer un rôle).

    Il me reste bien sûr la possibilité de casser le stoique saveAs et recoder à la main les séparateurs à coups de Join, mais j'aimerai avoir votre avis avant de me lancer dans cette track.

    Merci !
    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

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 116
    Par défaut
    Salut

    Citation Envoyé par Jean-Philippe André Voir le message
    Je penche pour un supposé problème de droit de lancement, mais comme le soucis n'est pas aléatoire, constant, et peu importe le nom de la feuille ou du csv, j'imagine que le soucis est dans les paramètres régionaux qui sont inclus dans l'environnement cmd (le local:=True vient jouer un rôle).
    Qu'est ce que ça donne avec le Local par défaut à False?

    J'avais pensé aussi au début de la lecture à un problème de droit avec un verrouillage du droit d'accès par le batch mais ça n'empêcherait pas la modification du contenu et le SaveAs, y compris en lecture seule.

    Si j'ai bien compris, le batch lance le fichier Excel et une macro contenue dans le fichier excel s'exécute pour modifier des données (qui se trouvent dans ce même fichier ou dans un fichier extérieur?), c'est bien ça?

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    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
    Exact,
    ca crée un fichier et l'enregistre au format csv.

    Le local true c'est pour avoir un caractère de séparation de ; au lieu des , du csv

    J'ai tenté un wait (le fait que le fichier tmp soit créé sans que le fichier csv soit enregistré, ca pourrait etre un soucis de lenteur), mais ca ne fonctionne pas.

    Je vais faire une tentative pour voir si c'est le lecteur réseau qui m'embete, en basculant sur le C: par exemple
    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

  4. #4
    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
    Bon, pas mieux pour le c:\temp

    J'ai également tenté d'afficher le caractère de séparation de liste via Application.International(), les deux ouvertures affichent la même chose.

    Le "temporisateur" ne donne aucune amélioration.
    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

  5. #5
    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
    La piste la plus craquée qui arrive sur la table, c'Est l'anti-virus qui bloquerait la synchronisation/transofrmation du tmp en csv...
    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

  6. #6
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 116
    Par défaut
    Ah... ça aime sans doute pas le batch. un peu comme cette fonction super chelou d'avast qui lance l'exe inconnu dans un container, il s'exécute mais en mode surveillé pendant quelques secondes. (Super chiant pour lancer les teste à partir de Delphi...).

    Si c'est bien ça, ça va pas être drôle pour le déploiement.

    Tu as fais le test en désactivant l'anti-Virus?

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/06/2014, 18h01
  2. [Tomcat]pb lancement de tomcat depuis eclipse
    Par sebos63 dans le forum Eclipse Java
    Réponses: 11
    Dernier message: 02/11/2006, 23h36
  3. Comportement différent des listes [] et des tuples () ??
    Par JujuKéblo dans le forum Général Python
    Réponses: 2
    Dernier message: 12/10/2005, 09h08
  4. [C#] bouton avec 2 comportements différents ?
    Par st0j dans le forum ASP.NET
    Réponses: 8
    Dernier message: 31/05/2005, 09h50
  5. Réponses: 3
    Dernier message: 16/03/2005, 11h31

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