IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Macro pour figer la structure d'un classeur excel tout en permettant l'ajout d'onglet


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 3
    Par défaut Macro pour figer la structure d'un classeur excel tout en permettant l'ajout d'onglet
    Bonjour à tous.

    Voici mon problème :

    J'utilise Excel 2000.

    J'ai un classeur Excel contenant cinq onglets,
    ce classeur doit être transmis à d'autres personnes pour différents contrôles.

    Après ces contrôles, le classeur m'est retourné.

    Lors de ce retour, je dois faire tourner plusieurs macro qui se servent de ces cinq onglets, de leur postions précises (les onglets ne doivent pas être déplacés) ainsi que de leur contenu.

    Pour limiter les erreurs humaines, il faut que je limite le champs d'action des utilisateurs.

    Ainsi, j'ai déjà limité la saisie à certaines plages de données au sein de chacune des feuilles.

    Je souhaite néanmoins m'assurer que l'ordres des onglets n'est pas modifié.

    Je pourrais protéger la structure de mon classeur, mais cela empêche la création de nouveau onglets, chose que je ne souhaite pas.

    Donc finalement, je désire :

    1. empecher la modification de l'ordre des 5 premiers onglets
    2. empecher l'insertion d'onglet avant ou entre ces cinq onglets

    Et le tout par macro !!

    J'ai bien pensé à une macro qui déplace directement tout nouvel onglet en dernière position mais cela ne suffit pas ....
    L'ordre des cinq premiers onglets reste un problème pour moi insoluble.

    Je pense qu'une macro en arriere plan du classeur serait l'idée ....

    Si vous avez des idées, je suis preneur.

    Merci à tous pour votre aide.

    ElRefe

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Pour ton probléme insoluble ... comment utilise tu tes feuilles...? tu peu leur donner un "CodeName" ... priorité (name) , avec les parenthése dans l'explorateur de projet... puis tu te sert de ta feuille.. ainsi :


  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 3
    Par défaut
    Voici quelque details sur les opérations que j'effectue (le tout par macro) :

    Il faut voir le problème sous la forme de rotations de données :
    A un moment T, une rotations d'informations débute.
    Le classeur T est créé, mise en forme, vérifié.
    Puis, un report de lignes se fait du classeur T-1 vers le classeur T.
    Puis, le classeur T est envoyer à d'autre personne pour de nouveaux contrôles
    Puis, le classeur T m'est renvoyé pour de nouveaux traitements
    Enfin, le classeur T est stocké et devient le classeur T-1, en attente d'une nouvelle rotation

    1. Je récupère cinq classeurs excel contenant chacun un onglet et je les recopie de sorte à former un unique classeur avec cinq onglets (un onglet = un classeur), toujours sous la même forme.

    2. Je traite ce nouveau classeur :
    - tri
    - mise en forme
    - verification de saisie
    - ....

    Manque de bol, la ligne de début des saisies, comme les colonnes à considérées sont différentes selon les onglets.

    Du coup, je boucle sur les lignes et sur les onglets, en spécifiant selon le numèro d'onglet traité quelles sont les colonnes et les lignes à prendre en compte.

    3. C'est là où ca se corse :
    Je reporte les commentaire de T-1 vers T en prenant en compte la bonne correspondance des onglets.
    Puis j'ajoute une macro au classeur T afin de verouiller certaines plages de cellules.
    Etonnamment, je ne peux pas utiliser le codename des onglets lorsque j'exporte la macro vers le classeur T, ca plante irrémédiablement.

    De plus, je désire laisser l'appelation des onglets libres...

    4. Envoi du classeur protégé avec nouveaux traitements par des tiers
    A ce moment, les personnes qui gérent ces traitements doivent avoir la liberté d'ajouter de nouveaux onglets (pour une raison X ou Y....)


    5. Nouvel réception du classeur T avec nouveau traitement : ajout de tableau croisé dynamique, .....

    6. Stockage du classeur T qui devient T-1

    Il m'est nécéssaire de boucler sur le numèro d'onglet,

    ex : For f = 1 to 5 (indice d'onglet)
    instructions de déclarations des variables
    for l = 1 to lmax (indice de ligne)
    instructions
    next l
    next f

    Comme je fais un report de T-1 vers T et que je ne peux pas utiliser le Codename des onglets, il me faut absoluement bloquer l'ordre des cinq premier onglets.......

    Ah, si seulement il n'y avait pas cette histoire de tiers ....

    Je bloque (mais pas l'ordre des onglet, Lol) ......

    Merci à vous pour votre aide

    ElRefe

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    bbil a parlé du CodeName (invisible pour l'utilisateur) et pas du nom (visible) des onglets.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 3
    Par défaut
    Rebonjour à tous,

    Et merci à tous ceux qui ont passé du temps à me répondre.

    Certes, je pourrai employer la technique du CodeName, mais, comme je l'ai exposé dans mon dernier post, cela m'amene à deux autres problemes :

    1. A un moment de mon traitement, j'exporte depuis un fichier excel une macro au sein de l'ensemble des pages à traiter, macro qui permet de changer la cellule de couleur si saisie au sein de celle-ci.

    Le problème est que, et j'ai fait de nombreux essais afin d'acquerir des certitudes, l'export de la macro vers une feuille est possible mais dés lors que la feuille de destination est nommée par son CodeName, alors : Erreur fatale d'Excel, plantage et tout et tout ....

    2. Lorsque mes fichiers sont mis à disposition d'un tiers, ce dernier doit avoir un contrôle quasi-total sur les fichiers, et rien ne me garanti, par exemple, que celui ci ne vas pas copier coller les données d'un onglet vers une feuille vierge puis supprimer l'onglet source, changeant ainsi le CodeName !!!

    Ce qui rendrait toute macro futures (lors de la nouvelle réception de mes fichiers) inutiles car ne pointerait pas au bon endroit.

    C'est pour cela que pour l'instant je boucle sur les 5 premier onglet en les appelant par leur numèro d'ordre et que je souhaite bloquer l'ordre de ces feuillet, ainsi que les protéger de toute suppression (et ce, sans bloquer la possibilité d'ajout d'onglet).

    J'ai pour l'instant explorer une nouvelle voie en utilisant le Name (à la place du CodeName) mais je n'ai pas encore trouvé comme bloquer le nom des onglets ou empecher la suppression de tel ou tel onglet.

    Merci encore à tous,

    En espérant que j'en verrai le bout un jour !!

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/06/2011, 13h23
  2. une seule macro pour plusieurs feuilles d'un même classeur
    Par pouldom dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/12/2010, 11h38
  3. [XL-2007] Macro pour figer onglets
    Par methylene dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 02/07/2010, 09h25
  4. [XL-2003] Macro pour copier une cellule d'un classeur à un autre sous condition
    Par mairiemeudon dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 14/06/2010, 15h28
  5. Réponses: 3
    Dernier message: 25/03/2010, 09h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo