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

VBA Access Discussion :

ouverture de fichier excel existant


Sujet :

VBA Access

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 473
    Par défaut ouverture de fichier excel existant
    Bonjour à tous,

    Je réalise des export de données vers Excel, pour cela j'ouvre mon fichier excel de cette facon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If DirectoryExists(chemin & nom_doc) = True Then
            Set wbExcel = appExcel.Workbooks.Open(chemin & nom_doc)
    ...
    cela marche très bien, mais le problème c'est que si l'utilisateur laisse ouvert le fichier excel, pour regarder les infos contenues, et si pendant le même temps il refait un export mon programme plante car le fichier ne peut etre ouvert en ecriture deux fois. Comment attraper et gerer cette erreur ?

  2. #2
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Vérifie si le fichier est déjà ouvert : comme tu sais déjà faire de l'automation Excel, il faut donc que tu regardes dans la collection Workbooks si un fichier dont le .FullName correspond au nom de ton fichier d'export. Si c'est le cas, tu affiches un popup afin de demander à l'utilisateur de fermer le fichier dont il est question.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 473
    Par défaut
    Je n'ai pas tout saisi, c'est possible de détailler un peu plus ?

    Merci beaucoup en tout cas !

  4. #4
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    En te basant un peu sur ton code; essaie un truc du genre

    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
     
    Dim bAskQuit As Boolean
     
    bAskQuit = False
     
    For each wbExcel In appExcel.Workbooks
       If wbExcel.FullName = Chemin & nom_Doc then
          Msgbox "Le fichier est déjà ouvert"
          bAskQuit = True
          Exit For
       End if
    Next
     
    If Not bAskQuit Then
       ' Fais l'exportation
    End if
    Attention, j'ai tapé le code "à la volée"; je n'ai rien testé. Il te faudra sûrement adapter l'un ou l'autre truc.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 473
    Par défaut
    Cela ne fonctionne pas.....

    Mon fichier est bien ouvert, il me fait bien l'erreur au moment de la sauvegarde mais il ne rentre pas dans la boucle ci-dessus (for each) ....

    Comment faire ?

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Par défaut
    Citation Envoyé par samtheh
    Comment attraper et gerer cette erreur ?
    Il ya la question et la réponse en même temps. Il faut mettre sur place la gestion de l'erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    ....
    On Error Goto GestErr
     
     
     
     
    GestErr:
           IF Err.Number='Le numéro de l'erreur qui survient then
                  msgbox "Le fichier est déjà ouvert"
           End if
           ............
     
    .....

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 473
    Par défaut
    Ca fonctionne avec la gestion d'erreur !!! Merci bien

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

Discussions similaires

  1. Ouverture de fichiers excel par ordre alphabetique
    Par max2245 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 30/12/2005, 16h54
  2. Ouvrir un fichier Excel existant
    Par Yanmeunier dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 24/11/2005, 11h17
  3. Réponses: 5
    Dernier message: 11/11/2005, 09h47
  4. [Excel] Travailler sur un fichier excel existant
    Par scoder dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 26/10/2004, 12h54
  5. Ouverture/écriture fichier Excel
    Par mathieu04 dans le forum Windows
    Réponses: 17
    Dernier message: 07/06/2004, 11h23

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