Macro pour fusionner des cellules sur une feuille protégée
danielc0 Messages postés 2191 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Il n'est plus possible de fusionner des cellule quand la feuille est protégé ord j'ai absolument besoin de le faire donc j'imagine qu'il faudrait un macro. C'est pourquoi je m'en remet à vous.
Il s'agit d'une fiche de conformité de mesure dans laquelle j'utilise 2 formules dans la colonne I sous condition :
- Si la colonne F n'est pas vide alors une formule se met en place.
- Si la colonne F est vide alors une autre formule se met en place.
Pour l'image de marque je dois éviter les cellules vide donc en tant normal je fusionne les cellules D E et F quand c'est la deuxième formule qui se met en place.
Etant donnée que je protège la feuille j'aimerai savoir si une macro peut fusionner ce que je sélectionne, je précise bien ce que je sélectionne car des fois je peux aussi fusionner 2 cellules d'une même colonne par exemple I18 et I19.
Le fichier : https://fromsmash.com/M4GloFHo1B-ct
Le mot de passe de la protection : il n'y en a pas
Merci d'avance pour vos réponses.
Windows / Chrome 135.0.0.0
2 réponses
-
Bonjour,
Fais un clic droit sur l'onglet de la feuille et clique sur "Visualiser le code" pour ouvrir l'éditeur VB. Dans la partie droite de l'éditeur, clique sur :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count > 1 Then ActiveSheet.Unprotect Selection.Merge ActiveSheet.Protect End If End SubFerme l'éditeur VB et enregistre le fichier au format .xlsm.
Note : ça va fonctionner à chaque fois que tu vas sélectionner plusieurs cellules, même quand tu ne le veux pas. On pourrait activer et désactiver la macro en faisant un double clic n'importe où.
Daniel
-
Bonjour danielc0,
Merci pour ton retour, je trouve l'idée superbe mais j'ai peur que mes collègues sur un manque d'attention cela se produise. En plus impossible de revenir en arrière.
Pourrait-on sécurisé avec une sélection des cellules + une action sur touche comme Ctrl+D ?
Bonjour,
Pas de souci.
Fais un clic droit sur l'onglet de la feuille et clique sur "Visualiser le code" pour ouvrir l'éditeur VB. Dans la partie gauche, cherche le VBAProject qui a le même nom que ton classeur :
Fais un clic droit dessus, clique sur "Insertion" et sur "Module".
Dans la partie droite, colle :
Sub Fusion() ActiveSheet.Unprotect Selection.Merge ActiveSheet.Protect End Sub
Ferme l'éditeur VB. Dans Excel, onglet Affichage, clique sur "Macros". La boîte de dialogue suivante s'affiche :
Clique sur "Fusion", clique sur Options :
Entre "d" dans le champ "Touche de raccourci". Valide. Enregistre le classeur au format .xlsm.
Daniel
PS. Petit bémol, le raccourci Ctrl+d est un raccourci Excel servant à recopier vers la droite. Tant que le classeur sera ouvert, ce raccourci servira à fusionner les cellules et le raccourci Excel sera désactivé.
Bonjour,
1. Remplace la macro par ce code :
Public Rng As Range Sub Annuler() ActiveSheet.Unprotect Rng.UnMerge ActiveSheet.Protect End Sub Sub Fusion() ActiveSheet.Unprotect Selection.Merge Set Rng = Selection ActiveSheet.Protect End Sub
2. Affecte un raccourci clavier à la macro Annuler, celle qui te permettra d'annuler la dernière fusion de cellules tant que tu n'auras pas changé de feuille.
Daniel
-
-
Hello,
une autre solution est de protéger la feuille via VBA avec l'option
UserInterfaceOnly:=TrueActiveSheet.Protect UserInterfaceOnly:=True
A partir de là seul le VBA peut utiliser le merge donc le code serait
Sub Machin Selection.Merge End Sub
A affecter à un bouton sur la barre d'accès rapide


