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 :

Pb avec ChDir [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Août 2017
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur aéronautique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2017
    Messages : 363
    Par défaut Pb avec ChDir
    Bonjour,

    En début de procédure j'ai l'instruction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dossier_racine = InputBox("Select the folder where the database is located", "Data base folder", "P:\EXPORT")
    Un peu plus bas dans la procédure j'ai l'instruction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ChDir = Dossier_racine
     
    ActiveWorkbook.SaveAs Filename:= _
    Dossier_racine & "\" & "schema.xml_temporary.xlsx", FileFormat:= _
    xlOpenXMLWorkbook, CreateBackup:=False
    A l'exécution j'ai un erreur à la ligne ChDir ? D'autre part je souhaite que l'enregistrement écrase toute ancienne version. Est-ce la bonne syntaxe ?

    PS : Dossier_racine a été déclaré comme String.

    Merci pour vos suggestions.

    Cdlt.
    Jérôme

  2. #2
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 254
    Par défaut
    Bonjour,

    Utilisation de ChDir sur l'aide Microsoft (accessible avec F1 dans l'éditeur VBA) :

    Utilisation de ChDir

    Bonne journée,

  3. #3
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour le fil, bonjour le forum,

    Je te conseille de toujours préciser le message d'erreur que tu obtiens si tu veux une aide plus rapide...

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Août 2017
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur aéronautique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2017
    Messages : 363
    Par défaut
    J'ai inséré "" --> toujours le même résultat....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ChDir = "Dossier_racine"
    Pas sûr d'avoir compris l'aide.....

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Août 2017
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur aéronautique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2017
    Messages : 363
    Par défaut
    Message : erreur de compilation
    argument non facultatif...

  6. #6
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 254
    Par défaut
    Dossier_racine est une variable donc pas de guillement sinon ça devient du texte "en dur"

    Dans l'aide tu verras qu'il n'y a pas le sigle = après ChDir

  7. #7
    Membre éclairé
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Août 2017
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur aéronautique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2017
    Messages : 363
    Par défaut
    Effectivement ....
    Merci beaucoup.

    Cdlt.
    Jérôme

  8. #8
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour le fil, bonjour le forum,

    Pour éviter une éventuelle erreur de frappe, j'utiliserais plutôt un code de ce style (en suppriment la boîte d'entrée InputBox) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Macro1()
    Dim FD As FileDialog
    Dim DR As String
     
    Set FD = Application.FileDialog(msoFileDialogFolderPicker)
    With FD
        .AllowMultiSelect = False
        .InitialFileName = "P:\EXPORT"
        .Show
        DR = FD.SelectedItems(1)
    End With
    ChDir DR
    ActiveWorkbook.SaveAs Filename:=DR & "\" & "schema.xml_temporary.xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    End Sub

  9. #9
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut
    Citation Envoyé par licpegpon Voir le message
    Bonjour,

    En début de procédure j'ai l'instruction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dossier_racine = InputBox("Select the folder where the database is located", "Data base folder", "P:\EXPORT")
    Un peu plus bas dans la procédure j'ai l'instruction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ChDir = Dossier_racine
     
    ActiveWorkbook.SaveAs Filename:= _
    Dossier_racine & "\" & "schema.xml_temporary.xlsx", FileFormat:= _
    xlOpenXMLWorkbook, CreateBackup:=False
    A l'exécution j'ai un erreur à la ligne ChDir ? D'autre part je souhaite que l'enregistrement écrase toute ancienne version. Est-ce la bonne syntaxe ?

    PS : Dossier_racine a été déclaré comme String.

    Merci pour vos suggestions.

    Cdlt.
    Jérôme
    bonjour voila ce qui arrive quand on persiste a employer des object non appropriés tel qu'un inputbox dans ton cas alors que tu a des boites de dialogues prévu a cet effet
    et il me semble te l'avoir déjà dit non!!???
    et puis puisque tu tien a avoir un pseudo dialog( je parle de l'input ) pour récupérer et concaténer le chemin pour l'enregistrement
    je te propose l'utilisation tardive du dialogue prévu a cet effet
    en gros c'est bien le dialogue de "SaveAs" mais ca ne fait que récupérer le chemin de la même manière qu'avec getopenfilename
    je sauve avec la chaine(chemin) obtenue avec "fname"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub enregistrer_sous()
        Dim fname As Variant
        fname = "F:\schema.xml_temporary.xlsx"    'P:\EXPORT\schema.xml_temporary.xlsx"
        fname = Application.GetSaveAsFilename(InitialFileName:=fname, filefilter:="excel Files (*.xlsx), *.xlsx", Title:="ENREGISTREMENT DU FICHIER")
        If fname = False Then Exit Sub
        'MsgBox fname
        Application.DisplayAlerts = False 'empêche le message si fichier existant donc écrasement du fichier
        ActiveWorkbook.SaveAs Filename:=fname, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    End Sub
    l'avantage c'est que tu peux te balader dans l'arborescence des dossier dans la boite de dialogue et faire ton choix avec un seul doigt sur la souris
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

Discussions similaires

  1. PB avec chdir
    Par crapou dans le forum Langage
    Réponses: 12
    Dernier message: 17/07/2007, 14h19
  2. [langage] Comparer Perl avec d'autres langages comme C ?
    Par Anonymous dans le forum Langage
    Réponses: 3
    Dernier message: 10/08/2002, 23h52
  3. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  4. [Kylix] Runtime error 230 avec INDY
    Par Anonymous dans le forum EDI
    Réponses: 2
    Dernier message: 23/03/2002, 11h51
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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