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

Protéger AUSSI la mise en forme

6 réponses
Avatar
13Hubert
Bonjour à toutes et à tous

Excel 97
J'ai créé un tableau que je distribue à X utilisateurs afin que,
régulièrement, ils m'expédient des chiffres.
J'ai dû protéger ces tableaux car ils me revenaient complètement
personnalisés et il m'était impossible de les traiter notamment par VBA.
Mon problème est que, malgré les protections feuille et classeur, les
bordures et autres mises en forme ne résistent pas aux copier/coller voire
couper/coller... et il me faut à chaque fois tout contrôler et tout refaire
avant de présenter mes tableaux à mon Directeur.

Quelqu'un pourrait m'aider SVP ?
Merci beaucoup !

Hubert
--
...from Marseille !

6 réponses

Avatar
olivier
Bonjour,

je pense que je referais une macro de mise en forme ou un fichier type
sur lequel je recopierais la mise en forme sur les fichiers qui reviennent

Olivier





Bonjour à toutes et à tous

Excel 97
J'ai créé un tableau que je distribue à X utilisateurs afin que,
régulièrement, ils m'expédient des chiffres.
J'ai dû protéger ces tableaux car ils me revenaient complètement
personnalisés et il m'était impossible de les traiter notamment par VBA.
Mon problème est que, malgré les protections feuille et classeur, les
bordures et autres mises en forme ne résistent pas aux copier/coller voire
couper/coller... et il me faut à chaque fois tout contrôler et tout refaire
avant de présenter mes tableaux à mon Directeur.

Quelqu'un pourrait m'aider SVP ?
Merci beaucoup !

Hubert


Avatar
MichDenis
L'objectif de ces 2 procédures est de modifier le comportement de la
commande "Coller" pour qu'elle ne copie que les données ou la formule
sous-jacente des cellules. Aucun formatage ne sera copié lorsque l'usager
utilisera la commande du sous menu Édition/Coller, La commande du
menu contextuel / coller ou du raccourci clavier Ctrl + V

Ceci sera applicable seulement lorsque ce classeur sera le classeur actif.

La commande "Collage spécial" n'est nullement modifiée.

Dans le ThisWorkbook de ton classeur, copie les 2 procédures suivantes :
'-------------------------------
Private Sub Workbook_Activate()
Dim C As CommandBarControl

Application.OnKey "^v", "NColler"
For Each C In Application.CommandBars.FindControls(ID:")
C.OnAction = "NColler"
Next
End Sub
'-------------------------------
Private Sub Workbook_Deactivate()
Dim C As CommandBarControl
Application.OnKey "^v", ""
For Each C In Application.CommandBars.FindControls(ID:")
C.OnAction = ""
Next
End Sub
'-------------------------------

Et dans un module Standard, copie ceci :
'-------------------------------
Sub NColler()
On Error Resume Next
If TypeName(Selection) = "Range" Then
Selection.PasteSpecial xlPasteFormulas
End If
End Sub
'-------------------------------





"13Hubert" a écrit dans le message de news:

Bonjour à toutes et à tous

Excel 97
J'ai créé un tableau que je distribue à X utilisateurs afin que,
régulièrement, ils m'expédient des chiffres.
J'ai dû protéger ces tableaux car ils me revenaient complètement
personnalisés et il m'était impossible de les traiter notamment par VBA.
Mon problème est que, malgré les protections feuille et classeur, les
bordures et autres mises en forme ne résistent pas aux copier/coller voire
couper/coller... et il me faut à chaque fois tout contrôler et tout refaire
avant de présenter mes tableaux à mon Directeur.

Quelqu'un pourrait m'aider SVP ?
Merci beaucoup !

Hubert
--
...from Marseille !
Avatar
13Hubert
Bonjour MichDenis et pardon pour le temps passé avant de répondre...
Les impondérables professionnels...

Je note tes propositions et te remercie pour ça.
Je vais tenter de mettre en application et je reviendrai.

Merci encore

Hubert
--
...from Marseille !




L'objectif de ces 2 procédures est de modifier le comportement de la
commande "Coller" pour qu'elle ne copie que les données ou la formule
sous-jacente des cellules. Aucun formatage ne sera copié lorsque l'usager
utilisera la commande du sous menu Édition/Coller, La commande du
menu contextuel / coller ou du raccourci clavier Ctrl + V

Ceci sera applicable seulement lorsque ce classeur sera le classeur actif.

La commande "Collage spécial" n'est nullement modifiée.

Dans le ThisWorkbook de ton classeur, copie les 2 procédures suivantes :
'-------------------------------
Private Sub Workbook_Activate()
Dim C As CommandBarControl

Application.OnKey "^v", "NColler"
For Each C In Application.CommandBars.FindControls(ID:")
C.OnAction = "NColler"
Next
End Sub
'-------------------------------
Private Sub Workbook_Deactivate()
Dim C As CommandBarControl
Application.OnKey "^v", ""
For Each C In Application.CommandBars.FindControls(ID:")
C.OnAction = ""
Next
End Sub
'-------------------------------

Et dans un module Standard, copie ceci :
'-------------------------------
Sub NColler()
On Error Resume Next
If TypeName(Selection) = "Range" Then
Selection.PasteSpecial xlPasteFormulas
End If
End Sub
'-------------------------------





"13Hubert" a écrit dans le message de news:

Bonjour à toutes et à tous

Excel 97
J'ai créé un tableau que je distribue à X utilisateurs afin que,
régulièrement, ils m'expédient des chiffres.
J'ai dû protéger ces tableaux car ils me revenaient complètement
personnalisés et il m'était impossible de les traiter notamment par VBA.
Mon problème est que, malgré les protections feuille et classeur, les
bordures et autres mises en forme ne résistent pas aux copier/coller voire
couper/coller... et il me faut à chaque fois tout contrôler et tout refaire
avant de présenter mes tableaux à mon Directeur.

Quelqu'un pourrait m'aider SVP ?
Merci beaucoup !

Hubert
--
....from Marseille !





Avatar
13Hubert
Bonjour Olivier.

Merci pour ta proposition mais il reste que les impératifs que j'ai placés
par le menu Données/Validations sont également strappés par les couper ou
copier/coller.
Ainsi, la mise en forme des bordures est changée oui et ton avis était de ce
point de vue intéressant mais il ne régle pas mon problème des données qui ne
correspondent pas à ce que j'impose...(C'est vrai que je ne l'avais pas
précisé...)

Hubert
--
...from Marseille !



Bonjour,

je pense que je referais une macro de mise en forme ou un fichier type
sur lequel je recopierais la mise en forme sur les fichiers qui reviennent

Olivier





Bonjour à toutes et à tous

Excel 97
J'ai créé un tableau que je distribue à X utilisateurs afin que,
régulièrement, ils m'expédient des chiffres.
J'ai dû protéger ces tableaux car ils me revenaient complètement
personnalisés et il m'était impossible de les traiter notamment par VBA.
Mon problème est que, malgré les protections feuille et classeur, les
bordures et autres mises en forme ne résistent pas aux copier/coller voire
couper/coller... et il me faut à chaque fois tout contrôler et tout refaire
avant de présenter mes tableaux à mon Directeur.

Quelqu'un pourrait m'aider SVP ?
Merci beaucoup !

Hubert





Avatar
13Hubert
Bon, j'ai testé.

Les procédures bloquent à 'FindControls" avec le message suivant :

"ERREUR DE COMPILATION
MEMBRE DE METHODE OU DE DONNEES INTROUVABLE"

Et moi, je bloque aussi...! :-(

J'avais oublié de préciser que je travaille sur excel 97
Oui, je sais, mais mon patron (l'Etat...) n'a pas assez de ronds pour me
payer une version récente !! 8-|

Je pense que c'est le fait de ma version ancienne qui génère le problème...

Oui ? Non ? Quoi d'autre alors ?

Merci
Hubert
--
...from Marseille !
Avatar
MichDenis
Si tu as excel 97, essaie ceci en suivant les indications mentionnées dans le message précédent.

'-------------------------------
Private Sub Workbook_Activate()
Dim C As CommandBarControl
Application.OnKey "^v", "NColler"
With Application.CommandBars
.Item("Worksheet menu bar").FindControl(ID:", Recursive:=True).OnAction = "NColler"
.Item("Cell").FindControl(ID:", Recursive:=True).OnAction = "NColler"
.Item("Column").FindControl(ID:", Recursive:=True).OnAction = "NColler"
.Item("Row").FindControl(ID:", Recursive:=True).OnAction = "NColler"
End With
End Sub
'-------------------------------
Private Sub Workbook_Deactivate()
Dim C As CommandBarControl
Application.OnKey "^v", ""
With Application.CommandBars
.Item("Worksheet menu bar").FindControl(ID:", Recursive:=True).OnAction = ""
.Item("Cell").FindControl(ID:", Recursive:=True).OnAction = ""
.Item("Column").FindControl(ID:", Recursive:=True).OnAction = ""
.Item("Row").FindControl(ID:", Recursive:=True).OnAction = ""
End With
End Sub
'-------------------------------



"13Hubert" a écrit dans le message de news:

Bon, j'ai testé.

Les procédures bloquent à 'FindControls" avec le message suivant :

"ERREUR DE COMPILATION
MEMBRE DE METHODE OU DE DONNEES INTROUVABLE"

Et moi, je bloque aussi...! :-(

J'avais oublié de préciser que je travaille sur excel 97
Oui, je sais, mais mon patron (l'Etat...) n'a pas assez de ronds pour me
payer une version récente !! 8-|

Je pense que c'est le fait de ma version ancienne qui génère le problème...

Oui ? Non ? Quoi d'autre alors ?

Merci
Hubert
--
...from Marseille !