OVH Cloud OVH Cloud

Range Lecture seule

3 réponses
Avatar
Kamel
Bonsoir à tous,

Mise à part protéger une feuille Excel, peut on faire en sorte que des
cellules soient en lecture seule ?? (leur valeur sera mise à jour avec du
code vba)

Merci

Kamel

3 réponses

Avatar
anonymousA
bonjour,

utiliser l'evenement worksheet_selectionchange et dans le coprs de
procédure, écrire 'en supposant ici que c'est la cellule A1 qu'il ne
faut pas selectionner et que la cellule B1 est selectionnable, mais tout
est adaptable bien sur). Marche aussi pour les selections de plus d'une
cellule mais sans le msgbox toutefois, ce qui est bien normal.Pour que
le Msgbox fonctionne dans ce cas, faut une petite modif.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Address = "$A$1" Then MsgBox "pas possible d'acceder"

Application.EnableEvents = False
Target.Offset(0, 1).Activate
Application.EnableEvents = True

End Sub

Attention , cette proc se déclenchera si tu tentes par une autre proc
VBA de sélectionner ou d'activer la cellule A1. Pour emêcher son
fonctionnement, utiliser Application.EnableEvents = False, à ne pas
oubler de remettre à true ensuite.

A+


Bonsoir à tous,

Mise à part protéger une feuille Excel, peut on faire en sorte que des
cellules soient en lecture seule ?? (leur valeur sera mise à jour avec du
code vba)

Merci

Kamel




Avatar
Kamel
Merci excellente idée !


"anonymousA" a écrit dans le message de news:
42c06abe$0$894$
bonjour,

utiliser l'evenement worksheet_selectionchange et dans le coprs de
procédure, écrire 'en supposant ici que c'est la cellule A1 qu'il ne faut
pas selectionner et que la cellule B1 est selectionnable, mais tout est
adaptable bien sur). Marche aussi pour les selections de plus d'une
cellule mais sans le msgbox toutefois, ce qui est bien normal.Pour que le
Msgbox fonctionne dans ce cas, faut une petite modif.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Address = "$A$1" Then MsgBox "pas possible d'acceder"

Application.EnableEvents = False
Target.Offset(0, 1).Activate
Application.EnableEvents = True

End Sub

Attention , cette proc se déclenchera si tu tentes par une autre proc VBA
de sélectionner ou d'activer la cellule A1. Pour emêcher son
fonctionnement, utiliser Application.EnableEvents = False, à ne pas oubler
de remettre à true ensuite.

A+


Bonsoir à tous,

Mise à part protéger une feuille Excel, peut on faire en sorte que des
cellules soient en lecture seule ?? (leur valeur sera mise à jour avec du
code vba)

Merci

Kamel




Avatar
anonymousA
re,

décidement,ce soir je suis pas au mieux.

il faut écrire bien sur

If Not Intersect(Range("A1"), Target) Is Nothing Then
MsgBox "pas possible d'acceder"

Application.EnableEvents = False
Target.Offset(0, 1).Activate
Application.EnableEvents = True

End If

et du coup marche aussi pour les selections multiples. Ce soir, je vais
m'en tenir là ( ou las , qui sait !!!.

A+


bonjour,

utiliser l'evenement worksheet_selectionchange et dans le coprs de
procédure, écrire 'en supposant ici que c'est la cellule A1 qu'il ne
faut pas selectionner et que la cellule B1 est selectionnable, mais tout
est adaptable bien sur). Marche aussi pour les selections de plus d'une
cellule mais sans le msgbox toutefois, ce qui est bien normal.Pour que
le Msgbox fonctionne dans ce cas, faut une petite modif.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Address = "$A$1" Then MsgBox "pas possible d'acceder"

Application.EnableEvents = False
Target.Offset(0, 1).Activate
Application.EnableEvents = True

End Sub

Attention , cette proc se déclenchera si tu tentes par une autre proc
VBA de sélectionner ou d'activer la cellule A1. Pour emêcher son
fonctionnement, utiliser Application.EnableEvents = False, à ne pas
oubler de remettre à true ensuite.

A+



Bonsoir à tous,

Mise à part protéger une feuille Excel, peut on faire en sorte que des
cellules soient en lecture seule ?? (leur valeur sera mise à jour avec
du code vba)

Merci

Kamel