Note: The other languages of the website are Google-translated. Back to English

Comment grouper et dissocier des lignes dans une feuille de calcul protégée?

Comme nous le savons tous, dans une feuille de calcul protégée, il existe de nombreuses limitations pour appliquer certaines opérations. Par exemple, nous ne pouvons pas basculer entre les données groupées et non groupées. Existe-t-il un moyen de regrouper ou de dissocier des lignes dans une feuille de calcul protégée?

Regrouper et dissocier des lignes dans une feuille de calcul protégée avec le code VBA

Onglet Office Activez la modification et la navigation par onglets dans Office et simplifiez considérablement votre travail ...
Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%
  • Réutiliser n'importe quoi: Ajoutez les formules, les graphiques et tout autre élément les plus utilisés ou les plus complexes à vos favoris et réutilisez-les rapidement à l'avenir.
  • Plus de 20 fonctionnalités de texte: Extraire le numéro de la chaîne de texte; Extraire ou supprimer une partie des textes; Convertissez les nombres et les devises en mots anglais.
  • Outils de fusion: Plusieurs classeurs et feuilles en un seul; Fusionner plusieurs cellules / lignes / colonnes sans perdre de données; Fusionner les lignes en double et la somme.
  • Outils de fractionnement: Diviser les données en plusieurs feuilles en fonction de la valeur; Un classeur vers plusieurs fichiers Excel, PDF ou CSV; Une colonne à plusieurs colonnes.
  • Coller sauter Lignes cachées / filtrées; Compte et somme par couleur d'arrière-plan; Envoyez des e-mails personnalisés à plusieurs destinataires en masse.
  • Super filtre: Créez des schémas de filtres avancés et appliquez-les à toutes les feuilles; Sort par semaine, jour, fréquence et plus encore; Filtre par gras, formules, commentaire ...
  • Plus de 300 fonctionnalités puissantes; Fonctionne avec Office 2007-2021 et 365 ; Prend en charge toutes les langues; Déploiement facile dans votre entreprise ou organisation.

flèche bleue bulle droite Regrouper et dissocier des lignes dans une feuille de calcul protégée avec le code VBA

Peut-être qu'il n'y a pas d'autre moyen de résoudre ce problème, mais en utilisant un code VBA, procédez comme suit:

1. Activez votre feuille de calcul que vous souhaitez utiliser, veuillez vous assurer que la feuille de calcul n'est pas encore protégée.

2. Puis maintenez le ALT + F11 clés, et il ouvre le Fenêtre Microsoft Visual Basic pour Applications.

3Cliquez sur insérer > Moduleet collez le code suivant dans le Fenêtre du module.

Code VBA: regrouper et dissocier des lignes dans une feuille de calcul protégée

Sub EnableOutlining()
'Update 20140603
Dim xWs As Worksheet
Set xWs = Application.ActiveSheet
Dim xPws As String
xPws = Application.InputBox("Password:", xTitleId, "", Type:=2)
xWs.Protect Password:=xPws, Userinterfaceonly:=True
xWs.EnableOutlining = True
End Sub

4. Puis appuyez F5 clé pour exécuter ce code, et une boîte de dialogue apparaîtra pour vous rappeler d'entrer le mot de passe pour protéger la feuille de calcul actuelle. Voir la capture d'écran:

doc-group-in-protected-sheet1

5. Puis clique OK, votre feuille de calcul a été protégée, mais vous pouvez développer et réduire les symboles de contour dans cette feuille de calcul protégée, voir capture d'écran:

doc-group-in-protected-sheet1

Notes: Si votre feuille de calcul est déjà protégée, ce code ne fonctionnera pas.


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2021 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Fonctionnalités complètes Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine
Commentaires (32)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Cela semble fonctionner très bien, mais lorsque je ferme et rouvre le classeur, je rencontre le même problème - je ne peux pas développer mes groupes réduits.
Ce commentaire a été minimisé par le modérateur sur le site
J'ai le même problème, est-ce que quelqu'un sait comment le résoudre. Merci beaucoup
Ce commentaire a été minimisé par le modérateur sur le site
Vous avez besoin de VBA pour cela, et l'utilisateur final devra autoriser les macros pour que cela fonctionne.

Appuyez sur Alt+F11 pour activer l'éditeur Visual Basic.

Double-cliquez sur ThisWorkbook, sous Microsoft Excel Objects dans l'explorateur de projet sur le côté gauche.

Copiez le code suivant dans le module qui s'affiche :



Sous-carnet de travail privé_Open ()
Avec feuilles de travail ("Emp Summary")
.EnableOutlining = Vrai
.Protect UserInterfaceOnly :=Vrai
Terminer par
End Sub



Ce code sera exécuté automatiquement à chaque ouverture du classeur.
Ce commentaire a été minimisé par le modérateur sur le site
[quote]Cela semble fonctionner très bien, mais lorsque je ferme et rouvre le classeur, je rencontre le même problème - je ne peux pas développer mes groupes réduits.Par mayich[/quote]Ce problème est résolu comme suit Private Sub Workbook_Open() Dim wsh As Variant For Each wsh In Worksheets(Array("Sheet1", "Sheet2")) wsh.EnableOutlining = True wsh.Protect Password:="260615" , DrawingObjects:=False, _ contents:=True, _ Scenarios:=True, _ AllowFiltering:=True, _ AllowFormattingCells:=True, _ userinterfaceonly:=True Next wsh End Sub
Ce commentaire a été minimisé par le modérateur sur le site
J'ai le même problème, dès que je ferme et que je rentre dans la feuille, cela ne fonctionne pas ... veuillez indiquer étape par étape où et comment utiliser Ce problème est résolu comme ci-dessous Private Sub Workbook_Open () Dim wsh As Variante pour chaque wsh dans Worksheets(Arra y("Sheet1", "Sheet2")) wsh.EnableOutli ning = True wsh.Protect Password:="2606 15", DrawingObjects : =False, _ contents :=True, _ Scénarios : =True, _ AllowFiltering:=True, _ AllowFormattingCells:=True, _ userinterfaceonly:=True Next wsh End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Merci beaucoup mon frère, cela fonctionne vraiment bien. Merci beaucoup
Ce commentaire a été minimisé par le modérateur sur le site
Comment avez-vous fait pour que cela fonctionne ? J'ai essayé de l'ajouter au VBA ci-dessus et de créer un module différent, mais cela ne fonctionne toujours pas. Dois-je changer l'un des codes ? comme mon mot de passe que j'utilise ou dois-je changer les noms des feuilles ?
Ce commentaire a été minimisé par le modérateur sur le site
J'ai le même problème lorsque je ferme le classeur. Des idées pour y remédier ?
Ce commentaire a été minimisé par le modérateur sur le site
Private Sub Workbook_Open() Dim wsh As Variant For Each wsh In Worksheets(Array("TD_ phase_3", "RS_Phase_2")) wsh.EnableOutlining = True wsh.Protect Password:="260615", DrawingObjects:=False, _ contents : =True, _ Scenarios:=True, _ AllowFiltering:=True, _ AllowFormattingCells:=True, _ userinterfaceonly:=True Next wsh End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Je ne sais toujours pas comment cela fonctionne. Dois-je créer un nouveau module ou le joindre à celui ci-dessus ?
Ce commentaire a été minimisé par le modérateur sur le site
Pouvez-vous faire une marche à suivre étape par étape pour savoir où mettre cela comme ils l'ont fait dans les instructions d'origine. Merci.
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour! J'ai utilisé la première macro avec succès, puis j'ai eu le même problème de fermeture du classeur et la macro ne fonctionnait plus. Je vois la solution ci-dessus mais je n'arrive pas du tout à la faire fonctionner. Cela vous dérangerait-il de me guider ? Dois-je combiner les deux codes ou utiliser simplement le dernier ? Si mon mot de passe est "chien", dois-je remplacer l'une des valeurs du code ? Je ne postule qu'à une seule feuille de calcul ("Sheet1"); est-ce que je l'utilise n'importe où? Merci d'avance!!
Ce commentaire a été minimisé par le modérateur sur le site
S'il vous plaît aidez-moi, je veux réduire et développer certains rouleaux et colonnes dans une feuille de calcul Excel protégée. Comment puis-je utiliser des macros pour faire cela ? J'ai essayé ce que vous avez montré, mais ils ne fonctionnent tout simplement pas sur ma feuille de calcul. S'il vous plaît aider.
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, aidez-moi à développer et à réduire les rouleaux et les colonnes dans une feuille de calcul Excel protégée. J'ai essayé d'utiliser ceux que vous avez montrés ci-dessus mais ils ne fonctionnent pas.
Ce commentaire a été minimisé par le modérateur sur le site
A-t-il été demandé/répondu ? Où dans le code pouvez-vous spécifier/modifier un mot de passe personnel ?
Ce commentaire a été minimisé par le modérateur sur le site
Comment puis-je changer le mot de passe pour une autre valeur ?
Ce commentaire a été minimisé par le modérateur sur le site
Lorsque j'utilise la commande, je vois un message d'erreur comme indiqué ci-dessous :
Sous-carnet de travail privé_Open ()
Dim wsh comme variante
Pour chaque wsh dans Worksheets(Array("TD_ phase_3", "RS_Phase_2"))
wsh.EnableOutlining = Vrai
wsh.Protect Password :="260615", DrawingObjects :=False, _
contenu :=Vrai, _
Scénarios :=Vrai, _
AllowFiltering :=Vrai, _
AllowFormattingCells :=Vrai, _
userinterfaceonly : = vrai
Wsh suivant
End Sub
Erreur d'exécution '9' :
Indice hors de portée
Ce commentaire a été minimisé par le modérateur sur le site
cela fonctionne un peu, une fois que vous fermez et rouvrez, cela s'arrête :(
Ce commentaire a été minimisé par le modérateur sur le site
Même pour moi, y a-t-il une autre solution ?
Ce commentaire a été minimisé par le modérateur sur le site
Sous-classeur_Open()
'Mise à jour 20140603
Feuille de travail Dim xWs As
Définir xWs = Application.ActiveSheet
Dim xPws As String
xPws = "rfc" ''Application.InputBox("Mot de passe :", xTitleId, "", Type :=2)
xWs.Protect Password :=xPws, Userinterfaceonly :=True
xWs.EnableOutlining = Vrai
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
J'ai réussi à faire fonctionner ce code. Mais lorsque je ferme et rouvre, je dois aller dans l'onglet développeur, sélectionner le bouton macros, sélectionner exécuter et entrer le mot de passe.

Existe-t-il un moyen de supprimer le mot de passe du code OU un code d'exécution automatique qui exécutera automatiquement ce marco et entrera le mot de passe ?
Ce commentaire a été minimisé par le modérateur sur le site
Pour résoudre le problème de ce qui ne fonctionne pas dans votre fichier après l'avoir fermé et rouvert, vous devez coller le code VBA dans "ThisWorkbook" sous Microsoft Excel Objects au lieu d'un nouveau module. Cela exécutera alors automatiquement la macro à chaque ouverture du fichier.
Ce commentaire a été minimisé par le modérateur sur le site
avez-vous des visuels pour le code VBA discuté il y a 6 jours à peachyclean à propos de ThisWorkbook sous Microsoft Objects au lieu d'un nouveau module. La fonctionnalité est perdue lorsque je retourne dans mon classeur
Ce commentaire a été minimisé par le modérateur sur le site
Quelqu'un pourrait en avoir besoin, je pense que j'ai compris comment faire fonctionner cela.

Tout d'abord, votre code doit être écrit dans "ThisWorkbook" sous Microsoft Excel Objects, comme le suggère @peachyclean.
Deuxièmement, prenez le code que @Sravanthi a écrit et collez-le à l'emplacement mentionné ci-dessus.

Sous-classeur_Open()
'Mise à jour 20140603
Feuille de travail Dim xWs As
Définir xWs = Application.ActiveSheet
Dim xPws As String
xPws = "rfc" ''Application.InputBox("Mot de passe :", xTitleId, "", Type :=2)
xWs.Protect Password :=xPws, Userinterfaceonly :=True
xWs.EnableOutlining = Vrai
End Sub

Le fait est que vous devez être sur la feuille que vous souhaitez protéger mais en autorisant l'utilisation du regroupement, et enregistrer le classeur et le fermer, sans le protéger. Maintenant, si vous l'ouvrez, la macro démarre automatiquement, elle rendra la feuille protégée avec le mot de passe "rfc". Vous pouvez maintenant utiliser le regroupement, la feuille est protégée.

Pour ma solution, j'ai modifié le mot de passe appliqué, vous pouvez donc réécrire n'importe quel mot de passe ICI :
xPws = "WRITEANYPASSWORDHERE" ''Application.InputBox("Mot de passe :", xTitleId, "", Type :=2)

De plus, je ne voulais pas que la feuille à protéger soit active à l'ouverture du fichier, j'ai donc modifié cette partie :
Définir xWs = Application.ActiveSheet ->
Set xWs = Application.Worksheets("WRITEANYSHEET'SNAMEHERE")

Maintenant, cela fonctionne comme un charme, la feuille nommée 'WRITEANYSHEET'SNAMEHERE' est protégée mais le regroupement s'applique. A la longue, je pense que le problème sera que si je veux modifier ce fichier et garder la solution, je dois déprotéger cette feuille pour qu'elle fonctionne à la prochaine ouverture. Je suppose que vous pouvez écrire une autre macro pour déprotéger automatiquement lors de la fermeture :)


J'espère que cela a aidé.
Ce commentaire a été minimisé par le modérateur sur le site
Hii .. cela a fonctionné à merveille. le seul endroit où je suis bloqué maintenant, c'est que je dois le faire pour plusieurs feuilles du classeur. pouvez-vous aider avec cela.
Ce commentaire a été minimisé par le modérateur sur le site
Cette chaîne semblait être exactement ce dont j'avais besoin, car je ne connais rien à VBA. J'ai réussi à faire fonctionner cela au départ, mais comme cela a été souligné, une fois que vous fermez la feuille de calcul et que vous la rouvrez, cela ne fonctionne plus. J'ai essayé d'écrire le code dans "ThisWorkbook" comme indiqué mais je n'arrive pas à comprendre comment faire cela. Je peux voir "ThisWorkbook" mais je ne sais pas comment y écrire. De toutes les manières que je vois pour créer un module, il crée un nouveau module dans un dossier "Modules" séparé, en dehors du dossier "Objets Microsoft Excel". Des suggestions sur la façon de mettre ce code dans "ThisWorkbook" ?
Ce commentaire a été minimisé par le modérateur sur le site
redoutable
Ce commentaire a été minimisé par le modérateur sur le site
Comment regrouper et dissocier des lignes et des colonnes dans une feuille de calcul protégée ?
Ce commentaire a été minimisé par le modérateur sur le site
putain, ça a volé mon excel plus tard et changé le mot de passe en privé
Ce commentaire a été minimisé par le modérateur sur le site
Existe-t-il un moyen de faire fonctionner cela sur un classeur partagé? - J'ai besoin des changements de piste, merci
Il n'y a pas encore de commentaires postés ici
TÉLÉCHARGER PLUS
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés

Nous suivre

Copyright © 2009 - www.extendoffice.com. | Tous les droits sont réservés. Alimenté par ExtendOffice. | | Plan du site
Microsoft et le logo Office sont des marques commerciales ou des marques déposées de Microsoft Corporation aux États-Unis et / ou dans d'autres pays.
Protégé par Sectigo SSL