Aide pour Application.DisplayAlerts et code VBA

COCOPSL - 16 août 2024 à 08:37
Mike-31 Messages postés 18333 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 23 août 2024 - 23 août 2024 à 12:09

Bonjour,

J'ai un code (ci dessous) qui permet de modifier la couleur de certaines cellules sur une feuille excel sécurisée en double cliquant.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Application.DisplayAlerts = False
If Not Application.Intersect(Target, Range("C13:AG618")) Is Nothing Then
    
    DESECURISERFEUILLE
    
    Target.FormatConditions.Delete
    coul = Target.Interior.ColorIndex
    Select Case coul
    Case 6
    Target.Interior.ColorIndex = 44
    Case 44
    Target.Interior.ColorIndex = -4142
    Case -4142
    Target.Interior.ColorIndex = 6
    Case Else
    MsgBox "Cette couleur n'est pas reconnue."
   
    End Select
End If
SECURISERFEUILLE

1 - je souhaiterai pourvoir le faire que sur les lignes  A13, AH13, A20, AH20,  A40, AH40 à la place de C13:AG618

2 - et ou mettre le Application.DisplayAlerts= False pour que le message "cette feuille est securisée......" n'apparaisse à chaque double clic.

Je vous remercie pour l'aide que vous m'apporterez.

Cordialement.

Bonjour,


Windows / Chrome 127.0.0.0

5 réponses

Mike-31 Messages postés 18333 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 23 août 2024 5 091
16 août 2024 à 10:30

Bonjour,

sous réserve d'avoir compris la demande,

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Application.DisplayAlerts = False
If Not Intersect(Target, Union([A13:AH13], [A20:AH20], [A40:AH40], [G12:H12], [I12:J12])) Is Nothing Then
Target.FormatConditions.Delete
coul = Target.Interior.ColorIndex
Select Case coul
Case 6
Target.Interior.ColorIndex = 44
Case 44
Target.Interior.ColorIndex = -4142
Case -4142
Target.Interior.ColorIndex = 6
Case Else
MsgBox "Cette couleur n'est pas reconnue."
End Select
End If
End Sub

0

Bonjour.

je vous remercie pour votre retour.

cela fonctionne pour le changement de couleurs sur les lignes désignées.

En revanche, la feuille étant sécurisé le message d’aller « la cellule ou le graphique que vous essayez de modifier se trouve sur une feuille protégée….. » apparaît toujours. Ai-je mal placé mon Applicationdisplay.alert=False ?

merci pour votre aide ?

0
Mike-31 Messages postés 18333 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 23 août 2024 5 091
19 août 2024 à 11:50

Re,

Si ta feuille est protégée autant insérer dans le code la déprotection en début d'exécution et la reprotection en fin de code.

es ce que ton onglet est protégé avec un mot de passe ?


0

Bonjour.

Oui ma feuille est sécurisée par un mot de passe.

C’est  bien ce que j’ai fait. Mais le message apparaît quand même.

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 18333 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 23 août 2024 5 091
Modifié le 23 août 2024 à 12:10

Re,

si ce n'est pas encore fait, dans le Visual Basic ouvre un Module en début de procédure crée cette ligne avec entre parenthèse ton mot de passe de protection de ta feuille.

dans mon exemple "toto"

Public Const Mot_pas As Variant = "toto"

ensuite crée ton code sur mon exemple

https://www.cjoint.com/c/NHxkioZva3F

ensuite si tu as besoin d'explication sur le code, reviens dans la discussion


0