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

permuter le contenu de 2 cellules mais bloquer l'accès sur 4 cellules

  • Initiateur de la discussion Initiateur de la discussion arvin
  • 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 !

arvin

XLDnaute Occasionnel
bonjour à tous,

j'utilise cette macro pour permuter le contenu de 2 cellules : c'est très pratique cela évite de faire des copier-coller
mais , j'ai bloqué l'accès à 4 cellules (par outils, protection, mot de passe)
le souci c'est que, bien sur, la macro permutation ne fonctionne plus ou alors il faut que je désactive la protection, mais si je fais cela alors mes 4 cellules ne sont plus bloquées.....

que faire ?

voici la macro permutation :

Sub PermuteCells()
With Selection
If .Areas.Count <> 2 Or .Cells.Count <> 2 Then Exit Sub
x = .Areas(1): .Areas(1) = .Areas(2): .Areas(2) = x
Selection.Font.ColorIndex = 1
End With
Selection.Interior.ColorIndex = xlNone
End Sub
 
Re : permuter le contenu de 2 cellules mais bloquer l'accès sur 4 cellules

Bonjour arvin,

Protèges ta feuille avec un code VBA, en ajoutant UserInterfaceOnly:=True
Cela signifie que l'utilisateur n'a pas le droit de modifier les cellules protégées mais que le code VBA en a le droit

Exemple :

Code:
Activesheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="toto", UserInterfaceOnly:=True
 
Re : permuter le contenu de 2 cellules mais bloquer l'accès sur 4 cellules

bonjour et merci pour la réponse : j'ai donc placé le code ainsi mais je peux maintenant permuter le contenu dans les 4 cellules interdites : y a t il un moyen pour interdire leur accès ? je trouve pas

Sub PermuteCells()
Activesheet.unProtect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="toto", UserInterfaceOnly:=True
With Selection
If .Areas.Count <> 2 Or .Cells.Count <> 2 Then Exit Sub
x = .Areas(1): .Areas(1) = .Areas(2): .Areas(2) = x
Selection.Font.ColorIndex = 1
End With
Selection.Interior.ColorIndex = xlNone
Activesheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="toto", UserInterfaceOnly:=True
End Sub
 
Re : permuter le contenu de 2 cellules mais bloquer l'accès sur 4 cellules

Bonjour arvin,

Une fois au tu as protégé ta feuille avec UserInterfaceOnly, tu n'as plus besoin de la déprotéger
Le code VBA aura le droit de la modifier comme si elle n'était pas protégée

tu pourras par exemple exécuter ce code à l'ouverture du classeur (Workbook_Open) mais tu n'as plus besoin des Unprotect
Pour les interdictions d'accès, ça dépend si les cellules dont on permute la valeur sont verrouillées ou pas (Format-Cellule, Onglet Protection)
Un petit bout de fichier exemple avec les cas qui ne fonctionnent pas m'aiderait bien à te répondre plus précisément
 
Re : permuter le contenu de 2 cellules mais bloquer l'accès sur 4 cellules

bonjour et merci de m'aider : j'enrage car je trouve pas
je t'envoie un bout du fichier
pour utiliser la macro permutation : il faut clic sur une cellule -> en laissant la touche "ctrl" appuyée -> clic sur la 2e cellule -> et appuyer sur la touche "p"
cela fonctionne partout mais je ne veux pas que cela fonctionne sur les cellules que j'ai placées en rouge
j'ai pourtant protéger la feuille + classeur (mot de passe = toto), et verrouillée les cellules rouges....
mais la permutation fonctionne sur ces cellules rouges
comprends pas
 

Pièces jointes

Re : permuter le contenu de 2 cellules mais bloquer l'accès sur 4 cellules

Re,

Donc si j'ai bien compris, tu veux que ça fonctionne sauf si une des cellules sélectionnée est verrouillée ?

Code:
Sub PermuteCells()
  With Selection
    If .Areas.Count <> 2 Or .Cells.Count <> 2 Then Exit Sub
if .Areas(1).locked or .Areas(2).locked then Exit Sub
    x = .Areas(1): .Areas(1) = .Areas(2): .Areas(2) = x
    Selection.Font.ColorIndex = 1
      End With
   Selection.Interior.ColorIndex = xlNone
End Sub

Sinon, une remarque : tu savais que Ctrl+P est le raccourcis pour imprimer dans Excel (et ailleurs), par défaut ?
 
Re : permuter le contenu de 2 cellules mais bloquer l'accès sur 4 cellules

ah oui super !
c'est pas grave si ctrl + p permet d'imprimer , tant que cela bloque la macro, qu'en penses tu ?
en tout cas génial c'est cela que je voulais !!!!
waouh !
je le copie dans mon classeur et te tiens au courant
 
- 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

Discussions similaires

Réponses
22
Affichages
5 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…