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 :

fermer un autre classeur en même temps que le classeur actif -> bug


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 21
    Points : 9
    Points
    9
    Par défaut fermer un autre classeur en même temps que le classeur actif -> bug
    Bonjour

    Un classeur Excel travaille avec un 2e classeur qui lui contient toutes les données. Je souhaite donc que quand j'ouvre le 1er classeur, le 2e s'ouvre également, mais aussi que quand je ferme ce classeur, celui contenant les données se ferme également.
    Précisons que le classeur des données se voit modifié pendant l'utilisation, mais que ces modifications ne doivent pas être enregistrées à la fermeture.

    Côté ouverture, pas de problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
    Ouvrir
    End Sub
    m'exécute la macro ouvrir, qui fait ce que je lui demande

    Au niveau de la fermeture, par contre, ça bugue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        Application.ScreenUpdating = False
        Windows("fichier données.xlsx").Close SaveChanges:=False
    ThisWorkbook.Close SaveChanges:=False
    End Sub
    me renvoit une erreur d'exécution 9 : l'indice ne correspond pas à la sélection. Et le débugueur me surligne la ligne indiquée en gras dans le code.

    Quelqu'un voit où peut se situer le problème ?

    D'avance, merci

  2. #2
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Salut
    Essaies en remplaçant Windows par Workbooks.
    A+
    N'oubliez pas le si votre problème est solutionné.

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 21
    Points : 9
    Points
    9
    Par défaut
    Même erreur, même surlignage...

  4. #4
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    es tu certain du nom de ce fichier (extention comprise) ?
    N'oubliez pas le si votre problème est solutionné.

  5. #5
    Futur Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 21
    Points : 9
    Points
    9
    Par défaut
    J'ai fait un c/c, donc oui

    Cela dit, avec Workbooks les deux fichiers concernés se ferment bien à la fin. Mais la macro me renvoie quand même une erreur.

    En plus de ça, Excel me demande si je veux garder les éléments dans le presse papier quand je quitte. C'est possible de lui faire dire non automatiquement avec la macro ?

  6. #6
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Citation Envoyé par DiesIrae Voir le message
    Cela dit, avec Workbooks les deux fichiers concernés se ferment bien à la fin. Mais la macro me renvoie quand même une erreur.
    ????



    Citation Envoyé par DiesIrae Voir le message
    En plus de ça, Excel me demande si je veux garder les éléments dans le presse papier quand je quitte. C'est possible de lui faire dire non automatiquement avec la macro ?
    Voici une code de Ucfoutu (j'ai pas testé)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Application.CommandBars("Clipboard").Controls("&Vider le
    Presse-Papiers").Execute
    N'oubliez pas le si votre problème est solutionné.

  7. #7
    Futur Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 21
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par Fvandermeulen Voir le message
    ????
    La macro me sort erreur d'exécution 9 : l'indice ne correspond pas à la sélection., mais si je fais Fin, les deux fichiers se ferment bien comme je leur ai demandé.
    Faut pas me demander pourquoi, hein

    Citation Envoyé par Fvandermeulen Voir le message
    Voici une code de Ucfoutu (j'ai pas testé)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Application.CommandBars("Clipboard").Controls("&Vider le
    Presse-Papiers").Execute
    Je teste ça, merci

  8. #8
    Futur Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 21
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par DiesIrae Voir le message
    Je teste ça, merci
    Je l'ai collé là-dedans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        Application.CommandBars("Clipboard").Controls("&Vider le Presse-Papiers").Execute
        Application.ScreenUpdating = False
        Workbooks("fichier données.xlsx").Close SaveChanges:=False
        ThisWorkbook.Close SaveChanges:=False
    End Sub
    mais il me sort Erreur d'exécution 5 : Argument ou appel de procédure incorrect.

    Je dois pas savoir très bien l'utiliser en fait.

  9. #9
    Futur Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 21
    Points : 9
    Points
    9
    Par défaut
    Bon, j'ai remplacé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Application.CommandBars("Clipboard").Controls("&Vider le Presse-Papiers").Execute
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Application.CutCopyMode = False
    et il ne me sort plus Erreur d'exécution 5 : Argument ou appel de procédure incorrect.
    Problème du presse papier réglé.


    Par contre j'ai toujours droit à Erreur d'exécution 9 : l'indice ne correspond pas à la sélection.

    Rappel du code en question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        Application.CutCopyMode = False
        Application.ScreenUpdating = False
        Workbooks("fichier données.xlsx").Close SaveChanges:=False
        ThisWorkbook.Close SaveChanges:=False
    End Sub
    Ce qui est étrange, c'est qu'avec cette macro toute conne sur un bouton, je ferme l'autre fichier sans problème.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Fermer_sources()
    Workbooks("fichier_données.xlsx").Close SaveChanges:=False
    End Sub

    Mais si j'appelle cette macro au moment de la fermeture, comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        Application.CutCopyMode = False
        Application.ScreenUpdating = False
        Fermer_sources
        ThisWorkbook.Close SaveChanges:=False
    End Sub
    Excel me ressort la blague de l'erreur d'exécution 9, tout en surlignant le Workbooks("fichier_données.xlsx").Close SaveChanges:=False de la macro toute conne qui fonctionne autrement.

Discussions similaires

  1. Sauvegarde des macros en même temps que le classeur
    Par Aureus Magnus dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 11/07/2013, 15h58
  2. Réponses: 4
    Dernier message: 27/05/2007, 11h18
  3. Réponses: 5
    Dernier message: 03/08/2006, 16h13
  4. [JFrame] Désiconifier toutes les autres fenêtres en même temps
    Par stoukou dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 07/10/2005, 12h01
  5. Comment fermer l'application en même temps que Windows ?
    Par semaj_james dans le forum Langage
    Réponses: 4
    Dernier message: 23/06/2004, 22h17

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