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 :

[VBA-EXCEL] Supprimer macro d'un fichier


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 66
    Points : 30
    Points
    30
    Par défaut [VBA-EXCEL] Supprimer macro d'un fichier
    Bonjour tout le monde,

    J’ai un petit problème… alors je vous explique, j’ai une feuille d’un classeur que je sauvegarde dans un nouveau classeur, jusque la tout va bien. Cette feuille que je cherche a sauvegardé contient des macros vba, j’ai donc mis en place lors de la sauvegarde une petite macro pour supprimer l’ensemble des les lignes de code (vba) pour la feuille elle-même et pour le Thisworkbook du nouveau classeur (pour virer le option explicit qu’il met de base). J’ai vérifié lorsque je lance le nouveau classeur celui ne contient aucune ligne de code aucun module mais il me demande toujours quand je lance le fichier si je veux activer ou non les macros…
    Chose encore plus étrange je lance le fichier j’active ou non les macros je fais un simple ctrl+s je ferme et revoure le fichier, et la ô miracle je n’ai plus la fenêtre d’activation des macros alors que j ai fait une simple sauvegarde du fichier plus une réouverture…

    Je vous mets mon code de suppression des lignes et de sauvegarde mais je vous avous que je ne comprends pas trop.

    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
     
    'Sauvegarde de ma feuille dans un nouveau classeur
    Sub sav()
    sheetend = ActiveSheet.Name
    classeur = ThisWorkbook.Name
    Worksheets(sheetend).Copy
    If Application.Dialogs(xlDialogSaveAs).Show = False Then
    ActiveWorkbook.Close False
    Windows(classeur).Activate
    Exit Sub
    End If
    Call EffaceCodeObjet
    Windows(classeur).Activate
    End Sub
     
    'Je nettoie le nouveau classeur de toutes macro et je le sauvegarde
    Sub EffaceCodeObjet()
    On Error GoTo ErrHandle
    With ActiveWorkbook.VBProject.VBComponents(sheetend).CodeModule
    .DeleteLines 1, .CountOfLines
    End With
    With ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
    .DeleteLines 1, .CountOfLines
    End With
    Worksheets(sheetend).Shapes("bt_new_calc").Delete
    Worksheets(sheetend).Shapes("bt_sav").Delete
    ActiveWorkbook.Close True
    Exit Sub
    ErrHandle:
    MsgBox "ERREUR dans la suppression du code du Module", vbOKOnly + vbCritical
    End Sub

  2. #2
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 66
    Points : 30
    Points
    30
    Par défaut
    Bon je viens de voir ça sur le forum :
    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 SupprimeToutVBA()
    Dim VbComp As Object
    ThisWorkbook.SaveAs "D:\dossier\general\excel\test.xls"
    For Each VbComp In ActiveWorkbook.VBProject.VBComponents ' 'suppression vba
    Select Case VbComp.Type
    Case 1 To 3
    ActiveWorkbook.VBProject.VBComponents.Remove VbComp
    Case Else
    With VbComp.CodeModule
    .DeleteLines 1, .CountOfLines
    End With
    End Select
    Next VbComp
    ActiveWorkbook.Save ' enregistre les suppressions
    End Sub
    Je vais donc tester mais j'aurai bien voulu comprendre mon problème si quelqu'un à une idée ? pourquoi il faut que je réouvre le fichier sauvegardé, que je le sauvegarde à nouveau pour que je n'est plus cette fenetre d'activation des macros quand je relance le fichier !

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 66
    Points : 30
    Points
    30
    Par défaut
    Avec ce nouveau code pas de problème ça marche je vais laisser le topic en non résolu voir si quelqu'un à trouver le problème qu'il y à dans mon code
    merci

  4. #4
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 66
    Points : 30
    Points
    30
    Par défaut
    Bon tanpis personne n'a l'air de savoir je vais quand même mettre résolu puisque c'est le cas

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

Discussions similaires

  1. [VBA Excel] Recupérer le répertoire du fichier .xls courrant
    Par greg2 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 16/02/2015, 17h58
  2. [VBA] Excel Récuperer Macro sur fichier corrompu
    Par Phenx dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/01/2009, 13h13
  3. [VBA][Excel]Exécution macro avec fichiers source
    Par ouezon dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/12/2005, 00h00
  4. [VBA Excel] supprimer tous les onglets sauf un
    Par drinkmilk dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 09/11/2005, 18h11
  5. [VBA][Excel]Supprimer une partie du texte d'une grosse liste
    Par annedeblois dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/09/2005, 17h15

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