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 :

Activer une feuille dans une macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 27
    Par défaut Activer une feuille dans une macro
    bonjour à tous,

    j'ai un petit problème de novice que je n'arrive pas à résoudre...

    dans une macro, apres un copier/coller d'un onglet (a) sur un onglet (b), je desire travailler sur l'onglet (b) poutr traiter les données que je viens de copier.
    mais malgres les :
    ActiveSheet.Name = "a"
    ActiveSheet.Select

    le probleme, c'est que range("a1").value me retourne la valeur de la cellule de l'onglet a. un espion dans la macro me confirme bien que c'est l'onglet b qui est actif mais les opérations que je fais par la suite font référence au premier onglet... j'ai résolu le pb en ajoutant "sheets("b")." devant les cells() et range() mais bon, ce n'est pas une solution viable et surtout j'aimerais bien comprendre...
    merci pour votre aide...

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 306
    Par défaut
    Bonjour,

    Ta méthode dit :

    Je nomme "a" la feuille active (cad "a"...)

    il faut écrire :

    par ailleurs, la méthode consistant à activer puis à selectionner des plage avec ".activate" et ".select" est longue et casse-gu(...)

    il vaut mieux opter pour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    dim wbk as workbook, wsht1 as worksheet, wsht2 as worksheet
     
    'Nommage d'un classeur
    set wbk=Thisworkbook
    'ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    set wbk=workbooks.open("c:\MonFichier.xls")
    'Nommage des feuilles de ce classeur
    set wsht1=wbk.sheets(1)
    set wsht2=wbk.sheets(2)
    'Après tu peux utiliser ces sheets et leurs cellules sans activation ni selection :
    'Ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    with sht1
      'Copie d'une range dans sht1 et collage dans sht2
      range(.cells(1,1),.cells(10,10)).copy sheets2.cells(1,1)
      'etc...
    end with

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Par défaut
    ne fait qu'attribuer le nom "a" à la feuille active. Si la feuille active était "b", il y aurait erreur et un arrêt de la procédure car on ne peut avoir deux feuilles du même nom dans le même classeur. Il n'en serait pas de mëme si les deux feuilles étaient dans des classeurs différents, mais ce serait une erreur quand même!

    La bonne façon pour activer une feuille s'écrit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("b").Activate
    si tu veux activer la feuille "b".

    En passant, je crois que tu voulais écrire b plutôt que a dans ton exemple, non? Je me suis gratté la tête un peu devant l'incohérence!

Discussions similaires

  1. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  2. [E-00] Syntaxe pour insérer une ligne ou une colonne dans une feuille
    Par Benjycool dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/02/2009, 09h27
  3. Réponses: 4
    Dernier message: 02/07/2008, 11h32
  4. Insérer une feuille dans une feuille
    Par PsychedeChed dans le forum Excel
    Réponses: 2
    Dernier message: 07/02/2008, 14h01
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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