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 :

Protéger plusieurs feuilles, et sélectionner quelques cellule et les verrouiller si valeur non nulle


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Femme Profil pro
    informatique générale secteur commercial
    Inscrit en
    Décembre 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : informatique générale secteur commercial
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2013
    Messages : 61
    Par défaut Protéger plusieurs feuilles, et sélectionner quelques cellule et les verrouiller si valeur non nulle
    Bonjour , pour verrouiller une cellule si une valeur différente de nulle , c a dire si y'a une valeur dans la cellule on verrouille la cellule sinon on donne la main , mais une fois on met une valeur dans cette cellule quand on enregistre, cette cellule se verrouille donc a son tour

    Voila le code
    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
    Private Sub Workbook_Open()
    Dim c As Range
    Dim d As Range
    Dim b As Range
     
    sheets(4).Protect Password:="123456", userinterfaceonly:=True
     
     
    For Each c In Range("C17:K47")
      If c.Value <> "" Then c.Locked = True Else c.Locked = False
    Next c
     
    For Each d In Range("Q17:W47")
      If d.Value <> "" Then d.Locked = True Else d.Locked = False
    Next d
     
    For Each b In Range("Y17:AU47")
      If b.Value <> "" Then b.Locked = True Else b.Locked = False
    Next b
    End Sub

    je verrouille donc les cellule de C17 à K47 et de Q17 à W47, et de Y17 à AU47

    Ceci marche pour une feuille

    Mais je veux Verrouiller 10 feuilles sur 14 c'est a dire pas toutes les feuilles !

    Mais j'y arrive pas a protéger plusieurs feuilles au même temps, j'essaie de mettre le code dans WorkSheet pour chaque feuille mais ça marche pas, je souhaiterais savoir comment faire pour protéger plusieurs feuilles

    Merci et bonne journée

  2. #2
    Invité
    Invité(e)
    Par défaut bonjour,
    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
    Private Sub Workbook_Open()
    Dim c As Range
    Dim d As Range
    Dim b As Range
     
    For I = 1 To Worksheets.Count
        If I <> 1 And I <> 5 And I <> 6 Then ProtecFeuille Worksheets(I)
    Next
    End Sub
    Sub ProtecFeuille(F As Worksheet)
    Dim c As Range
    Dim d As Range
    Dim b As Range
     
    F.Protect Password:="123456", userinterfaceonly:=True
     
     
    For Each c In F.Range("C17:K47")
      If c.Value <> "" Then c.Locked = True Else c.Locked = False
    Next c
     
    For Each d In F.Range("Q17:W47")
      If d.Value <> "" Then d.Locked = True Else d.Locked = False
    Next d
     
    For Each b In F.Range("Y17:AU47")
      If b.Value <> "" Then b.Locked = True Else b.Locked = False
    Next b
    End Sub

  3. #3
    Membre actif
    Femme Profil pro
    informatique générale secteur commercial
    Inscrit en
    Décembre 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : informatique générale secteur commercial
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2013
    Messages : 61
    Par défaut
    Merci rdurupt

    Je reçois l'erreur

    Erreur d’exécution '13'

    Incompatibilité de type


    ça me met en jaune le Bizarre ça marchait avec une seule feuille , et la j'y arrive pas, je ne sais plus pourquoi!
    est ce que c'est du au fait que j'ai déja protégé la feuille !? j'ai déja essayé un autre code!

    Et avant il faudrait bien que je sélectionne la feuille je met cellule verrouillée puis, je sélectionne celle a qui je veux appliquer le code et je met déverrouiller c'est bien ça ?
    car avec un truc simple ça marche, mais la avec un classeur plein de feuille et plusieurs zone a verrouillé , je m'embrouille .



    Et pour ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For I = 1 To Worksheets.Count
        If I <> 1 And I <> 5 And I <> 6 Then ProtecFeuille Worksheets(I)
    Next

    Le 1 , 5 et 6 représente les feuilles au quelle je n'applique pas le code c'est ça ?


    Merci bcp pour votre lecture et l’intérêt que vous porter a ma question !

  4. #4
    Invité
    Invité(e)
    Par défaut
    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
    Private Sub Workbook_Open()
    Dim c As Range
    Dim d As Range
    Dim b As Range
     
    For I = 1 To Worksheets.Count
        If I <> 1 And I <> 5 And I <> 6 Then ProtecFeuille Worksheets(I)
    Next
    End Sub
    Sub ProtecFeuille(F As Worksheet)
    Dim c As Range
    Dim d As Range
    Dim b As Range
     
    F.Protect PassWord:="123456", userinterfaceonly:=True
     
     
    For Each c In F.Range("C17:K47")
      If Trim("" & c.Value) <> "" Then c.Locked = True Else c.Locked = False
    Next
     
    For Each d In F.Range("Q17:W47")
      If Trim("" & d.Value) <> "" Then d.Locked = True Else d.Locked = False
    Next d
     
    For Each b In F.Range("Y17:AU47")
      If Trim("" & b.Value) <> "" Then b.Locked = True Else b.Locked = False
    Next b
    End Sub
    Le 1 , 5 et 6 représente les feuilles au quelle je n'applique pas le code c'est ça ?
    exact

  5. #5
    Membre actif
    Femme Profil pro
    informatique générale secteur commercial
    Inscrit en
    Décembre 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : informatique générale secteur commercial
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2013
    Messages : 61
    Par défaut
    ça marche Nikel , Merci bcp

    Mais L'ouverture du classeur est devenue tres lente c'est normal ?

  6. #6
    Invité
    Invité(e)
    Par défaut
    difficile a dire maintenant tu scan toutes tes feuilles!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Workbook_Open()
    Dim c As Range
    Dim d As Range
    Dim b As Range
    ActiveWorkbook.Application.Application.EnableEvents = False 
    For I = 1 To Worksheets.Count
        If I <> 1 And I <> 5 And I <> 6 Then ProtecFeuille Worksheets(I)
    Next
    ActiveWorkbook.Application.Application.EnableEvents = True
    End Sub

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/03/2015, 20h14
  2. [XL-2013] Protéger plusieurs feuilles d'un classeur avec un mot de passe
    Par Chacha40 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/02/2014, 22h31
  3. Réponses: 3
    Dernier message: 09/01/2012, 14h08
  4. Plusieurs feuilles de style IE /FF, mais les différencier
    Par Askental dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 27/07/2010, 19h41
  5. Récupérer nombre de cellule de valeur non nulle
    Par Bibicmoi dans le forum Excel
    Réponses: 8
    Dernier message: 24/01/2009, 19h10

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