Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Interdire la copie d'onglet

  • Initiateur de la discussion Initiateur de la discussion gersois
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

gersois

Guest
Bonjour,

J'ai un classeur avec plusieurs feuilles. Tout est verrouillé, certaines lignes et colonnes masquées, formules masquées, en laissant toutefois certaines cellules libres d'accès ainsi que le format, etc ...
Tout fonctionne bien sauf qu'un simple copier-coller de cellules vers un nouveau classeur permet à quiconque d'avoir l'intégralité de mes données.

Je suis donc passé par la commande Workbook.Deactivate .... Application.CutCopyMode = False.

Effectivement, ça marche nickel. J'empêche le copier-coller. Sauf qu'il reste encore une faille : il suffit simplement de copier l'onglet dans un nouveau classeur (clic droit sur l'onglet, déplacer ou copier ... etc ....) puis faire un copier-coller dans un 3° classeur et le tour est joué.

Question : en vba, comment empêcher la copie d'un onglet vers un autre classeur ?

Merci à vous

Gersois
 
Re : Interdire la copie d'onglet

Bonsoir gersois, job, jeanpierre, le Forum,
Effectivement le lien que j'ai indiqué ne fonctionne plus, je n'en connais pas les raisons j'en suis désolé mais voici ce que j'avais noté :

InterdireCopierCollerD'uneFeuille.

Lien supprimé

Code à placer dans ThisWorkbook

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Application.CutCopyMode = False
End Sub

Si nous ne pouvons pas selectionner les colonnes masquées ou une partie des colonnes masquées alors c'est gagné, c'est ce que j'ai fais.
Dans le code en annexe j'ai pris l'hypothèse que les colonnes A et B étaient celles à protéger.
Ce code doit être mis dans le code de ta feuille à protéger.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range(Columns(1), Columns(2))) Is Nothing Then
Cells(1, 3).Select
MsgBox "Vous ne pouvez pas sélectionner les colonnes ou une partie des colonnes A et B"
End If
End Sub

En vous souhaitant bonne continuation
 
Re : Interdire la copie d'onglet

Rebonjour à tous, salut jeanpierre 🙂,

Une solution est de mettre par exemple, dans une cellule :

=MAINTENANT()

puis de mettre dans le code de la feuille :

Code:
Private Sub Worksheet_Calculate()
If Application.CutCopyMode = True Then Application.Undo
End Sub

Edit : désolé, ça ne marche pas plus que celle que j'ai effacée...

A+
 
Dernière édition:
Re : Interdire la copie d'onglet

Merci pour les réponses, je vois que ça va très vite sur ce forum !

Mon besoin est vraiment d'empêcher la copie de l'onglet.
Dans le code que tu donnes NoviceAG, tu empêches la sélection des colonnes déterminées, mais la copie de l'onglet est toujours possible ...
 
Re : Interdire la copie d'onglet

Re,

Bon, on va y arriver :

1) dans le code de la feuille (ce n'est pas nécessaire si toutes les feuilles sont protégées) :

Code:
Private Sub Worksheet_deactivate()
Application.CutCopyMode = False
End Sub

2) dans ThisWorkbook :

Code:
Private Sub Workbook_deactivate()
Application.CutCopyMode = False
End Sub

3) pour désactiver la commande Déplacer ou copier, menu Outils-Protection-Protéger le classeur.

EDITION : mais quelqu'un qui connaît VBA pourra toujours copier la feuille dans un autre classeur avec le code :

Code:
Workbooks("toto.xls").Sheets(1).Cells.Copy Range("A1")

A+
 
Dernière édition:
Re : Interdire la copie d'onglet

Bien sûr Job75 et Staple! L'objet d'Excel n'est pas de protéger des données confidentielles donc rien d'efficace ne fonctionne bien.

Par contre tu peux crypter un fichier avec un autre logiciel. Winzip propose un archivage avec une option de cryptage que l'on ne peut outrepasser qu'en force brute. Enfin je crois 😉

guillaumega
 
Re : Interdire la copie d'onglet

Merci à tous pour vos réponses - c'est vrai que le plus simple est de protéger le classeur, tout simplement.

Après je sais pertinemment qu'on ne peut pas blinder des données dans excel, donc je ne me prenais pas trop la tête avec ça, mais je voulais au moins freiner les utilisateurs sur l'utilisation des commandes classiques, le public à qui je m'adresse n'utilisant pas vba.

Merci à tous.

Gersois
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

M
Réponses
4
Affichages
872
M
Réponses
3
Affichages
1 K
monir haiki
M
F
Réponses
7
Affichages
6 K
FrancoisC43212
F
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…