Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Protection d'une plage de cell par VBA

4 réponses
Avatar
Congelator
Salut à tous,

Un utilisateur me pose une colle. Il doit "mélanger" des cellules avec une
mise en forme conditionnelle (donc ne pas protéger sa feuille) et des
cellules contenant des formules (donc à protéger...). J'ai déjà trouvé dans
le forum comment protéger 1 cellule par VBA mais comment faire pour définir
une plage de cellules (A5:A17 et AG5:AI17) ? J'ai tout essayé (ou presque car
la solution existe..) mais je n'y arrive pas ?

Voici le code déjà trouvé :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$5" Then
Application.Undo
End If
End Sub

Si quelqu'un a une solution, merci d'avance

Céd
--
Céd / Lausanne

4 réponses

Avatar
AV
le forum comment protéger 1 cellule par VBA


Il y a une confusion entre protection et verrouillage
Les cellules sont verrouillées ou non (elles le sont toutes par défaut dans une
nouvelle feuille)
Le verrouillage (format de cellule) n'a d'effet que sur une feuille protégée
Donc : Déverrouiller les cellules dans lesquelles tu veux autoriser la saisie
puis protéger la feuille

AV

Avatar
LSteph
Bonsoir Congelatoir,
'***
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ict1 As Range
Dim ict2 As Range
Set ict1 = Intersect(Target, Range("A5:a17"))
Set ict2 = Intersect(Target, Range("ag5:ai17"))
If ict1 Is Nothing And ict2 Is Nothing Then Exit Sub
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
End Sub
'***

'lSteph

"Congelator" <congelator(a_effacer)@hotmail.com> a écrit dans le message de
news:
Salut à tous,

Un utilisateur me pose une colle. Il doit "mélanger" des cellules avec une
mise en forme conditionnelle (donc ne pas protéger sa feuille) et des
cellules contenant des formules (donc à protéger...). J'ai déjà trouvé
dans
le forum comment protéger 1 cellule par VBA mais comment faire pour
définir
une plage de cellules (A5:A17 et AG5:AI17) ? J'ai tout essayé (ou presque
car
la solution existe..) mais je n'y arrive pas ?

Voici le code déjà trouvé :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$5" Then
Application.Undo
End If
End Sub

Si quelqu'un a une solution, merci d'avance

Céd
--
Céd / Lausanne


Avatar
Congelator
Salut LSteph,

Un grand MERCI pour ton aide. C'est exactement ce dont j'avais besoin.

Céd

"LSteph" wrote:

Bonsoir Congelatoir,
'***
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ict1 As Range
Dim ict2 As Range
Set ict1 = Intersect(Target, Range("A5:a17"))
Set ict2 = Intersect(Target, Range("ag5:ai17"))
If ict1 Is Nothing And ict2 Is Nothing Then Exit Sub
With Application
..EnableEvents = False
..Undo
..EnableEvents = True
End With
End Sub
'***

'lSteph

"Congelator" <congelator(a_effacer)@hotmail.com> a écrit dans le message de
news:
Salut à tous,

Un utilisateur me pose une colle. Il doit "mélanger" des cellules avec une
mise en forme conditionnelle (donc ne pas protéger sa feuille) et des
cellules contenant des formules (donc à protéger...). J'ai déjà trouvé
dans
le forum comment protéger 1 cellule par VBA mais comment faire pour
définir
une plage de cellules (A5:A17 et AG5:AI17) ? J'ai tout essayé (ou presque
car
la solution existe..) mais je n'y arrive pas ?

Voici le code déjà trouvé :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$5" Then
Application.Undo
End If
End Sub

Si quelqu'un a une solution, merci d'avance

Céd
--
Céd / Lausanne







Avatar
LSteph
;-) à bientôt

lSteph
"Congelator" <congelator(a_effacer)@hotmail.com> a écrit dans le message de
news:
Salut LSteph,

Un grand MERCI pour ton aide. C'est exactement ce dont j'avais besoin.

Céd

"LSteph" wrote:

Bonsoir Congelatoir,
'***
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ict1 As Range
Dim ict2 As Range
Set ict1 = Intersect(Target, Range("A5:a17"))
Set ict2 = Intersect(Target, Range("ag5:ai17"))
If ict1 Is Nothing And ict2 Is Nothing Then Exit Sub
With Application
..EnableEvents = False
..Undo
..EnableEvents = True
End With
End Sub
'***

'lSteph

"Congelator" <congelator(a_effacer)@hotmail.com> a écrit dans le message
de
news:
Salut à tous,

Un utilisateur me pose une colle. Il doit "mélanger" des cellules avec
une
mise en forme conditionnelle (donc ne pas protéger sa feuille) et des
cellules contenant des formules (donc à protéger...). J'ai déjà trouvé
dans
le forum comment protéger 1 cellule par VBA mais comment faire pour
définir
une plage de cellules (A5:A17 et AG5:AI17) ? J'ai tout essayé (ou
presque
car
la solution existe..) mais je n'y arrive pas ?

Voici le code déjà trouvé :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$5" Then
Application.Undo
End If
End Sub

Si quelqu'un a une solution, merci d'avance

Céd
--
Céd / Lausanne