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 :

[VBA-Excel]Aller sur une feuille sans l'activer.


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 108
    Par défaut [VBA-Excel]Aller sur une feuille sans l'activer.
    Bonjour a tous et a toute !
    J'ai une question en Vba sur Excel.
    J'ai mis en place une petite macro qui lorsqu'on active la feuille A ,deprotege les cellules de toutes les feuilles,fais un recalculate sur toutes les feuilles de mon classeur, pour ensuite les reproteger.

    Ma question est la suivante :Est-il possible d'aller sur une feuille (pour reproteger toutes les cellules de ma feuille+FormulaHidden=False) sans activer la feuille (car sinon ca relance la macro vu qu'on 'active' la feuille A)

    J'ai cherché mais j'ai pas trouvé .Quelqu'un aurait une solution?
    Merci d'avance!

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Sans problème. Il suffit que tu la désignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Worksheets(NomDeLaFeuille).Cells.Locked = True
        Worksheets(NomDeLaFeuille).Cells.FormulaHidden = True
        Worksheets(NomDeLaFeuille).Protect DrawingObjects:=True, _
             Contents:=True, Scenarios:=True
    A+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 108
    Par défaut
    Merci pour cette indication.

    Mais y'a un petit hic

    y'a 3 feuilles : A B C
    qd on va sur la feuille A(donc worksheet_activate),ca lance la macro qui deprotege toutes les feuilles (A B C),recalcule ,et reprotege
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Cells.Select
    Selection.Locked = False
    Selection.FormulaHidden = False
    Avec ta macro ca marche ,mais a la fin ,je tombe sur la feuille C (car il va pas sur la feuille A en dernier)
    Je pensais a 2 choses:

    C'est possible de faire un truc pour me laisser sur la cellule A1 de la feuille A sans la reactiver?
    ou alors ,dans le cas ou je fais pas d'activate sur les feuilles B et C (quand ca déprotege), mettre les memes lignes que ce que tu m'as donné ,mais j'arrive pas a mettre un Worksheets(NomDeLaFeuille).Cells.Select

    Comment faire?

  4. #4
    Membre expérimenté Avatar de conconbrr
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Par défaut
    Honnêtement j'ai vaguement lu en diagonale mais je peux te proposer qqch qui marche pas mal.
    Declare une variable booleenne en globale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public boContinuer as boolean
    Ensuite dans ta procédure événementielle de page, tu rajoutes au début :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if bocontinuer=false then exit sub
    Finalement dans ta procédure de protection tu mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    bocontinuer=false
    TONCODE
    bocontinuer=true
    N'oublie pas de remettre bocontinuer a true car vu que c'est une variable globale elle garde sa valeur même à la fin des procédures. C'est un peu comme application.displayalerts ou application.screenupdating...

  5. #5
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    Citation Envoyé par bonilla
    j'arrive pas a mettre un Worksheets(NomDeLaFeuille).Cells.Select

    Comment faire?
    ben evidement, .Select ne fonctionne que sur une feuille active et tu ne veux pas l'activer, alors, faudrait savoir ?

    ouskelnor n'utilise pas de Activate ni de Select dans son code !

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Pour abonder dans le sens de Thierry (salut Thierry, tu vas ?) juste une question :
    Citation Envoyé par ouskel'n'or
    Worksheets(NomDeLaFeuille).Cells.Locked = True
    Worksheets(NomDeLaFeuille).Cells.FormulaHidden = True
    Worksheets(NomDeLaFeuille).Protect DrawingObjects:=True, _
    Contents:=True, Scenarios:=True
    Citation Envoyé par bonilla
    Cells.Select
    Selection.Locked = False
    Selection.FormulaHidden = False
    Tu verrais pas une différences, des fois ?

Discussions similaires

  1. [VBA-E] musique sur une feuille Excel
    Par jnmab dans le forum Excel
    Réponses: 2
    Dernier message: 01/04/2007, 11h21
  2. [VBA Excel] Copie d'une feuille dans un autre fichier
    Par nattyman dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/08/2006, 10h35
  3. [VBA Excel] Remettre toute une feuille par défaut
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/12/2005, 16h56
  4. vba excel - Comment saisir une cellule sans faire entrer
    Par brethomeau dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 15/11/2005, 17h50
  5. [VBA Excel] Effacer rapidement une feuille
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/10/2002, 13h12

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