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 :

Comment interdire la suppression d'une feuille ?


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 116
    Points : 59
    Points
    59
    Par défaut Comment interdire la suppression d'une feuille ?
    Bonjour au forum,

    Je voudrais interdire la suppression d'une feuille de calcul. Un truc pour empecher toute manipulation fâcheuse...

    Merci.

  2. #2
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    bonjour mobiclick le forum peut être comme cela!!! a tester

    dans thisworkbook

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
    Application.CommandBars("Ply").Enabled = False
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.CommandBars("Ply").Enabled = True
    End Sub
    SALUTATIONS

  3. #3
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 116
    Points : 59
    Points
    59
    Par défaut
    merci Laetitia mais j'ai essayé ça ne marche pas ...j'arrive à supprimer la feuille

  4. #4
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    re, bizarre j ai teste sous excel 2007 ca marche??
    tu le met ou le code!!
    SALUTATIONS

  5. #5
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 116
    Points : 59
    Points
    59
    Par défaut
    Je le mets dans workbook .... Je fais alt+f11 , puis je double clic Thisworkbook et je ferme. Je dois dire que j'ai déjà autre un code dans Thisworkbook , peut-être que c'est ça le problème ?

  6. #6
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 116
    Points : 59
    Points
    59
    Par défaut
    Milles excuses Laetitia ça marche parfaitement....j'aurai voulu que ça soit valable pour une seule feuille de classeur seulement

    stp laetitia peux-tu me montrer comment le rétablir car il a disparu pour toutes les classeurs....merci

  7. #7
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Bonjour
    Tu as déja le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.CommandBars("Ply").Enabled = True
    End Sub
    A la fermeture il est remis
    sinon met juste cette ligne dans une macro quelconque et execute là
    « Il n'y a pas de recette miracle qui permet aux gens d’écrire des programmes corrects sans avoir à réfléchir. Il faut apprendre aux gens comment réfléchir »

  8. #8
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 116
    Points : 59
    Points
    59
    Par défaut
    merci krovax
    t'aurais pas un truc pour supprimer le clic droit uniquement pour une feuille ,pas toutes les feuilles

  9. #9
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Tout simplement les évènement de thisworkbook
    module this workbokk
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    If Sh.Name = "Feuil1" Then Cancel = True
    End Sub
    Ou alors dans le code de la feuille

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    End Sub
    « Il n'y a pas de recette miracle qui permet aux gens d’écrire des programmes corrects sans avoir à réfléchir. Il faut apprendre aux gens comment réfléchir »

  10. #10
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 116
    Points : 59
    Points
    59
    Par défaut
    Ca ne marche pas et je ne vois pas pourquoi... J'ai fait copier coller dans worksheet ... Le clic droit est toujours activé ?

  11. #11
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Dans le code de la feuille en question tu met le deuxième ou dans this workbook tu met le premier avec le bon nom de feuille

    Tu fait un clique droit ou?
    « Il n'y a pas de recette miracle qui permet aux gens d’écrire des programmes corrects sans avoir à réfléchir. Il faut apprendre aux gens comment réfléchir »

  12. #12
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 116
    Points : 59
    Points
    59
    Par défaut
    Désolé de t'importuner mais ça ne marche pas... Je suis étonné car tu n'es pas le seul à me dire le contraire...

    Je prends ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    End Sub
    et je le place dans le code de la feuille, c'est à dire que je double clic sur la feuille dans vbe et je colle le code en question.

    Normalement c'est ça ?

  13. #13
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    et je le place dans le code de la feuille, c'est à dire que je double clic sur la feuille dans vbe et je colle le code en question.

    Normalement c'est ça ?
    non ce n'est pas ça, tu vas dans le code de la feuille et tu choisi worksheet dans la liste en haut à gauche et Befordoubleclick dans la liste de droite, le code s'ecrit tout seul !

  14. #14
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 116
    Points : 59
    Points
    59
    Par défaut
    MERCI A TOUS
    Franchement je suis un peu désemparé je n'arrive pas à trouver ou mettre le code

  15. #15
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    « Il n'y a pas de recette miracle qui permet aux gens d’écrire des programmes corrects sans avoir à réfléchir. Il faut apprendre aux gens comment réfléchir »

  16. #16
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 116
    Points : 59
    Points
    59
    Par défaut
    MERCI KROVAX
    Tu sais mon probleme c'est d'empecher la suppression d'une feuille bien précise de mon classeur .le code que j'ai testé plus haut désactive le clic droit sur une cellule mais lorsque je clic droit sur l'onglet feuille et bien il fonctionne tjr.Au fait je voudrais juste virer l'option "supprimer" du menu contextuel clic droit sur l'onglet feuille comme ça je suis sur que ma feuille ne sera pas supprimé malencontreusement.mon classeur est ouvert aux autres utilisateurs.merci d'avoir lu et excuse mon insistance.

  17. #17
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    re le fil tu peus t' orienter comme cela en bloquant la sauvegarde si la feuille est supprimer!! en attendant de trouver une réponse
    dans l'exemple je prends la feuille3

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Option Explicit
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If F(ThisWorkbook, "feuil3") Then
    ThisWorkbook.Save
    Else
    MsgBox "attention vous avez supprimer la feuille3 donc pas de sauvegarde!!!"
    Cancel = True
    End If
    End Sub
    Function F(wk As Workbook, Feuille) As Boolean
    On Error Resume Next
    F = Not (wk.Sheets(Feuille) Is Nothing)
    End Function
    SALUTATIONS

  18. #18
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 116
    Points : 59
    Points
    59
    Par défaut aide pour placer un "option explicite"
    bonjour au forum

    Pouvez-vous me dire ou placer ce code qui interdit une sauvegarde si une condition n'est pas vérifiée.voici le code postée par Laetitia

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Option Explicit
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If F(ThisWorkbook, "feuil3") Then
    ThisWorkbook.Save
    Else
    MsgBox "attention vous avez supprimer la feuille3 donc pas de sauvegarde!!!"
    Cancel = True
    End If
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Function F(wk As Workbook, Feuille) As Boolean
    On Error Resume Next
    F = Not (wk.Sheets(Feuille) Is Nothing)
    End Function
    merci de votre aide

  19. #19
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Le option explicite doit être placé tout en haut du module en toute première ligne il force a déclarer les variables dans le module en question
    De la lecture a ce sujet :
    http://mhubiche.developpez.com/Access/variables/
    « Il n'y a pas de recette miracle qui permet aux gens d’écrire des programmes corrects sans avoir à réfléchir. Il faut apprendre aux gens comment réfléchir »

  20. #20
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    re le fil le code tu le mets dans Thisworkbook

    option explicit sert a declarer les variables explicitement!! si tu as pas de variables dans Thisworkbook pas indispensable par curiosite regarde l aide sur option explicit. personnellement je le mets au debut de chaque module standard module de classe ect...
    si tu as deja du code dans Thisworkbook
    tu as pas le droit d ' avoir 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Private Sub Workbook_Open()
    End Sub
    ect...

    ps salut l' ami krovax pas rafraichi!!!!!
    SALUTATIONS

Discussions similaires

  1. [XL-2003] Interdir la suppression d'une feuille
    Par Brigand1936 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/01/2011, 14h25
  2. comment interdire la suppression d'une ligne
    Par sth56 dans le forum Requêtes
    Réponses: 5
    Dernier message: 16/07/2009, 14h12
  3. Comment Interdire la suppression d'une base mdb ?
    Par abdelo78 dans le forum Sécurité
    Réponses: 1
    Dernier message: 19/02/2007, 08h52
  4. Comment interdire la fermeture d'une fiche empilée ?
    Par psau dans le forum C++Builder
    Réponses: 3
    Dernier message: 05/07/2004, 14h01
  5. [VB6] [Form] Interdire le déplacement d'une feuille
    Par Loïc dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 23/09/2002, 15h02

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