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 :

Fermeture de classeur sans les nommer [XL-97]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 28
    Par défaut Fermeture de classeur sans les nommer
    Bonjour à tous,

    Après plusieurs recherches et essais je n'ai pas réussi à obtenir ce que je souhaitais.
    Ma macro me sert à importer des classeurs dans un autre classeur (où est situé la macro) via la commande: "Application.GetOpenFilename".

    Cela donne le bout de code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim OuvrirFichiers As Variant
    OuvrirFichiers = Application.GetOpenFilename(, , , , True)
    For y = 1 To UBound(OuvrirFichiers)
    Workbooks.Open OuvrirFichiers(y)
    Sheets.Select
    Sheets.Copy after:=Workbooks("OutilVBA.xls").Sheets(1)
    J'utilise donc la sélection multiple.

    Ma problématique: fermer, une fois copié, les classeurs ouverts avec Application.GetOpenFilename.
    2 techniques pour cela qui ne me conviennent pas:
    - utiliser le nom des classeurs pour les fermer workbooks.close (mais je ne suis pas à l'abris que les classeurs que je souhaite importer change de nom...)
    - fermer tous les classeurs sauf celui qui contient la macro (problème pour l'utilisateur s'il travail avec d'autres classeurs qui ne souhaite pas fermer)

    La solution serait de nommer temporairement les classeurs ouverts puis utiliser ce "nom temporaire" pour les fermer via workbooks.close.... est ce possible ? ou avez vous d'autres solutions ?

    merci pour votre aide,
    raphaël

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    Je ne comprends peut-être as mais si tu les ouvres un à un dans ta boucle, tu dois pouvoir les fermer de la même façon, je n'ai pas analysé ou testé ton code mais la logique voudrait que, si je m'appuie sur ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim OuvrirFichiers As Variant
    OuvrirFichiers = Application.GetOpenFilename(, , , , True)
    For y = 1 To UBound(OuvrirFichiers)
        Workbooks.Open OuvrirFichiers(y)
        Sheets.Select
        Sheets.Copy after:=Workbooks("OutilVBA.xls").Sheets(1)
        Workbooks.Close OuvrirFichiers(y)' à revoir comment fermer ou
        'ActiveWindow.Close
    Next y
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 28
    Par défaut
    Oui la solution doit être comme ça: fermer le classeur avant de passer au next y.
    J'ai essayé ta ligne supplémentaire mais excel n'apprecie pas trop:
    "Erreur de compilation:
    Nombre d'arguments incorrecte ou affectation de propirété incorrets"

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Je n'avais pas vérifié cette ligne mais le classeur actif doit être le dernier classeur ouvert alors essayes (comme je l'ai suggéré) avec
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 28
    Par défaut
    J'avais aussi essayé Activewindow.close
    Le problème c'est que justement la dernier classeur actif est OutilVBA.xls car on a copié dedans le classeur ouvert précédemment...
    Comment gardé le classeur ouvert actif ? ou alors comment ne pas activé le classeur dans lequel on vient de copier nos données ?
    On approche !

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

Discussions similaires

  1. [XL-2003] Enregistrer un classeur sans les formules
    Par al1_24 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/04/2011, 19h11
  2. Réponses: 0
    Dernier message: 12/11/2009, 16h16
  3. [VBA] Ouverture classeur sans activer les macros
    Par xc78370 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 29/10/2007, 10h45
  4. Comment fermer un classeur sans enregistrer les changements (dans IE) ?
    Par tinftinf dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/08/2007, 13h34
  5. Enregistrer Un Classeur Sans Les Macros
    Par potters dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 20/06/2007, 08h48

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