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 :

Ouvrir un Fichier et fermer le fichier en cours


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut Ouvrir un Fichier et fermer le fichier en cours
    Bonjour,

    J'ai un fichier sucéptible de recevoir une mise à jour.
    Au lancement de ce fichier, je regarde s'il existe une mise à jour, s'il en existe une, je voudrais remplacer le fichier en cours par le nouveau fichier.

    J'arrive à rappatrier le nouveau fichier, mais si je l'ouvre avec la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks.Open Filename:=Chemin + NomFichier(CStr(NomFichierFull))
    Mon code s'arrete sur cette ligne... Or la ligne suivante étant :
    Donc j'ai deux classeur d'ouvert alors que j'en voudrais qu'un seul...

    Merci de votre aide à tous.

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 632
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 632
    Par défaut
    bonjour,


    etonnant !
    Je viens de faire un test qui fonctionne sans problème chez moi, dans un fichier nommé test2 (un fichier test1 existe dans le même repertoire) :

    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
     
    Sub test1()
    On Error GoTo fin
    Application.DisplayAlerts = False
     
    Workbooks.Open Filename:=ThisWorkbook.Path & "\test1.xls"
    ThisWorkbook.Close
     
    ' ---------------------------------------------------------- '
    fin:
    Application.DisplayAlerts = True
    If Err.Number > 0 Then
        MsgBox "erreur :" & Err.Number & vbCr & "Description : " & Err.Description
    End If
    ' ---------------------------------------------------------- '
    End Sub
    Ce code ouvre bien test1 et ferme test2.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut
    C'est peut être parceque j'ai une macro sur le WorkBook_Open de mon deuxième fichier?

    Je refais un test

  4. #4
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 632
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 632
    Par défaut
    Re,

    C'est peut être parceque j'ai une macro sur le WorkBook_Open de mon deuxième fichier?

    Je viens de faire un test avec open dans le 2eme fichier, cela fonctionne sauf si j'ai un arrêt de la macro (j'ai testé avec end)

  5. #5
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut
    Helas c'est bien ça mon problème...

    J'ai une macro sur le WorkBook_Open du fichier2... Donc la macro du premier fichier se poursuit...
    Il y aurait une parade pour ça ou bien je suis cuit?

    Merci Ã* vous !

    Citation Envoyé par aalex_38 Voir le message
    Re, Je viens de faire un test avec open dans le 2eme fichier, cela fonctionne sauf si j'ai un arrêt de la macro (j'ai testé avec end)
    Le soucis c'est que j'ai des UserForm Dans le WorkBook_Open... Il n'existe pas de After_Open en Plus...

  6. #6
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 632
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 632
    Par défaut
    Tu peux fermer le fichier appelant dans ta procédure open
    Et pour bien te former, les cours et tutoriels pour apprendre Excel : https://excel.developpez.com/cours/

  7. #7
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    En toute logique, vu que l'on ferme le fichier appelant en cours d'exécution vbastique, ça devrait couper la chique au vba...

    Ce qui n'empêche pas de relancer avec un bouton au autre, mais adieu le workbook.open ?

    une autre piste serait d'ouvrir le classeur cible dans une nouvelle instance, ça dépend du contexte d'utilisation...

    genre dans le classeur appelant, si le test est OK :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub lansseur()
    Dim ApExc As New Excel.Application
     
    ApExc.Visible = True
    ApExc.Workbooks.Open Filename:=ThisWorkbook.Path & "\TestAppelé.xls"
    Application.WindowState = xlMinimized
    ThisWorkbook.Close savechanges:=False ' cette ligne-ci ou en dessous...
    ' Application.Quit ' ou ainsi, mais brutal, tester ce qu'il faut avant !!!
    End Sub

    + tests de présence etc... comme indiqué par Aalex_38
    cordialement,

    Didier

Discussions similaires

  1. [XL-2003] Ouvrir un Fichier et fermer le fichier en cours
    Par Coincoin0017 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/06/2011, 15h29
  2. Ouvrir/fermer un fichier excel existant
    Par ghostvb dans le forum VBScript
    Réponses: 1
    Dernier message: 02/07/2008, 12h21
  3. Réponses: 2
    Dernier message: 20/03/2008, 10h38
  4. [débutant]Ouvrir/fermer un fichier
    Par ProgVal dans le forum C++
    Réponses: 6
    Dernier message: 28/12/2007, 22h17
  5. {VBA Excel}Ouvrir copier et fermer plusieurs fichiers excel
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 26/06/2007, 10h52

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