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 :

sécuriser des cellules


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut
    bonjour à tous
    je fais une application excel sous vba, apres execution je met mes resultat dans l'une des feuille de mon classeur. ce que je veux c'est de verrouiler la pour qu'un autre utilisateur ne poura pas modifier mes résultats? alors j'ai essaié format_cellule_protection_verouiller_mot de passe, ça marche , mais apres une nouvelles execution la feuille est non verouillée?????est ce que il y a un autre moyen pour le faire?? merci par avance

    autre chose j'ai essayer de proteger tout le classeur et les feuilles, alors là je ne peu meme pas executer mon programme car il feit appelle à des cellules de me feuilles???????

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Un ptit truc tout simple que j'utilise si je veux protéger une cellule c'est par exemple pour la cellule C5 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address = "$C$5" Then Target.Offset(1, 0).Activate
    End Sub

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut merci
    merci fring pour ta réponse

    tu sais j'ai mis mes codes dans des boutons se trouvant dans une userform, alors en essayant de mettre ton code au debut, ça s'execute mais ça fonctionne pas!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut dididida
    JE PENSE QUE MA QUESTION ETAIT BETE? IL FALLAIT APPELER LA PROCEDURE SINON ELLE NE VA PAS S4EXECUTER. JE VAIS REVOIR CA§§!!!!!

  5. #5
    Membre éclairé Avatar de tomy7
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 540
    Par défaut
    tu fais un sub togglebutton()

    dedands tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if togglebutton1.value= true then 
    activesheet.Unprotect 
    else 
    activesheet.protect userinterfaceonly:=true
    end if
    et si tu fais un bouton pour copier tes feuilles.
    tu ajoute a ton code activesheet.protect userinterfaceonly:=true
    et comme sa toute tes feuilles sont protegees...


    ou tu utilise ce code:

    que tu mets ds workbook_sheetchange ()

    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
    Selection.SpecialCells(xlCellTypeFormulas, 23).Select
    With Selection.Validation
    .Delete
    .Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop,
    Operator:= _
    xlBetween, Formula1:=">1"
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = ""
    .ErrorTitle = "Formule verrouillée"
    .InputMessage = ""
    .ErrorMessage = _
    "Pour déverouiller cette formule, Données -> Validation -> Autoriser
    Tout"
    .ShowInput = True
    .ShowError = True
    End With
    end sub

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut merci
    ma question peut apparaitre bete, mais franchements avec vba excel je n'ai jamais fait appel à des procedure je met tjr mes programme ds les boutons, alors dis moi stp est ce qu'il faut que j'appelle les procedure que tu vien de me donner à l'interieur de mon code?? merci c gentil

  7. #7
    Membre éclairé Avatar de tomy7
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 540
    Par défaut
    non tu les appel pas tu les mets dans

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
     
    End Sub
    et excel l appel tout seul des que ta feuille change

  8. #8
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut
    comme je veux verouiller toute les feuille de mon classeur alors j'ai utilsé la première procedure que tu m'avais données, mais quand j'execute il y rien qui est vérouillé!!!

  9. #9
    Membre éclairé Avatar de tomy7
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 540
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    dim Loc as variant
    On Error Resume Next
         Loc = Range("A1:AD600").SpecialCells(xlCellTypeFormulas, 23)
            With Loc.Validation
                .Delete
                .Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=">1"
                .IgnoreBlank = True
                .InCellDropdown = True
                .ErrorMessage = "Formulas are locked!"
                .ShowError = True
            End With
    le code ameliore que j ai utilise dans un outil

  10. #10
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut non
    ça marche pas toujour, d'ailleur dans quelle partie de ton code on précise que ça va etre toute les feuilles????

  11. #11
    Membre éclairé Avatar de tomy7
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 540
    Par défaut
    il suffit que tu rajoute activesheet devant range et c est finit
    quand tu copie ta feuille sa focntionne partt

    et pour verrouiller les cellules que tu veux: tu va dans data> validation >
    custom et tu rentre: >1

    et c est regle

  12. #12
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut non
    désolé mais rien; ça marche pas!!!!!!!!!tu as utiliser le meme programe et ça a marché!!

  13. #13
    Membre éclairé Avatar de tomy7
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 540
    Par défaut
    oui montre moi ton code depuis private sub....jusqua end sub

  14. #14
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut portant
    pourtant si j'ai bien compris il fallait mettre cette procedure seleument dans ThisWorkbook


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim Loc As Variant
    On Error Resume Next
         Loc = Range("A1:AD600").Activate.SpecialCells(xlCellTypeFormulas, 23)
            With Loc.Validation
                .Delete
                .Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=">1"
                .IgnoreBlank = True
                .InCellDropdown = True
                .ErrorMessage = "Formulas are locked!"
                .ShowError = True
            End With
    End Sub

  15. #15
    Membre éclairé Avatar de tomy7
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 540
    Par défaut
    tester chez moi a l instant fonctionne sans probleme si tu mets dans Menu data>validation> dans allow tu mets custom

    dans formula tu mets: >1 et la sa marche

  16. #16
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut pas encore
    je n'ai pas encore essayer ta dernière proposition, mais je me suis rendu compte qu avec le code précdent , il me pose un prbleme quand j'essaye d'executer mes programe(dans les quelle je fait appel à des cellules de mes feuilles) il m'affiche un message comme quoi c'est securéser, alors moi je veux sécuriser mes feuilles apres l'execution!!!!!!!!!peut etre c un peu compliqué!!!!!!

  17. #17
    Membre éclairé Avatar de tomy7
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 540
    Par défaut
    essaye ma derniere proposition.


    sinon utilise

    tu fais un sub togglebutton()

    dedands tu mets

    Code :
    if togglebutton1.value= true then
    activesheet.Unprotect
    else
    activesheet.protect userinterfaceonly:=true
    end ifet si tu fais un bouton pour copier tes feuilles.
    tu ajoute a ton code activesheet.protect userinterfaceonly:=true
    et comme sa toute tes feuilles sont protegees...
    je le fais sur mon dernier outils et sa fonctionne du tonnere , vba peux faire ce qu il veux mais excel bloc juste l interfaceutilisateur sur les cellules qui sont verrouille pour les deverouiller clic droit > formatcells>protection> locked decoche

  18. #18
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Pour info, la macro que je t'ai proposée ne se met pas dans un module mais directement dans la feuille, dans l'éditeur Visual Basic, menu de gauche, double clic sur la feuille en question et tu colles le code ensuite tu essayes d'écrire dans la cellule C5

  19. #19
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut
    merci fing, effectivement je peux pas ecrire, c'est ce que je voulais, et je suppose si je veux verrouillet toute la feuille je vais juste le préciser à la place C5.merci
    merci encore à toi Tomy, gace à toi j'ai compris comment ça fonctionne les procedure evenementielles, et meme plus, encore merci

    dernière question si je peux me permettre: si je veux selectionner toute la feuille ou bien des colonnes comment faire? j'ai essayer ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Target.Address = "$B$5:$C$5"
    et ça marche pas

  20. #20
    Membre éclairé Avatar de tomy7
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 540

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/12/2004, 11h51
  2. Colorier le fond des cellules d'une stringrid
    Par ORLIK dans le forum C++Builder
    Réponses: 7
    Dernier message: 09/11/2004, 21h22
  3. Problemes avec des cellules vides
    Par arsgunner dans le forum ASP
    Réponses: 7
    Dernier message: 14/06/2004, 08h42
  4. [JTable]Aligner le contenu des cellules
    Par )3lade dans le forum Composants
    Réponses: 2
    Dernier message: 09/03/2004, 13h24
  5. [] [Excel] Fusionner des cellules
    Par SamyD dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/12/2002, 18h37

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