A voir également:
- Conserver macros en copiant feuilles Excel dans nouveau classeur
- Liste déroulante excel - Guide
- Mise en forme conditionnelle excel - Guide
- Nouveau site coco chat - Accueil - Réseaux sociaux
- Fusionner feuilles excel - Guide
- Si et excel - Guide
14 réponses
f894009
Messages postés
17241
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 février 2025
1 713
3 oct. 2013 à 12:16
3 oct. 2013 à 12:16
Bonjour,
cette macro est placee a quel endroit ??
comment est faite la copie ??
cette macro est placee a quel endroit ??
comment est faite la copie ??
Bonjour,
J'avais la macro suivante au niveau du Workbook:
Private Sub Workbook_Open()
Dim sh As Worksheet
For Each sh In Worksheets
'if left(sh.name,2)="Pr" then
sh.EnableAutoFilter = True
sh.EnableOutlining = True
sh.Protect Contents:=True, Password:="toto", UserInterfaceOnly:=True
'end if
Next
End Sub
Depuis j'ai mis la macro suivante dans chaque feuille:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim sh As Worksheet
For Each sh In Worksheets
'if left(sh.name,2)="Pr" then
sh.EnableAutoFilter = True
sh.EnableOutlining = True
sh.Protect Contents:=True, Password:="toto", UserInterfaceOnly:=True
'end if
Next
End Sub
Et mon problème s'est résolu. En revanche, bizarrement je ne peux plus faire de copier coller entre des cellules déverouillées.
Une idée?
J'avais la macro suivante au niveau du Workbook:
Private Sub Workbook_Open()
Dim sh As Worksheet
For Each sh In Worksheets
'if left(sh.name,2)="Pr" then
sh.EnableAutoFilter = True
sh.EnableOutlining = True
sh.Protect Contents:=True, Password:="toto", UserInterfaceOnly:=True
'end if
Next
End Sub
Depuis j'ai mis la macro suivante dans chaque feuille:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim sh As Worksheet
For Each sh In Worksheets
'if left(sh.name,2)="Pr" then
sh.EnableAutoFilter = True
sh.EnableOutlining = True
sh.Protect Contents:=True, Password:="toto", UserInterfaceOnly:=True
'end if
Next
End Sub
Et mon problème s'est résolu. En revanche, bizarrement je ne peux plus faire de copier coller entre des cellules déverouillées.
Une idée?
f894009
Messages postés
17241
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 février 2025
1 713
4 oct. 2013 à 12:23
4 oct. 2013 à 12:23
Bonjour,
a mettre dans evenement:
Private Sub Worksheet_Change(ByVal Target As Range)
mais quel est l'interet de proteger systematiquement a chaque changement de cellule ou de modification de cellulee.
Que devrait faire votre macro en dehors de cette protection intempestive
A+
a mettre dans evenement:
Private Sub Worksheet_Change(ByVal Target As Range)
mais quel est l'interet de proteger systematiquement a chaque changement de cellule ou de modification de cellulee.
Que devrait faire votre macro en dehors de cette protection intempestive
A+
Bonjour,
Je tiens à préciser que je suis (trés) novice en VB / macro. J'ai récupéré celle ci sur ce site.
But de ma macro: permettre l'utilisation de boutons de groupements / degroupements sur une feuille protégée par mot de passe.
J'ai intégré votre remarque en modifiant la macro ainsi:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sh As Worksheet
For Each sh In Worksheets
'if left(sh.name,2)="Pr" then
sh.EnableAutoFilter = True
sh.EnableOutlining = True
sh.Protect Contents:=True, Password:="toto", UserInterfaceOnly:=True
'end if
Next
End Sub
Le seul pb, c'est que à nouveau quand les utilisateurs viennent sur le fichier central pour copier un onglet (clique droit => deplacer ou copier => coller dans nouveau classuer) et le coller dans un nouveau classeur, qu'ils enregistrent et ferment ce nouveau classeur, la macro ne fonctionne plus à la ré-ouverture du fichier.
Je tiens à préciser que je suis (trés) novice en VB / macro. J'ai récupéré celle ci sur ce site.
But de ma macro: permettre l'utilisation de boutons de groupements / degroupements sur une feuille protégée par mot de passe.
J'ai intégré votre remarque en modifiant la macro ainsi:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sh As Worksheet
For Each sh In Worksheets
'if left(sh.name,2)="Pr" then
sh.EnableAutoFilter = True
sh.EnableOutlining = True
sh.Protect Contents:=True, Password:="toto", UserInterfaceOnly:=True
'end if
Next
End Sub
Le seul pb, c'est que à nouveau quand les utilisateurs viennent sur le fichier central pour copier un onglet (clique droit => deplacer ou copier => coller dans nouveau classuer) et le coller dans un nouveau classeur, qu'ils enregistrent et ferment ce nouveau classeur, la macro ne fonctionne plus à la ré-ouverture du fichier.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
f894009
Messages postés
17241
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 février 2025
1 713
4 oct. 2013 à 15:51
4 oct. 2013 à 15:51
Re,
macro ne fonctionne plus à la ré-ouverture du fichier. !!!!!!!!!!
Quel excel avez-vous ?????
A+
macro ne fonctionne plus à la ré-ouverture du fichier. !!!!!!!!!!
Quel excel avez-vous ?????
A+
Excel 2010.
Pardon, je viens de comprendre qu'il faut changer un élément dans la feuille (saisie dans une cellule, suppression cellule, ....) pour activer la macro.
La macro ne fonctionnait pas car j'essayais d'utiliser directement (à l'ouverture du fichier) les boutons de déroulement sans avoir modifié quoique ce soit.
Cependant, n'est il pas possible d'activer la macro à l'ouverture du fichier ?
Pardon, je viens de comprendre qu'il faut changer un élément dans la feuille (saisie dans une cellule, suppression cellule, ....) pour activer la macro.
La macro ne fonctionnait pas car j'essayais d'utiliser directement (à l'ouverture du fichier) les boutons de déroulement sans avoir modifié quoique ce soit.
Cependant, n'est il pas possible d'activer la macro à l'ouverture du fichier ?
f894009
Messages postés
17241
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 février 2025
1 713
4 oct. 2013 à 16:26
4 oct. 2013 à 16:26
Re,
repartons du debut, pourquoi vous protegez la feuille ??
repartons du debut, pourquoi vous protegez la feuille ??
f894009
Messages postés
17241
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 février 2025
1 713
Modifié par f894009 le 4/10/2013 à 17:24
Modifié par f894009 le 4/10/2013 à 17:24
Re,
les onglets de votre fichier central sont proteges avant copie par click droit????
pour la protection par VBA, le plus satisfaisant serait sur l'evenement Worksheet_Calculate de chaque feuille:
je n'ai pas de probleme de fonctionnement macro apres copie
A+
les onglets de votre fichier central sont proteges avant copie par click droit????
pour la protection par VBA, le plus satisfaisant serait sur l'evenement Worksheet_Calculate de chaque feuille:
Private Sub Worksheet_Calculate()
protect UserInterfaceOnly:=True
End Sub
je n'ai pas de probleme de fonctionnement macro apres copie
A+
f894009
Messages postés
17241
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 février 2025
1 713
4 oct. 2013 à 17:27
4 oct. 2013 à 17:27
Re,
si quelqu'un click sur un des boutons avant de faire la copie, y a pas de soucis ????
pour la protection par VBA, le plus satisfaisant serait sur l'evenement Worksheet_Calculate de chaque feuille:
je n'ai pas de probleme de fonctionnement macro apres copie
si quelqu'un click sur un des boutons avant de faire la copie, y a pas de soucis ????
pour la protection par VBA, le plus satisfaisant serait sur l'evenement Worksheet_Calculate de chaque feuille:
Private Sub Worksheet_Calculate()
protect UserInterfaceOnly:=True
End Sub
je n'ai pas de probleme de fonctionnement macro apres copie
Pour résumer - j'ai probablement mixé différents pbs.
Pour l'instant, j'ai opté pour cette version suite à vos conseils:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sh As Worksheet
For Each sh In Worksheets
'if left(sh.name,2)="Pr" then
sh.EnableAutoFilter = True
sh.EnableOutlining = True
sh.Protect Contents:=True, Password:="toto", UserInterfaceOnly:=True
'end if
Next
End Sub
Que ce soit pour le fichier central, ou les onglets copiés dans un nouveau fichier, il faut changer un élément dans la feuille (saisie dans une cellule, suppression cellule, ....) pour que la macro s'active et permette l'utilisation des boutons de groupement / dégroupement.
Le résultat est trés bien. Seule l'activation dés l'ouverture du fichier manque.
Est ce à cela que servirait le remplacement de Private Sub Worksheet_Change par Private Sub Worksheet_Calculate()?
Pour l'instant, j'ai opté pour cette version suite à vos conseils:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sh As Worksheet
For Each sh In Worksheets
'if left(sh.name,2)="Pr" then
sh.EnableAutoFilter = True
sh.EnableOutlining = True
sh.Protect Contents:=True, Password:="toto", UserInterfaceOnly:=True
'end if
Next
End Sub
Que ce soit pour le fichier central, ou les onglets copiés dans un nouveau fichier, il faut changer un élément dans la feuille (saisie dans une cellule, suppression cellule, ....) pour que la macro s'active et permette l'utilisation des boutons de groupement / dégroupement.
Le résultat est trés bien. Seule l'activation dés l'ouverture du fichier manque.
Est ce à cela que servirait le remplacement de Private Sub Worksheet_Change par Private Sub Worksheet_Calculate()?
f894009
Messages postés
17241
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 février 2025
1 713
5 oct. 2013 à 06:10
5 oct. 2013 à 06:10
Bonjour,
oui.
oui.