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-E]problème de récupération de variables et d'event


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 17
    Points : 16
    Points
    16
    Par défaut [VBA-E]problème de récupération de variables et d'event
    Bonjour,

    j'aimerais savoir comment, en double cliquant sur la cellule d'une feuilleA, afficher la feuille 2 et être placé sur la cellule active correspondant aux références de la cellule sur laquelle j'ai double cliquer sur la feuille A.

    en gros, si je double clique sur la cellule A2 de la feuilleA, j'aimerais directement avoir à l'écran la cellule A2 de la feuilleB activée.

    je ne sais pas sur quel évenement placer le code. je suis encore un peu débutant et tous ces évèments me paraissent me paraissent plus ou moins simples (en l'occurence plutot moins)

    J'ai du mal à récupérer les variables de la feuille A qui me permettent d'obtenir les références de cellule sur laquelle je veux me placer feuille B.

    si vous avez une solution, merci pour le coup de pouce

    zenix

  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
    Points : 15 543
    Points
    15 543
    Par défaut
    Tu peux essayer ça : Je suppose que tu es dans la feuil1 et que tu veux passer dans feuil2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    Dim adresse
    If Target.address = Range("A2").Address Then 'test de la cellule
         Adresse = ActiveCell.Address 
         Worksheets("Feuil2").select
         Range(Adresse).select
    endif
    End Sub
    Tu places ce code dans la feuille de code de ta feuille de calcul Feuil1 -> Outils -> Macro -> Editeur VB -> Sélection de la feuille (2 clicks)

    A+

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    Je ne comprends pas pourquoi il est nécessaire de tester la valeur de la cellule avec ton exemple avec A2. ça ne fonctionne pas. mais ça j'ai tenter d'avancer un peu. j'en suis là

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    ' je suis dans la feuille worksheets("Q01") et je veux aller dans la même cellule
    ' mais dans la feuille worksheets("V01")
    Dim adresse
    adresse = ActiveCell.Address
    MsgBox adresse
    Worksheets("V01").Select
    Range(adresse).Select
     
    End Sub
    Et lors du débogage, ça me mets en jaune la dernière partie, à savoir Range(adresse).select


    j'ai bien mis le code sur la feuille Q01, donc la première

    merci pour votre aide

  4. #4
    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 : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Ah, ben, elle m'aura fait chercher, celle-là...

    Et pourtant, je sais qu'il faut instancier la feuille de destination si on met le code dans une feuille.

    Voici donc le résultat de mes essais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, _
                                            Cancel As Boolean)
      Dim wksDest As Worksheet
      Set wksDest = Sheets("sheet2")
      wksDest.Activate
      wksDest.Range(Target.Address).Select
    End Sub
    Testé et validé!
    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!

  5. #5
    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
    Points : 15 543
    Points
    15 543
    Par défaut
    J'avais aussi testé et validé mon code qui fonctionne parfaitement avec la version 97 d'Office
    Je ne comprends pas quel problème il pose. As-tu fait un copier/coller du code ?
    As-tu essayé dans un nouveau classeur avec le code tel qu'il est ?
    Mais si le code d'Alain te convient... Simplement, sans instancier la feuille, le mien fonctionne aussi.

    Bonne chance

    Edit
    Citation Envoyé par tu
    Je ne comprends pas pourquoi il est nécessaire de tester la valeur de la cellule
    Je ne teste pas la valeur de la cellule, je me contente de noter son adresse afin de l'utiliser pour me placer dessus dans la feuil2

  6. #6
    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 : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Citation Envoyé par ouskel'n'or
    J'avais aussi testé et validé mon code qui fonctionne parfaitement avec la version 97 d'Office
    As-tu essayé d'appeler plusieurs fois la fonction?

    C'était le problème que j'avais. Marchait la première fois et se plantait après.

    Pour info, tests réalisés sous Excel 97 aussi.
    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!

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    Merci à tous ! special thanks to alainTech

    Vous êtes trop fort

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

Discussions similaires

  1. [MySQL] Problème de récupération de variables en $_GET
    Par gussoner dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 07/11/2006, 11h38
  2. Réponses: 6
    Dernier message: 07/07/2006, 17h27
  3. [MySQL] problèmes de récupération de variables
    Par bullrot dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 03/03/2006, 12h27
  4. [VBA-E] Problème de portée de variable [débutant]
    Par vivelesgnous dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 01/03/2006, 18h28
  5. [VBA-E]Problème de récupération du n° de semaine du jour
    Par isa21493 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/02/2006, 14h33

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