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 :

Activate ne fonctionne pas sous Excel 2007


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    technicien télévision retraité
    Inscrit en
    Avril 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : technicien télévision retraité

    Informations forums :
    Inscription : Avril 2007
    Messages : 42
    Points : 26
    Points
    26
    Par défaut Activate ne fonctionne pas sous Excel 2007
    Bonjour

    A la suite de cette discussion

    Citation Envoyé par bbil Voir le message
    ...activate peu s'appliquer à d'autre feuille que la feuille en cours ... : Avec Activate on peut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sheets(1).Range("B2").Activate
    Je suis dans Excel 2007 sous Vista et ce code donne une erreur "1004" : « La méthode Activate de la classe Range a échoué »

    Si je sélectionne manuellement la feuille 1 alors là, tout est beau. Mais la
    différence avec Select vient de disparaître.

    En fait, je cherche à savoir si je peux sélectionner une plage ou une cellule d'une feuille quelconque sans qu'elle soit activée.

    J'ai un classeur qui contient 6 feuilles dans lesquelles grâce à une macro, j'insère des données. À la fin, j'aimerais passer mes 6 feuilles en revue afin de remettre la vue sur la première ligne. Tout comme lorsqu'on fait Ctrl-Home manuellement.

    Pour l'enregistreur de macros, Ctrl-Home équivaut à Range("A1").Select mais cette commande dans un programme Vba ne produit pas le même effet. Oui, A1 est bien sélectionné mais la Vue demeure ce qu'elle est.

    Comment modifier la Vue, voilà ma véritable question.

    Merci à celui qui me répondra.

    Pierre


    ---

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut,est-ce que cela t'aidera ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Option Explicit
     
    Sub Tst()
    Dim r As Range
     
        Set r = Sheets("Feuil2").Range("B2:B12")
        r = "ABCDEF"
     
        r.Copy Sheets("Feuil1").Range("G12")
    End Sub
    Remplace avantageusement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub Macro1()
        Sheets("Feuil2").Select
        Range("B2").Select
        ActiveCell.FormulaR1C1 = "ABCDEF"
        Selection.AutoFill Destination:=Range("B2:B12"), Type:=xlFillDefault
     
        Range("B2:B12").Select
        Selection.Copy
     
        Sheets("Feuil1").Select
        Range("G12").Select
        ActiveSheet.Paste
    End Sub

  3. #3
    Expert éminent sénior


    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
    Points : 20 038
    Points
    20 038
    Par défaut
    Bonjour, au sujet du message donné en lien ( réponse que j'ai donné en 2005..) ,
    je suppose qu'il s'agit d'une différence de comportement d'Excel entre la version 2000 et ces successeurs..

    aujourd'hui j'aurais répondu un peu comme : alsimbad

    Citation Envoyé par alsimbad Voir le message
    sans oublier bien sur que ces deux outils sont quasiment inutiles a une ou deux exceptions près.
    L'utilisation d' .activate, .select ... se justifie rarement, si ce n'est pour faire de l'animation ..( un diaporama ...?).

    Mais à priori dans ton cas c'est bien de "l'animation" qui est souhaité (et pas du traitement de données...)
    essai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim fMemo As Object 'Memorise feuille en cours pour retour
    Dim f As Worksheet
      Set fMemo = ActiveSheet
      For Each f In ThisWorkbook.Worksheets
        f.Activate
        f.Range("A1").Activate
      Next
     fMemo.Activate 'Retour sur feuille en cours

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    technicien télévision retraité
    Inscrit en
    Avril 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : technicien télévision retraité

    Informations forums :
    Inscription : Avril 2007
    Messages : 42
    Points : 26
    Points
    26
    Par défaut Activate fonctionne sur Excel 2007
    Bonjour,

    Merci à Kiki29 et Bbil pour vos conseils et votre patience.

    Je ne suis qu'un amateur. Mais dans le mot amateur, n'y a-t-il pas am...our ?

    J'adore programmer et c'est grâce à des champions comme vous que je peux m'améliorer. Merci.

    Pour mon message d'hier, je crois qu'il faut l'oublier. Excel a parfois des comportements incohérents et a besoin d'un traitement choc comme une fermeture et un redémarrage. Je pense que c'était le cas hier soir.

    J'ai téléphoné à un ami qui, après avoir simulé les mêmes conditions que moi, n'obtenait pas du tout les mêmes résultats. Il m'a donc suggéré de redémarrer et après, tout était correct.

    Bon, pour revenir au message de Bbil...

    Je comprends très bien ce que vous voulez dire par diaporama. C'est justement ce que je veux éviter. Heureusement, je connais la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = False


    Mais je vais au plus tôt essayer votre solution. Si vous avez d'autres trucs (ou s'il y a un tutorial) sur la manière de modifier des feuilles sans nécessairement les activer (c'est-à-dire sans faire flasher l'écran) j'aimerais le savoir.

    Merci encore

    Pierre Cloutier
    Montréal

    PS : Bbil. Vous dites que vous êtes d'accord avec alsimbad que les commandes Select et Activate ne sont plus employées ou, du moins, ne devraient plus l'être mais dans le petit bout de code que vous me proposez, vous utilisez « Activate » plusieurs fois.


    ---

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    technicien télévision retraité
    Inscrit en
    Avril 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : technicien télévision retraité

    Informations forums :
    Inscription : Avril 2007
    Messages : 42
    Points : 26
    Points
    26
    Par défaut Complément de réponse, svp.
    Bonjour bbil,

    Au risque de me faire gronder par le modérateur, je prends une chance de vous demander un complément de réponse à la suite de votre message #5891350.

    Je viens seulement d'essayer le code que vous me proposez. Ça fonctionne très bien mais je ne comprends pas l'allusion que vous faites avec les mots « animation » et « diaporama ».

    À la première lecture j'ai pensé que vous invoquiez le fait que l'écran flash en passant ainsi d'une feuille à l'autre et que votre code ne produirait pas cet effet désagréable. Mais non, c'est la même chose.

    J'aimerais comprendre.

    Pierre C.


    ---

Discussions similaires

  1. [XL-2010] Macro crée sous Excel 2007 fonctionnant pas sous Excel 2010
    Par makis007 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/02/2015, 17h03
  2. [AC-2007] CpteDom ne fonctionne pas sous access 2007 + WDS 7
    Par JacPapa74 dans le forum Access
    Réponses: 3
    Dernier message: 30/10/2013, 23h07
  3. Macro sous Excel 2003 fonctionne pas sous Excel 2007 pourquoi
    Par Sherman750 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/10/2012, 13h13
  4. Mes codes VBA ne fonctionnent pas sous access 2007
    Par ralfus dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/11/2008, 11h36
  5. Une fonction sous Excel 2007 ne fonctionne pas sous Excel 2003
    Par Dryss51 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 27/07/2007, 08h09

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