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 :

Eviter les .Activate [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 533
    Par défaut Eviter les .Activate
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim wbkAnalyses As Workbook, wbkExemple As Workbook
    Dim shAnalyse As Worksheet, wbkExemple As Worksheet
    Set wbkAnalyses = Workbooks.Open("C:\Documents and Settings\STAG3\Bureau\analyses.xls")
    Set shAnalyses = wbkAnalyses.Sheets("Données Rapports")
    Set wbkExemple = Workbooks.Open("C:\Documents and Settings\STAG3\Bureau\exemple.xls")
    Set shExemple = wbkExemple.Sheets("Feuil1")
    Bonjour,

    J'ai ce code que j'aimerai implémenter afin de ne pas avoir à utiliser sans cesse les .Activate (Windows("exemple.xls").Activate) cependant je ne sais pas où placer cette déclaration pour pouvoir l'utiliser dans tout mon projet... J'ai essayé de le mettre dans un module à part mais cela me fait des erreurs...

    Merci d'avance

  2. #2
    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
    Bonjour,

    Les Dim en début du module principal (avant toute procédure).

    Les Set en début de (donc dans) ta procédure principale ou juste avant d'en avoir besoin.
    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!

  3. #3
    Expert confirmé
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Par défaut
    bjr,

    Citation Envoyé par juju1988 Voir le message
    je ne sais pas où placer cette déclaration pour pouvoir l'utiliser dans tout mon projet... J'ai essayé de le mettre dans un module à part mais cela me fait des erreurs...
    si dans un autre module, il faut remplacer dim par public

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 533
    Par défaut
    En fait j'ai des procédures dans ma feuille même et j'ai aussi des procédures dans 2 modules différents...
    En fait je n'ai pas à proprement parler de procédure principale !

    Si je met les Set que dans une procédure ça va marcher dans les autres?

  5. #5
    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
    Une fois que tu as assigné un objet à une variable et si cette variable est publique l'objet est accessible de partout où la variable l'est.
    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!

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 533
    Par défaut
    J'ai déclaré mes variables dans un module à part et je les ai déclaré en public...
    J'ai mis le set dans une de mes procédures mais si j'appelle les variables depuis une autre procédure ça ne fonctionne pas...

  7. #7
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour juju.
    To classeur de travail c'est bien exemple.xls?
    à u moment donnée, par un bouton tu ouvre le fichier analyse.xls, c'est ça?
    Tu déclare tes variables dans un module public
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public wbkAnalyses As Workbook
    Public wbkExemple As Workbook
    Public shAnalyse As Worksheet
    Public shExemple As Worksheet
    Dans le code de ton bouton qui ouvre le fichier Analyse.xls
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub btnOuvrirAnalyse_Click()
    'Autres déclaration sans déclarer encore une fois tes wbkAnalyses, shAnalyses, wbkExemple et shExemple
     
    Set wbkAnalyses = Workbooks.Open("C:\Documents and Settings\STAG3\Bureau\analyses.xls")
    Set shAnalyses = wbkAnalyses.Sheets("Données Rapports")
     
    'suite du code
    '.....
    'par la suite et dans toutes tes fonctions et procédures du projet
    'tes variables wbkAnalyses, shAnalyses, wbkExemple et shExemple
    'seront bien reconnues sans les déclarer une autre fois
     
    End Sub

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu
    Bonjour,



    bonjour

    pour completer la reponse de alain tech
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim wbkAnalyses As Workbook, wbkExemple As Workbook
    Dim shAnalyse As Worksheet, wbkExemple As Worksheet
    quand tu declare "wbkexemple as workbook
    et en suite
    tu declare wbkexemple as worksheet

    j'espere que tu compte pas te servir de cette variable en tant que workbook


    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    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
    C'est une faute de frappe.
    C'est shExemple.
    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!

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 533
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Public wbkAnalyses As Workbook, wbkExemple As Workbook
    Public shAnalyse As Worksheet, shExemple As Worksheet
    Oui oui c'est une erreur de frappe que j'ai corrigé juste après mais cela ne change rien à mon problème...

  11. #11
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Et quel est le problème? je crois que tu pourrais déjà t'en sortir en comprenant le code fourni (bien sûr à adapter à ton contexte)

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 533
    Par défaut
    Et bien j'ai mis mes déclarations workbook et worksheet dans un module à part ... je peux changer hein...
    Mais je ne sais pas où placer mes set pour qu'ils soient utilisables dans toute ma feuille et dans tous mes différents modules...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Eviter les warnings "unused parameter"
    Par Le Furet dans le forum C
    Réponses: 9
    Dernier message: 03/10/2005, 23h29
  2. Eviter les doublons
    Par cyrill.gremaud dans le forum ASP
    Réponses: 5
    Dernier message: 14/09/2005, 13h37
  3. Réponses: 4
    Dernier message: 13/08/2004, 19h39
  4. [langage] 2 fichier dans 1 en evitant les doublons
    Par remixxl dans le forum Langage
    Réponses: 6
    Dernier message: 26/07/2004, 18h05
  5. [C#] Comment eviter les boucles infinies ?
    Par Thomas Lebrun dans le forum C#
    Réponses: 12
    Dernier message: 09/06/2004, 01h04

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