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 :

Tester si 1 fichier est ouvert


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 122
    Points : 68
    Points
    68
    Par défaut Tester si 1 fichier est ouvert
    Salut le Forum!!!

    J'ai une procédure qui me permet de tester si mon fichier BordereauLivraison1 est ouvert. Mais depuis qu'elle est dans mon programme, Excel plante régulièrement!!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub TestOuvertureBordereauLivraison()
     
    On Error Resume Next
    Workbooks("BordereauLivraison1").Activate        'Activation du fichier
    If Err <> 0 Then                                 'si activation génère erreur alors le fichier est fermé
        On Error GoTo 0
    Else                                             'sinon le fichier est ouvert
        Workbooks("BordereauLivraison1").Close False 'Fermeture du fichier sans enregistrement
        On Error GoTo 0
    End If
     
    End Sub
    Quelqu'un y verrait-il une erreur

    @+ JeanValjean

  2. #2
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Ton classeur se nomme BordereauLivraison1.xls
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  3. #3
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    +1

    C'est comme de rien que ton Windows n'est pas paramétré pour afficher les extensions de fichiers dont le type est connu... dans l'Explorateur de Windows, menu Outils, Options... onglet Affichage. Désactive l'option Masquer les extensions des fichiers dont le type est connu. Tu verras alors que tes fichiers Ms Office sont enregistrés avec leur extensions et qu'il ne faut donc pas les ignorer lors de la programmation.

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 122
    Points : 68
    Points
    68
    Par défaut
    Salut zazaraignée!!!

    Pour mes options, elles sont bien comme tu le précises...

    Salut Fring!!!

    Mon fichier bordereauLivraison1 est issu d'un modèle de doument de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks.Add Template:="R:\Modèle de documents\Production\BordereauLivraison.xltx"   'Ouverture Modèle de document
    Et ce fichier est créé sans extension .xlsx...

    Je pensais plutôt que le problème rencontré provenait de la gestion d'erreur

  5. #5
    Membre éprouvé
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Points : 1 191
    Points
    1 191
    Par défaut
    bonsoir,

    Citation Envoyé par Jeanvaljean44 Voir le message
    S.... Mais depuis qu'elle est dans mon programme, Excel plante régulièrement!!!! ...
    Pas plus de précision sur l'erreur?
    JacqueS.

    Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)

    Pour devenir mon ami laissez moi un message

  6. #6
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Si je comprend bien (ce qui n'est pas gagné...) ce que Jean veut faire, c'est fermer le classeur (issu du modèle) si celui-ci est ouvert. Ca devrait donner un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub TestOuvertureBordereauLivraison()
    On Error Resume Next
    Workbooks("BordereauLivraison1").Close
    End Sub
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  7. #7
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Et qui dit que le bon de livraison en question aura bien le numéro 1 ? et pas 2 ou 3... ?

    De plus, il me semble que le code et les commentaires ne sont pas cohérents.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Workbooks("BordereauLivraison1").Activate        'Activation du fichier
    If Err <> 0 Then                                 'si activation génère erreur alors le fichier est fermé
        On Error GoTo 0
    Else                                             'sinon le fichier est ouvert
        Workbooks("BordereauLivraison1").Close False 'Fermeture du fichier sans enregistrement
        On Error GoTo 0
    End If
    Si l'activation du fichier génère une erreur alors le fichier est fermé... avec le code : ... ??
    Sinon le fichier reste ouvert... avec le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("BordereauLivraison1").Close False


    J'sais pas, mais j'y vois comme un problème. Déjà l'utilisation de et ensuite ...

    Resume Next équivaut ni plus ni moins à ignore l'erreur s'il te plaît et continue j'attraperai le numéro de l'erreur quelque part, ce que tu sembles avoir compris, alors que Goto 0 est plutôt archaïque et obsolète. Et puis, elle est où la ligne numéro zéro ?

    Refais ton algo sur papier. Ça devrait t'aider à démêler la logique de tout ça.

    [Edit] Je me relis (ça m'arrive parfois) et je vois que j'ai l'air impatiente (ça aussi, ça m'arrive parfois). C'est pourquoi je viens de modifier le paragraphe qui précède celui-ci. L'original était un peu déplacé. Si tu l'as lu avant que je corrige, je m'en excuse et oublie ce que j'avais écrit. Sans rancune.

  8. #8
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Citation Envoyé par zazaraignée Voir le message
    Et qui dit que le bon de livraison en question aura bien le numéro 1 ? et pas 2 ou 3... ?
    Excellente remarque
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  9. #9
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 122
    Points : 68
    Points
    68
    Par défaut
    Salut à tous!!!!

    Bon je suis désolé, j'ai tourné autour de la question un bon moment moi aussi!

    Le problème venait finalement de ma procédure Workbook_BeforeClose appelée juste après ma procédure Sub TestOuvertureBordereauLivraison...

    Merci encore pour tout

    @+ Jeanvaljean

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

Discussions similaires

  1. Visual basic - Tester si un fichier est ouvert
    Par juliep dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 16/03/2015, 19h19
  2. Réponses: 6
    Dernier message: 07/07/2014, 12h13
  3. [VBS] Tester si un fichier est ouvert(utilisé)
    Par l_autodidacte dans le forum Vos Contributions VBScript
    Réponses: 0
    Dernier message: 06/04/2014, 17h23
  4. Tester si un fichier est ouvert
    Par aragog dans le forum Débuter
    Réponses: 13
    Dernier message: 17/04/2013, 16h49
  5. Comment tester si fichier est ouvert ?
    Par fusef dans le forum Langage
    Réponses: 7
    Dernier message: 11/08/2004, 18h51

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