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 :

Fermé un workbook [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    homme à tout faire
    Inscrit en
    Février 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : homme à tout faire
    Secteur : Transports

    Informations forums :
    Inscription : Février 2016
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Fermé un workbook
    Bonjour à vous

    Tout d'abord un grand merci à vous tous de partagez vos savoir içi.
    Débutant donc faudra y aller doucement mais j absolument besoin de conseil.
    Après de nombreuse recherche, j'ai créer une macro qui me copie mes données vers un autre "classeur2" fermé.
    Jusque la, pas de problème..bon j vais pas vous caché que j'ai fait chauffé mes vieux neurones pour ça.

    Mais à la fin de cette macro, j aimerais que le "classeur2" ou j ai fait le collage ce referme.
    Quoi que je tape à la fin ce sont les 2 appli qui ce ferme.

    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
    Private Sub CommandButton5_Click()
     
    Dim Classeur As Workbook
    Set Classeur = ActiveWorkbook
    Range("c28:h30").Select
    Selection.Copy
     
    Workbooks.Open "C:\Users\home\Documents\classeur2.xlsm"
    Workbooks("classeur2.xlsm").Activate
    Sheets("Feuil1").Cells(Rows.Count, 1).End(xlUp)(2).PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
             ActiveSheet.Paste
    Application.CutCopyMode = False
     
    End sub
    Sur mon classeur2 j'ai ajouté ça dans thisworkbook, la macro ci dessous pour fermé sans la boite de dialogue

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    For Each w In Application.Workbooks
    w.Save
    Next w
    Application.DisplayAlerts = False
    Application.Quit
    End Sub

  2. #2
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    je ne comprend pas pourquoi tu lances la sauvegarde et la fermeture depuis le classeur2, dans son évènement "before_Close"


    si tu veux rester ainsi, il te suffit de supprimer les deux dernières lignes de la procédure.
    en effet, Application.Quit signifie que c'est toute l'instance Excel qui est fermée (donc tous les classeurs)
    Et sur la ligne précédente, tu neutralises les messages de confirmations


    sinon, tu peux complètement effacer cette procédure, et piloter l'enregistrement et fermeture depuis la première procédure, comme ça :
    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
    Private Sub CommandButton5_Click()
    Dim Classeur As Workbook
     
    Range("c28:h30").Copy
     
    Set Classeur = Workbooks.Open("C:\Users\home\Documents\classeur2.xlsm")
     
    With Classeur
        .Sheets("Feuil1").Cells(Rows.Count, 1).End(xlUp)(2).PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
                                                                         SkipBlanks:=False, Transpose:=False
        ActiveSheet.Paste
        Application.CutCopyMode = False
        .Close True
    End With
     
    End Sub
    je ne sais pas ce que tu veux faire avec la ligne "ActiveSheet.Paste" donc je l'ai laissée

  3. #3
    Futur Membre du Club
    Homme Profil pro
    homme à tout faire
    Inscrit en
    Février 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : homme à tout faire
    Secteur : Transports

    Informations forums :
    Inscription : Février 2016
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Un grand merci à toi ca marche très bien maintenant.
    Je pensais que application quit ne fermais que l instance active.
    C'est tellement logique quand ont y regarde à nouveau, mais je crois que mon cerveau n'est pas encore paramétré en mode logique.

    Si je vous envoie ma feuille je pense que vous allez rire, j ai 40userform qui envoie le meme code avec 3 lignes d'écart à chaque fois mais bon faut bien commencé par quelque chose.

    En tout cas un grand merci et longue vie à toi

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

Discussions similaires

  1. [XL-2003] Workbook qui ne se ferme pas
    Par drakkar_agfa dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/12/2010, 15h09
  2. savoir si outlook s'est fermé correctement
    Par iubito dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 07/11/2003, 08h41
  3. Ferme explorer.exe
    Par cmhicham dans le forum C++Builder
    Réponses: 7
    Dernier message: 15/07/2003, 14h53
  4. Outlook ne se ferme pas après un envoi de mail
    Par Joke dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/06/2003, 17h32
  5. Réponses: 15
    Dernier message: 10/10/2002, 19h19

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