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 :

Supprimer macro des boutons lors de la sauvegarde. [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    sécurité
    Inscrit en
    Septembre 2012
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : sécurité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2012
    Messages : 197
    Par défaut Supprimer macro des boutons lors de la sauvegarde.
    Bonjour

    Toujours sur mon projet pour le taf, il me reste quelques détails à affiner, je reviens donc vers vous pour de l'aide.

    J'ai un fichier A à remplir lors de la journée et en fin de poste je l'enregistre vers un autre fichier B qui sert d'archives, jusque la ça va.

    Sur le fichier A se trouve des boutons avec macro puis quelques formules dans certaines cellules. Sur un des boutons se trouve la macro permettant d'enregistrer (copier/coller) la feuille du fichier A vers le fichier B.
    Dans le fichier B j'aimerai avoir le copier/coller de la feuille du fichier A, sans les formules dans les cellules, ni les macros des boutons. Je suis arrivé, a priori à supprimer les formules mais ne trouve pas pour supprimer les macros des boutons, c'est la que j'ai besoin de vous.
    Mon code avec quelques explications.
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    Sub fin_service()
    Dim monClass As Workbook, Chemin As String
     
     '#Message d'alerte avant enregistrement
       If MsgBox("Etes-vous certain de vouloir clôturer cette journée ?", vbYesNo, "Demande de confirmation") = vbYes Then
     
       LgnMasquerFermerUsf  'remise en place des lignes masquées
     
     '#Copie de la feuille vers fichier archive avec protection
        Set monClass = ThisWorkbook
        Chemin = monClass.Path
        Application.EnableEvents = False
        [B65536].End(xlUp)(2).Select
        ActiveCell = "Journée cloturé"
        'Call ligne  'affichage de l'heure en colonne A avec "Journée clôturé"
        Range("J3").Select  'sélection de la cellule
        Export_PDF  'Copie de la feuille en pdf
     With monClass
            Workbooks.Open Chemin & "\Archives M-C.xlsm" '(A ADAPTER !!!!!) chemin pour accéder au fichier voulu
            .Sheets("Main-Courante").Copy after:=Workbooks("Archives M-C.xlsm").Sheets(1) 'Copie feuille vers autre fichier
     '#Suppression des formules
        Cells.Select
        Selection.Copy
        Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
          False, Transpose:=False
        Application.CutCopyMode = False
        Cells(3, 10).Select
     End With
     '## PREVOIR MSG BOX AFIN DE CONTROLER SI L'ONGLET EXISTE DEJA
        ActiveSheet.Name = Format(Now, "dd-mm-yy hh""h""nn") '(Date, "dd-mm-yy hh:mm") 'nomination de l'onglet avec la date
        [C4] = Date
        ActiveSheet.Protect Password:="1234"  'protection de la feuille
        'Prévoir pour masquer les onglets !!!!!!!!!!!!!!
        Workbooks("Archives M-C.xlsm").Close True 'fermeture du fichier apres copie
     '#Retour vers la main courante en mode initiale
        monClass.Sheets("Main-courante").Activate  'apparition de nouveau de la main courante
        Suppr_Lignes  'initialisation du nombre de lignes
        [A8:E19,G4:H4,F8:H10,A22:J29,A31:J38].ClearContents  'remet toutes les cellules vide
        [F12:F13,H12:H13,F15:F19,H15:H19] = False
        Réajusligne  'réajuste la hauteur des lignes
        Application.EnableEvents = True
        End If
        MsgBox "Nouvelle main courante prête à l'utilisation", vbExclamation, "Nouvelle main courante"
    End Sub
    J'espère que mes explications seront compréhensible, si non demandez moi plus de détails, ou fichiers.
    Merci à vous

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    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 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    cet exemple rapide boucle sur l'ensemble des Formes de la plage active, et pour ceux pouvant être dotés d'une macro (via la propriété OnAction), on la supprime

    à totalement adapter et sécuriser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test()
    Dim Ct As Shape
        For Each Ct In ActiveSheet.Shapes
            On Error Resume Next
                Ct.OnAction = ""
            On Error GoTo 0
        Next Ct
    End Sub

  3. #3
    Membre confirmé
    Homme Profil pro
    sécurité
    Inscrit en
    Septembre 2012
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : sécurité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2012
    Messages : 197
    Par défaut
    Bonjour joe.levrai

    Merci de ton aide
    Je viens de tester ta proposition, C'EST !!! juste parfais.. .

    C'est exactement ce que je voulais, grasse à toi j'avance à vitesse grand V sur mon fichier.

    Grand merci encore.

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

Discussions similaires

  1. [SP-2010] Utilisations des boutons du rubans pour Sauvegarder
    Par dragoli dans le forum SharePoint
    Réponses: 4
    Dernier message: 08/11/2011, 11h18
  2. [WD14] Images des boutons lors d'un changement de style
    Par Mimidoux dans le forum WinDev
    Réponses: 3
    Dernier message: 25/12/2009, 03h43
  3. [AJAX] [Struts] Pas d'affichage des boutons lors du raffraîchissement
    Par AnneB dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/07/2007, 13h29
  4. Affectation de macros à des boutons créés dynamiquement
    Par JM_Cholet dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/07/2007, 14h09
  5. Modification du caption des boutons lors d'un onBeforeUnload
    Par nico-pyright(c) dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 23/08/2005, 17h12

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