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 :

VBA - Créer un fichier en VBA, problème de droit d'écriture [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Consultant IT
    Inscrit en
    Juillet 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant IT
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2018
    Messages : 3
    Par défaut VBA - Créer un fichier en VBA, problème de droit d'écriture
    Bonjour à tous,

    J'ai farfouillé un peu partout sur différents forum dont celui-ci et j'avoue n'avoir trouvé aucune réponse à mon problème. Dans le cas où le sujet a déjà été traité je m'excuse par avance de l'impertinence de ma question. Passons au sujet :

    Pour le travail je dois effectuer une macro "toute simple" permettant de créer un nouveau fichier Excel, écrire dedans en y copiant les données d'un autre fichier et le fermer. Je réussis sans problème à créer un nouveau fichier en lui donnant le nom que je veux et à l'enregistrer à l'endroit que je veux via le code suivant :

    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
     
     
    Sub tableau()
     
    Dim XLApp As New Excel.Application
    Dim XLBook As Workbook
    Set XLBook = XLApp.Workbooks.Add
    Windows("Fichier TST.xlsx").Activate
    XLBook.SaveAs "C:\Users\gfranceschi\Desktop\Fichier TST.xlsx", ReadOnlyRecommended:=False
     
    'reste du code qui lui fonctionne bien permettant d'écrire dedans
     
    ....
     
    End Sub
    Problème rencontré : Le problème que je rencontre c'est que quoi qu'il arrive le fichier "Fichier TST" que je viens de créer est toujours en lecture seule car "verrouillé pour modification", donc impossible de le fermer...et de le traiter comme je voudrais

    Je ne comprend pas d'où cela peut venir...visiblement le "ReadOnlyRecommended := False" ne suffit pas

    Pour information : si manuellement je vais sur "Fichier TST" il est en lecture seule mais si je ferme le fichier dans lequel il y a ma macro et que je retourne sur "Fichier TST", là il n'est plus en lecture seule et je peux alors le fermer

    Si vous avez des réponses elles seront les bien venues car même en bouffant jusqu'à la dernière miette un cours VBA je n'ai pas trouvé la solution :p

    Merci d'avance pour vos retours et bonne fin de journée à tous

    Guillaume

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour

    Citation Envoyé par Guillaume_VBA Voir le message
    Bonjour à tous,

    Pour information : si manuellement je vais sur "Fichier TST" il est en lecture seule mais si je ferme le fichier dans lequel il y a ma macro et que je retourne sur "Fichier TST", là il n'est plus en lecture seule et je peux alors le fermer


    Guillaume
    Ben quoi ? C'est le comportement normal d'Excel 2016 et avant. Quand un fichier Excel est ouvert dans une instance d'Excel, il est en lecture seule pour toutes les autres instances d'Excel. Puisque tu ouvres complètement inutilement une nouvelle instance d'Excel, tu ne peux pas enregistrer dans ton nouveau fichier sans passer par ta nouvelle instance.

    Oublie de lancer un deuxième Excel pour créer ton fichier et cela devrait aller.


    Si vous avez des réponses elles seront les bien venues car même en bouffant jusqu'à la dernière miette un cours VBA je n'ai pas trouvé la solution

    Comme disait le Major Plun-Pouding : "Bizarre, extrêmement bizarre".

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Consultant IT
    Inscrit en
    Juillet 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant IT
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2018
    Messages : 3
    Par défaut
    Bonjour Clément,

    Merci de ton information mais du coup tu ne réponds absolument pas à ma question car j'ai compris ce que je ne devais pas faire mais je ne vois pas du tout comment faire.

    Si je comprends bien tu me proposes de créer un nouveau fichier sans créer "inutilement" une nouvelle instance d'Excel, c'est à dire ?

    Désolé d'être dans le flou mais je reste un débutant en VBA

    Bonne journée à toi et merci d'avance pour ta réponse

    Guillaume

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2003
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2003
    Messages : 116
    Par défaut
    Bonjour,

    Rajoute l'instruction suivante :


    il faut fermer le fichier pour pouvoir le manipuler par ailleurs, qu'il soit dans la même instance ou dans une autre.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Consultant IT
    Inscrit en
    Juillet 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant IT
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2018
    Messages : 3
    Par défaut
    Bonjour ptitdragon,

    Merci pour ta réponse =)

    En fait je viens de comprendre en retouchant à mon code, ce que clement voulait dire :

    En fait vu que je suis déjà sur une instance ouverte d'excel je ne dois pas rajouter le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim XLBook As Workbook
    Dim XLApp As New Excel.Application
    Set XLBook = XLApp.Workbooks.Add
    XLBook.SaveAs "C:\Users\gfranceschi\Desktop\Fichier TST.xlsx", ReadOnlyRecommended:=False
    Mais uniquement faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim XLBook As Workbook
    Set XLBook = Workbooks.Add
    XLBook.SaveAs "C:\Users\gfranceschi\Desktop\Fichier TST.xlsx", ReadOnlyRecommended:=False
    Et mon "Fichier TST" est bien créé sans lecture seule


    Merci à vous deux pour vos réponses

    Bonne journée

    Guillaume

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

Discussions similaires

  1. VBA créer un fichier bloc note
    Par jbggg dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 10/05/2022, 16h11
  2. Réponses: 1
    Dernier message: 23/02/2014, 09h04
  3. [Toutes versions] Problème de droit d'écriture sur fichier word reseau
    Par alex_m94 dans le forum Word
    Réponses: 9
    Dernier message: 03/06/2009, 17h33
  4. [VBA]créer une base en vba.
    Par roico dans le forum VBA Access
    Réponses: 1
    Dernier message: 27/04/2007, 17h34

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