Problème pour eviter les .Select Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
K
Kitesurf
Membre habitué
Membre habitué
Messages : 110
Inscrit le : 2 septembre 2016
Version d'Excel : 2016

Message par Kitesurf » 30 novembre 2017, 09:44

Bonjour à tous,

Pour tenter de limiter les .Select qui ralentissent les classeurs j'ai essayer de faire autrement mais ça ne veut pas... Je précise que j'y arrive grâce à l'enregistreur de macro mais quand il s'agit de limiter les .Select inévitables avec l'enregistreur de macro je trébuche.


Mon but :
Pouvoir laisser modifiable une certaine partie des cellules d'une feuille nommée "ACCES"

J'utilise donc le code suivant :

(Je déverouille la plage A7:AZ6000 et C6:AZ6 de la feuille ACCESS puis j'y met une protection.
''' --- Je viens verouiller les cellules qui m'arrangent dans la feuille ACCES --- '''

Dim PlageACCES As Worksheet
Set PlageACCES = Worksheets("ACCES")


Set PlageACCES = PlageACCES("ACCES").Range("A7:AZ6000,C6:AZ6")

With PlageACCES

    .Locked = False
    .FormulaHidden = False
    .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingColumns:=True
    .EnableSelection = xlUnlockedCells
    
End With

End Sub

''' --- EOS --- '''
Sachant que c'est un petit code je n'ai pas rajouter le fichier, si nécessaire je vous le rajoute mais n'hésitez pas à me le dire.

Merci pour votre future aide.

Kitesurf.

Précision :

"Membre de méthode ou de données introuvables .Locked= est surligné
Avatar du membre
LouReeD
Contributeur
Contributeur
Messages : 7'094
Appréciations reçues : 370
Inscrit le : 14 octobre 2014
Version d'Excel : 2013 FR, 2016 FR
Contact :
Téléchargements : Mes applications

Message par LouReeD » 30 novembre 2017, 10:03

Bonjour,

un essai de correction de code :
    Dim PlageACCES As Range
    Set PlageACCES = Sheets("ACCES").Range("A7:AZ6000,C6:AZ6")
    With PlageACCES
        .Locked = False
        .FormulaHidden = False
        .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingColumns:=True
        .EnableSelection = xlUnlockedCells
    End With
Mais si votre feuille est protégée, alors il faut la déprotéger avant de faire ces modifications, donc
    Dim PlageACCES As Range
    Set PlageACCES = Sheets("ACCES").Range("A7:AZ6000,C6:AZ6")
    Sheets("ACCES").UnProtect
    With PlageACCES
        .Locked = False
        .FormulaHidden = False
        .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingColumns:=True
        .EnableSelection = xlUnlockedCells
    End With
    Sheets("ACCES").Protect
Ici c'est une dé protection et protection sans mot de passe...

@ bientôt

LouReeD
Quelques règles à lire ICI ;;)
______________________________________________________Vous pouvez allez faire un tour sur : Index de "Mes applications" ;;)
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 9'479
Appréciations reçues : 428
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 30 novembre 2017, 10:07

Bonjour,

petite correction (3 manières différentes de supprimer les selects et d'utiliser les références de feuille et de plage)
    With Worksheets("ACCES")
        With .Range("A7:AZ6000,C6:AZ6")
            .Locked = False
            .FormulaHidden = False
        End With
        .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingColumns:=True
        .EnableSelection = xlUnlockedCells
    End With
    Worksheets("ACCES").Range("A7:AZ6000,C6:AZ6").Locked = False
    Worksheets("ACCES").Range("A7:AZ6000,C6:AZ6").FormulaHidden = False
    Worksheets("ACCES").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingColumns:=True
    Worksheets("ACCES").EnableSelection = xlUnlockedCells
    Dim FeuilleACCES As Worksheet
    Dim PlageACCES As Range
    Set FeuilleACCES = Worksheets("ACCES")
    Set PlageACCES = FeuilleACCES.Range("A7:AZ6000,C6:AZ6")
    With FeuilleACCES
        With PlageACCES
            .Locked = False
            .FormulaHidden = False
        End With
        .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingColumns:=True
        .EnableSelection = xlUnlockedCells
    End With
K
Kitesurf
Membre habitué
Membre habitué
Messages : 110
Inscrit le : 2 septembre 2016
Version d'Excel : 2016

Message par Kitesurf » 30 novembre 2017, 11:37

Re,

Merci à vous deux les solutions fonctionnent :wink:

Bonne journée 8-)
Avatar du membre
LouReeD
Contributeur
Contributeur
Messages : 7'094
Appréciations reçues : 370
Inscrit le : 14 octobre 2014
Version d'Excel : 2013 FR, 2016 FR
Contact :
Téléchargements : Mes applications

Message par LouReeD » 1 décembre 2017, 16:24

Bonjour,

et merci de vos remerciements !

@ bientôt

LouReeD
1 membre du forum aime ce message.
Quelques règles à lire ICI ;;)
______________________________________________________Vous pouvez allez faire un tour sur : Index de "Mes applications" ;;)
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message