OVH Cloud OVH Cloud

Copie de cellules protégées sous Excel

12 réponses
Avatar
js
Si vous prot=E9gez une cellule sous Excel, puis vous masquez=20
la colonne qui contient la cellule pour =E9viter qu'elle=20
soit visible, il est toujours possible de copier la=20
cellule dans un autre classeur en l'englobant dans une=20
s=E9lection. Ceci est possible m=EAme si vous prot=E9gez le=20
classeur.
Je cherche une m=E9thode qui me permette de contourner le=20
probl=E8me
Merci

2 réponses

1 2
Avatar
Michel HOLDERITH
Salut,
Oui je sais d'ailleurs j'ai fait un post a ce sujet aujourd'hui a 11:10,
mais personne ne m'a repondu......
Je ne vois pas trop comment faire..... si t'as du neuf n'esite pas :

@+
Michel.

wrote in message
news:0c6901c39e30$46b7b810$
Très bonne idée

Je vais l'appliquer.
Entre temps j'ai affiné ma macro et je
supprime tout raccourci qui permet de copier,
même dans la barre d'outils.
J'ai encore un souci, je sais je suis pénible,
mais le clic doit fonctionne toujours sur la barre
d'outils, alors un bon utilisateur peut par le clic droit
afficher le menu et cliquer sur personaliser et ajouter
les icônes pour copier/coller...
Alors peut être aurais-tu encore une très bonne idée.
Un grand merci et à disposition pour d'éventuelles
questions sur VBA/Excel.
Ciao Joseph


-----Message d'origine-----
oups.......
effectivement..... d'ailleur ca me fais penser que pour
mon projet c'est la

meme chose, une solution vite fait, mais que je vais
integrer, c'est de tout

verouiller par mot de passe sheet et workbook (ca j'ai
fait) et ensuite de

mettre qu'une seule page visible au debut avec un seul
lien vers les autre

pages.Lien qui fonctionne avec une macro qui rendra
visible les autres

pages. Ce qui veut dire que si tu n'actives pas les
macros tu ne pourras

jamais utiliser les autres feuilles...
Qu'en penses tu ?
@+
Michel.

wrote in message
news:0d2201c39e1d$53dba690$
Resalut,

Je me suis inspiré de ta solution pour trouver une parade
à mon problème.

J’ai fais plus simple j’ai désactivé les options de copies
des menus Excel ;
dans mon cas le classeur et les cellules qui ne sont pas
modifiables sont
déjà protégées :

Voici le code dans WorkBook

Private Sub WorkBook_Open()
If ActiveSheet.Name = "Titi" Then
Application.CommandBars("Edit").Controls
(3).Enabled = False
Application.CommandBars("Edit").Controls
(4).Enabled = False
Application.CommandBars("Edit").Controls
(5).Enabled = False
Application.CommandBars("Edit").Controls
(6).Enabled = False
Application.CommandBars("Edit").Controls
(7).Enabled = False
Application.CommandBars("View").Controls
(3).Enabled = False
End If
End Sub


Private Sub Workbook_SheetActivate(ByVal NomFeuille As
Object)
If NomFeuille.Name = "Titi" Then
Application.CommandBars("Edit").Controls
(3).Enabled = False
Application.CommandBars("Edit").Controls
(4).Enabled = False
Application.CommandBars("Edit").Controls
(5).Enabled = False
Application.CommandBars("Edit").Controls
(6).Enabled = False
Application.CommandBars("Edit").Controls
(7).Enabled = False
Application.CommandBars("View").Controls
(3).Enabled = False
Else
Application.CommandBars("Edit").Controls
(3).Enabled = True
Application.CommandBars("Edit").Controls
(4).Enabled = True
Application.CommandBars("Edit").Controls
(5).Enabled = True
Application.CommandBars("Edit").Controls
(6).Enabled = True
Application.CommandBars("Edit").Controls
(7).Enabled = True
Application.CommandBars("View").Controls
(3).Enabled = True
End If
End Sub


Private Sub WorkBook_BeforeSAve(ByVal SaveAsUi As Boolean,
Calcel As Boolean)
Application.CommandBars("Edit").Controls
(3).Enabled = True
Application.CommandBars("Edit").Controls
(4).Enabled = True
Application.CommandBars("Edit").Controls
(5).Enabled = True
Application.CommandBars("Edit").Controls
(6).Enabled = True
Application.CommandBars("Edit").Controls
(7).Enabled = True
Application.CommandBars("View").Controls
(3).Enabled = True
End Sub

Voici le code dans WorkSheet

Private Sub Worksheet_BeforeRightClick(ByVal Target As
Range, Cancel As Boolean)
Cancel = True
End Sub

J’ai bien mis le code au niveau du classeur dans VB et pas
dans un module.
Cela fonctionne très bien.

Petit hic : si j’active l’alerte macro dans le menu
option, je peut ouvrir le classeur
en désactivant les macros et naturellement cela ne
fonctionne plus…

Un conseil ?

Merci pour ton aide,

Joseph Sciretta

-----Message d'origine-----
Merci je vais tester

A+ Joseph

-----Message d'origine-----
Salut,
un exemple a mettre dans une feuille(pas dans une macro)
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As
Range, Cancel As

Boolean)
ActiveSheet.Unprotect
If ActiveCell.Column = 1 Then
If ActiveCell.Row = 9 Or ActiveCell.Row = 11 Or
ActiveCell.Row = 13 Or

ActiveCell.Row = 15 Or ActiveCell.Row = 17 Or
ActiveCell.Row = 19 Or

ActiveCell.Row = 21 Or ActiveCell.Row = 23 Or
ActiveCell.Row = 25 Or

ActiveCell.Row = 27 Or ActiveCell.Row = 29 Or
ActiveCell.Row = 31 Then

If ActiveCell.Value = "" Then
If Range("A9").Value = "" Then
If Range("A11").Value = "" Then
If Range("A13").Value = "" Then
If Range("A15").Value = "" Then
If Range("A17").Value = "" Then
If Range("A19").Value = "" Then
If Range("A21").Value = ""
Then

If Range("A23").Value
= "" Then

If Range
("A25").Value


= "" Then
If Range
("A27").Value = "" Then

If Range
("A29").Value = "" Then

If Range
("A31").Value = ""

Then

Selection.Locked = True


Selection.FormulaHidden >>>True

With
Selection.Font

.Nam
e




= "Wingdings"
.Siz
e




= 10
.Bol
d




= True
.Str
i



k
ethrough = False
.Sup
e



r
script = False
.Sub
s



c
ript = False
.Out
l



i
neFont = False
.Sha
d



o
w = False
.Und
e



r
line >>>xlUnderlineStyleNone
.Col
o



r
Index >>>xlAutomatic
End With
With
Selection

.Hor
i



z
ontalAlignment >>>xlCenter
.Ver
t



i
calAlignment >>>xlCenter
.Wra
p



T
ext = False
.Ori
e



n
tation = 0
.Add
I



n
dent = False
.Shr
i



n
kToFit = False
.Mer
g



e
Cells = False
End With

ActiveCell.Value = "û"

Cancel >>True
Else
Cancel >>True
End If
Else
Cancel True
End If
Else
Cancel = True
End If
Else
Cancel = True
End If
Else
Cancel = True
End If
Else
Cancel = True
End If
Else
Cancel = True
End If
Else
Cancel = True
End If
Else
Cancel = True
End If
Else
Cancel = True
End If
Else
Cancel = True
End If
Else
Cancel = True
End If
Else
Selection.ClearContents
Cancel = True
End If
Else
Cancel = True
ActiveSheet.Protect DrawingObjects:=True,
Contents:=True,


Scenarios:=True
Exit Sub
End If
Else
Cancel = True
ActiveSheet.Protect DrawingObjects:=True,
Contents:=True,


Scenarios:=True
Exit Sub
End If
ActiveSheet.Protect DrawingObjects:=True,
Contents:=True,


Scenarios:=True
End Sub

cette exmple met une croix soit en a9,a11,a13....a31.
l'utilisateur ne

pourra rien faire d'autre.
ca deprotege et reprotege la feuille.
la macro s'active toute seul, d'ou lavantage....
l'utilisateur n'a rien a

choisir.... il double clicke juste dans une des cases
pre-


etablit et si ce
n'est pas la bonne... pas grave puisque tu l'as
prevus....


@+
Michel.

wrote in message
news:0bbe01c39e05$5a498aa0$
Très interessé de tester ta solution du Event.

Je n'utilise pas la gestion des évenement.

STP un petit exemple sur un Event OnClick ?
Merci,

AUtre question : si l'utilisateur n'active pas les
Macros,


comment tu contourne le problème ?
A+

-----Message d'origine-----
Pour ma part je suis sur un projet similaire et j'ai
affecte un evenement

double click et la ca me deprotege ma feuille et apres
tout changement de ma

feuille via un enter cela me reprotege ma feuille....

wrote in message
news:070601c39df2$7e7a8130$
Je connais déjà une méthode pour ne rien selectionner
sur



une feuille :
Sheets(i).EnableSelection = xlNoSelection
Mais le problème est que les utilisateur du
classeur drevront modifier une partie des
cellules visibles et non protégées.
En clair dans les colonnes masquées j'ai des données
qu'ils

ne doivant pas pouvoir consulter.
Malheuresement ces colonnes peuvent être copiées dans
un




nouveau classeur en les englobant dans une selection.

Merci

-----Message d'origine-----
Salut
trouve sur
http://www.excelabo.net/xl/protection.php#desactiverrac

c




o
u
r
cis :

Est-il possible de désactiver tous les raccourcis
clavier ?

Sub Désactive()
Dim K, I As Integer
On Error Resume Next
For Each K In
Array("^", "%", "+^", "+%", "^%", "+^%")
For I = 32 To 255

Application.OnKey K & Chr$(I), ""
Next I
Next K
End Sub

Sub
Réactive()
Dim K, I As Integer
On Error Resume Next
For Each K In
Array("^", "%", "+^", "+%", "^%", "+^%")
For I = 32 To 255

Application.OnKey K & Chr$(I)
Next I
Next K
End Sub

Ca ne désactive "que" les raccourcis utilisant une
touche


alphanumérique.Laurent Longre

ensuite tu peux mettre un evenement du click de droite
Cancel = True

et voila tu ne peux pu rien faire sur ta feuille.
@+
Michel.


"js" wrote in message
news:0abb01c39d48$7f39dad0$
Si vous protégez une cellule sous Excel, puis vous
masquez


la colonne qui contient la cellule pour éviter qu'elle
soit visible, il est toujours possible de copier la
cellule dans un autre classeur en l'englobant dans une
sélection. Ceci est possible même si vous protégez le
classeur.
Je cherche une méthode qui me permette de contourner
le





problème
Merci


.




.




.

.





.







Avatar
Michel HOLDERITH
Alain CROS a trouve la solution concernant la barre outils, va voir sur mon
post que je t'ai indique ci-dessus
@+
Michel.

wrote in message
news:0c6901c39e30$46b7b810$
Très bonne idée

Je vais l'appliquer.
Entre temps j'ai affiné ma macro et je
supprime tout raccourci qui permet de copier,
même dans la barre d'outils.
J'ai encore un souci, je sais je suis pénible,
mais le clic doit fonctionne toujours sur la barre
d'outils, alors un bon utilisateur peut par le clic droit
afficher le menu et cliquer sur personaliser et ajouter
les icônes pour copier/coller...
Alors peut être aurais-tu encore une très bonne idée.
Un grand merci et à disposition pour d'éventuelles
questions sur VBA/Excel.
Ciao Joseph


-----Message d'origine-----
oups.......
effectivement..... d'ailleur ca me fais penser que pour
mon projet c'est la

meme chose, une solution vite fait, mais que je vais
integrer, c'est de tout

verouiller par mot de passe sheet et workbook (ca j'ai
fait) et ensuite de

mettre qu'une seule page visible au debut avec un seul
lien vers les autre

pages.Lien qui fonctionne avec une macro qui rendra
visible les autres

pages. Ce qui veut dire que si tu n'actives pas les
macros tu ne pourras

jamais utiliser les autres feuilles...
Qu'en penses tu ?
@+
Michel.

wrote in message
news:0d2201c39e1d$53dba690$
Resalut,

Je me suis inspiré de ta solution pour trouver une parade
à mon problème.

J’ai fais plus simple j’ai désactivé les options de copies
des menus Excel ;
dans mon cas le classeur et les cellules qui ne sont pas
modifiables sont
déjà protégées :

Voici le code dans WorkBook

Private Sub WorkBook_Open()
If ActiveSheet.Name = "Titi" Then
Application.CommandBars("Edit").Controls
(3).Enabled = False
Application.CommandBars("Edit").Controls
(4).Enabled = False
Application.CommandBars("Edit").Controls
(5).Enabled = False
Application.CommandBars("Edit").Controls
(6).Enabled = False
Application.CommandBars("Edit").Controls
(7).Enabled = False
Application.CommandBars("View").Controls
(3).Enabled = False
End If
End Sub


Private Sub Workbook_SheetActivate(ByVal NomFeuille As
Object)
If NomFeuille.Name = "Titi" Then
Application.CommandBars("Edit").Controls
(3).Enabled = False
Application.CommandBars("Edit").Controls
(4).Enabled = False
Application.CommandBars("Edit").Controls
(5).Enabled = False
Application.CommandBars("Edit").Controls
(6).Enabled = False
Application.CommandBars("Edit").Controls
(7).Enabled = False
Application.CommandBars("View").Controls
(3).Enabled = False
Else
Application.CommandBars("Edit").Controls
(3).Enabled = True
Application.CommandBars("Edit").Controls
(4).Enabled = True
Application.CommandBars("Edit").Controls
(5).Enabled = True
Application.CommandBars("Edit").Controls
(6).Enabled = True
Application.CommandBars("Edit").Controls
(7).Enabled = True
Application.CommandBars("View").Controls
(3).Enabled = True
End If
End Sub


Private Sub WorkBook_BeforeSAve(ByVal SaveAsUi As Boolean,
Calcel As Boolean)
Application.CommandBars("Edit").Controls
(3).Enabled = True
Application.CommandBars("Edit").Controls
(4).Enabled = True
Application.CommandBars("Edit").Controls
(5).Enabled = True
Application.CommandBars("Edit").Controls
(6).Enabled = True
Application.CommandBars("Edit").Controls
(7).Enabled = True
Application.CommandBars("View").Controls
(3).Enabled = True
End Sub

Voici le code dans WorkSheet

Private Sub Worksheet_BeforeRightClick(ByVal Target As
Range, Cancel As Boolean)
Cancel = True
End Sub

J’ai bien mis le code au niveau du classeur dans VB et pas
dans un module.
Cela fonctionne très bien.

Petit hic : si j’active l’alerte macro dans le menu
option, je peut ouvrir le classeur
en désactivant les macros et naturellement cela ne
fonctionne plus…

Un conseil ?

Merci pour ton aide,

Joseph Sciretta

-----Message d'origine-----
Merci je vais tester

A+ Joseph

-----Message d'origine-----
Salut,
un exemple a mettre dans une feuille(pas dans une macro)
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As
Range, Cancel As

Boolean)
ActiveSheet.Unprotect
If ActiveCell.Column = 1 Then
If ActiveCell.Row = 9 Or ActiveCell.Row = 11 Or
ActiveCell.Row = 13 Or

ActiveCell.Row = 15 Or ActiveCell.Row = 17 Or
ActiveCell.Row = 19 Or

ActiveCell.Row = 21 Or ActiveCell.Row = 23 Or
ActiveCell.Row = 25 Or

ActiveCell.Row = 27 Or ActiveCell.Row = 29 Or
ActiveCell.Row = 31 Then

If ActiveCell.Value = "" Then
If Range("A9").Value = "" Then
If Range("A11").Value = "" Then
If Range("A13").Value = "" Then
If Range("A15").Value = "" Then
If Range("A17").Value = "" Then
If Range("A19").Value = "" Then
If Range("A21").Value = ""
Then

If Range("A23").Value
= "" Then

If Range
("A25").Value


= "" Then
If Range
("A27").Value = "" Then

If Range
("A29").Value = "" Then

If Range
("A31").Value = ""

Then

Selection.Locked = True


Selection.FormulaHidden >>>True

With
Selection.Font

.Nam
e




= "Wingdings"
.Siz
e




= 10
.Bol
d




= True
.Str
i



k
ethrough = False
.Sup
e



r
script = False
.Sub
s



c
ript = False
.Out
l



i
neFont = False
.Sha
d



o
w = False
.Und
e



r
line >>>xlUnderlineStyleNone
.Col
o



r
Index >>>xlAutomatic
End With
With
Selection

.Hor
i



z
ontalAlignment >>>xlCenter
.Ver
t



i
calAlignment >>>xlCenter
.Wra
p



T
ext = False
.Ori
e



n
tation = 0
.Add
I



n
dent = False
.Shr
i



n
kToFit = False
.Mer
g



e
Cells = False
End With

ActiveCell.Value = "û"

Cancel >>True
Else
Cancel >>True
End If
Else
Cancel True
End If
Else
Cancel = True
End If
Else
Cancel = True
End If
Else
Cancel = True
End If
Else
Cancel = True
End If
Else
Cancel = True
End If
Else
Cancel = True
End If
Else
Cancel = True
End If
Else
Cancel = True
End If
Else
Cancel = True
End If
Else
Cancel = True
End If
Else
Selection.ClearContents
Cancel = True
End If
Else
Cancel = True
ActiveSheet.Protect DrawingObjects:=True,
Contents:=True,


Scenarios:=True
Exit Sub
End If
Else
Cancel = True
ActiveSheet.Protect DrawingObjects:=True,
Contents:=True,


Scenarios:=True
Exit Sub
End If
ActiveSheet.Protect DrawingObjects:=True,
Contents:=True,


Scenarios:=True
End Sub

cette exmple met une croix soit en a9,a11,a13....a31.
l'utilisateur ne

pourra rien faire d'autre.
ca deprotege et reprotege la feuille.
la macro s'active toute seul, d'ou lavantage....
l'utilisateur n'a rien a

choisir.... il double clicke juste dans une des cases
pre-


etablit et si ce
n'est pas la bonne... pas grave puisque tu l'as
prevus....


@+
Michel.

wrote in message
news:0bbe01c39e05$5a498aa0$
Très interessé de tester ta solution du Event.

Je n'utilise pas la gestion des évenement.

STP un petit exemple sur un Event OnClick ?
Merci,

AUtre question : si l'utilisateur n'active pas les
Macros,


comment tu contourne le problème ?
A+

-----Message d'origine-----
Pour ma part je suis sur un projet similaire et j'ai
affecte un evenement

double click et la ca me deprotege ma feuille et apres
tout changement de ma

feuille via un enter cela me reprotege ma feuille....

wrote in message
news:070601c39df2$7e7a8130$
Je connais déjà une méthode pour ne rien selectionner
sur



une feuille :
Sheets(i).EnableSelection = xlNoSelection
Mais le problème est que les utilisateur du
classeur drevront modifier une partie des
cellules visibles et non protégées.
En clair dans les colonnes masquées j'ai des données
qu'ils

ne doivant pas pouvoir consulter.
Malheuresement ces colonnes peuvent être copiées dans
un




nouveau classeur en les englobant dans une selection.

Merci

-----Message d'origine-----
Salut
trouve sur
http://www.excelabo.net/xl/protection.php#desactiverrac

c




o
u
r
cis :

Est-il possible de désactiver tous les raccourcis
clavier ?

Sub Désactive()
Dim K, I As Integer
On Error Resume Next
For Each K In
Array("^", "%", "+^", "+%", "^%", "+^%")
For I = 32 To 255

Application.OnKey K & Chr$(I), ""
Next I
Next K
End Sub

Sub
Réactive()
Dim K, I As Integer
On Error Resume Next
For Each K In
Array("^", "%", "+^", "+%", "^%", "+^%")
For I = 32 To 255

Application.OnKey K & Chr$(I)
Next I
Next K
End Sub

Ca ne désactive "que" les raccourcis utilisant une
touche


alphanumérique.Laurent Longre

ensuite tu peux mettre un evenement du click de droite
Cancel = True

et voila tu ne peux pu rien faire sur ta feuille.
@+
Michel.


"js" wrote in message
news:0abb01c39d48$7f39dad0$
Si vous protégez une cellule sous Excel, puis vous
masquez


la colonne qui contient la cellule pour éviter qu'elle
soit visible, il est toujours possible de copier la
cellule dans un autre classeur en l'englobant dans une
sélection. Ceci est possible même si vous protégez le
classeur.
Je cherche une méthode qui me permette de contourner
le





problème
Merci


.




.




.

.





.







1 2