jesuhsXVII
Messages postés8Date d'inscriptionsamedi 13 mars 2004StatutMembreDernière intervention 6 mars 2009
-
13 sept. 2007 à 18:29
jesuhsXVII
Messages postés8Date d'inscriptionsamedi 13 mars 2004StatutMembreDernière intervention 6 mars 2009
-
17 sept. 2007 à 14:34
Bonjour,
je souhaite interdire la changement d'index d'une feuille, donc pas de déplacement, tout en laissant la possibilité de créer d'autres feuilles qui pourraient venir derrière celles existantes.
Je ne peux pas protéger la structure du classeur puisque cela empeche de créer d'autres feuilles.
Je n'ai pas trop d'idées et je sais pas si c'est réalisables.
Merci de bien vouloir me renseigner.
JM247L
Messages postés443Date d'inscriptionmardi 27 mars 2007StatutMembreDernière intervention 1 mars 20112 17 sept. 2007 à 14:23
Salut,
Il ne doit pas y avoir de place pour le "Mais ça devrait arriver assez rarement !"
Dans "Thisworkbook" au niveau de "Workbook_BeforeSave" stock dans une variable la feuille active puis sélectionne la feuille "A ne pas déplacer"
Cette sélection effectuera le code de "Worksheet_Activate"
Tu peux aussi faire au niveau de "Workbook_Open"
Mais pas au niveau des 2 ce qui serait superflux
Cliquer "Réponse Acceptée" Quand La Réponse Est OK
JML. Partageons notre savoir et nos acquis
JM247L
Messages postés443Date d'inscriptionmardi 27 mars 2007StatutMembreDernière intervention 1 mars 20112 14 sept. 2007 à 15:29
Le code ci-dessous est à coller au niveau de la feuille ne devant pas être déplacée
Dans l'exemple le Nom de la feuille est "Ne pas déplacer" ile faut bien eevidemment le remplacer par le nom qui va bien
Merci de me tenir informé de ton état de liesse après tests
Option Explicit
Dim Controle_OK As Boolean
Private Sub Worksheet_Activate()
If Controle_OK = False Then Sheets("Ne pas Déplacer").Move Before:=Sheets(1)
End Sub
Private Sub Worksheet_DeActivate()
Dim I, Keep_ActiveSheet
If Controle_OK = True Then
Controle_OK = False
Exit Sub
End If
Keep_ActiveSheet = ActiveSheet.Name
For I = 1 To Sheets.Count
If Sheets(I).Name = "Ne pas déplacer" Then
Controle_OK = True
Sheets(I).Move Before:=Sheets(1)
Exit For
End If
Next I
Worksheets(Keep_ActiveSheet).Select
End Sub
Cliquer "Réponse Acceptée" Quand La Réponse Est OK
JML.
JM247L
Messages postés443Date d'inscriptionmardi 27 mars 2007StatutMembreDernière intervention 1 mars 20112 14 sept. 2007 à 13:51
Bonjour,
Je n'ai jamais trouvé dans excel, concernant la gestion des feuilles, autre chose que sur l'insertion de nouvelle feuille.
Concernant la supopression et le déplacement ... Rien
Cette opération lorsqu'elle est effectuer n'est même pas annulable
Maintenant en jouant sur l'insertion, tu peux imposer qu'elle le soit, créée, après celle dont elle ne doit pas être avant (j'adore)
Mais tu n'empêchera pas le déplacement manuel
Par contre tu peux controler au moment ou la feuille perrd le focus qu'elle est bien avec le bon index
Si Non alors tu la déplace, par code, à la bonne place
A mon avis ça devrait le faire
.</gras> Partageons notre savoir et nos acquis</gras>
JM247L
Messages postés443Date d'inscriptionmardi 27 mars 2007StatutMembreDernière intervention 1 mars 20112 14 sept. 2007 à 15:02
Patience !!! Je le tiens ... je te l'envoie ... Bien que je ne te cache pas que je ne vois pas le but de conserver un index à une feuille
JML. Partageons notre savoir et nos acquis
Vous n’avez pas trouvé la réponse que vous recherchez ?
jesuhsXVII
Messages postés8Date d'inscriptionsamedi 13 mars 2004StatutMembreDernière intervention 6 mars 2009 17 sept. 2007 à 14:13
Ca marche très bien. C'est nickel.
Le seule souci que je peux avoir, c'est si la feuille est selectionné puis déplacée et que le fichier est enregistré. Puisque entre le déplacement et l'enregistrement, la feuille n'est ni activée (elle l'est dèjà) ni desactivée, donc pas de contrôle. Mais ça devrait arriver assez rarement ! Je te remercie !
jesuhsXVII
Messages postés8Date d'inscriptionsamedi 13 mars 2004StatutMembreDernière intervention 6 mars 2009 17 sept. 2007 à 14:22
En fait, le but de la manip':
On est plusieurs à entrer des données pour différentes activités d'une asso' dans différents fichiers excel, les 3 premières feuilles contiennent un tableau identique pour chaque "utilisateur".
J'ai dèjà un autre classeur qui fait le rassemblement (récupération des infos dans chaque classeur puis copie) sous VBA, mais pour faire fonctionner la macro dans ce classeur global, les 3 premières feuilles de chaque classeur doivent avoir la même strucutre !!!
Et les différents pôles qui remplissent ces classeurs doivent frequement ajouter quelques feuilles de commentaires, ou de tableau supplémentaire...
Mais la ça devrait aller nickel.