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 :

Precisions sur activate et eviter de l'utiliser


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut Precisions sur activate et eviter de l'utiliser
    Bonjour, apres avoir cherché un peu sur internet, il semblerait que faire des activate ne soit pas bon pour la rapidite du code. Donc je vais m'efforcer de les reduire. Si j'ai bien compris, si on doit modifier le contenu d'une feuille , on est obigé de l'activer, par contre pour prendre des informations dedan , on est pas obligé. Est ce bien ca?

    Par exemple je veux recupérer des infos sur xlsheet1 , je ne vais pas l'activer , mais si je veux mettre ces valeurs dans une xlsheet2 , je dois l'activer.
    pouvez vous me donner plus de precisions , car je suis interessé pour reduire mon nombre important d'activate et select dans mon code . Je code beaucoup pour mon stage (tous les jours depuis 3 semaines), et c'est quelque chose que je voudrais ameliorer, car dans le doute j'active ou je selectionne tres souvent ... ce qui n'est pas une bonne chose je pense.

    Merci

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    pour écrire une valeur dans une feuille, pas besoin de l'activer non plus!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Feuil2").Range("A1").Value = Sheets("Feuil1").Range("A1").Value
    Ecrit la valeur de A1 de feuil1 dans A1 de feuil2

  3. #3
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut merci
    Effectivement , on en reviens a la question : "en gros dans quels cas est on obligé de l'activer...? "
    Je regarde un peu des codes et c'est vrai que j'arrive a deceler le niveau de la personne sur ca facilité a eviter d'utiliser des activate a tous va.. , je sais que l'on peut les eviter. Je sais qu'il m'est arrivé de devoir activer une feuille pour en recuperer des données sinon il restait dans l'autre feuille. Avez vous des régles à me donner ? histoire de structurer mes idées.

  4. #4
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut Resolu
    Apres plusieurs recherches , j'ai trouvé ma solution, je vais la comuniquée pour les gens que ca interresse.

    avec un exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    application.workbook.open(strLien)
    set xlsheet = activeworkbook.worksheet(Nomfeuille)
    set MyXlsheet = thisworkbook.worksheet("DB")
    set MyRange = xlsheet.columns(1).find("Global Asia")
    tab = MyRange.value
    MyXlsheet.range(A1") = tab
    Voila on a pas d'activate et avec un timer j'arrive a ce que je voulais c'est a dire ne plus utiliser d'activate , ou du moins tres souvent

    Voila je pense que ca pourra aider pas mal de personnes car peu d'infos sont sur ca .

  5. #5
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Simplification de niveau1 (y'en a encore si on veut)
    +
    Gestion de l'erreur que tu te prends à la figure si tu n'as pas de résultat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim Wb As Workbook
     
    Set Wb = Application.Workbook.Open(strLien)
    Set MyRange = Wb.Worksheets(nomfeuille).Columns(1).Find("Global Asia")
     
    If Not MyRange Is Nothing Then
        ThisWorkbook.Worksheet("DB").Range("A1") = MyRange.Value
    End If

  6. #6
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim Wb As Workbook
     
    Set Wb = Application.Workbook.Open(strLien)
    Set MyRange = Wb.Worksheets(nomfeuille).Columns(1).Find("Global Asia")
     
    If Not MyRange Is Nothing Then
        ThisWorkbook.Worksheet("DB").Range("A1") = MyRange.Value
    End If
    Donc on peut en nomant simplement mes objets, eviter de faire des activate ou meme des select, c'est bien ca l'idée?

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

Discussions similaires

  1. Utiliser connexion OLEDB sur Active Directory
    Par jff42 dans le forum Access
    Réponses: 0
    Dernier message: 05/11/2014, 19h48
  2. Réponses: 3
    Dernier message: 22/08/2007, 17h53
  3. besoin de precision sur gluLookAt!
    Par bakonu dans le forum OpenGL
    Réponses: 3
    Dernier message: 25/04/2004, 20h05
  4. precision sur le pilotage du port parallele
    Par fransouik dans le forum C++Builder
    Réponses: 18
    Dernier message: 26/02/2004, 14h28
  5. [VBA-E]Demande de précision sur les menus
    Par geffdenimes dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/06/2003, 11h46

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