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 d'offset cellule


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 13
    Par défaut [VBA-E] Problème d'offset cellule
    Bonjour a tous,
    Voila mon problème:je voudrais obtenir 4 variables contenant l'adresse des cellules décalées par rapport a la cellule cliquée.Je ne trouve pas le bon code.
    Voila ce que j'essaie de faire mais ça ne fonctionne pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    x = Target.Address
        x1 = x.Offset(0, 1)
        x2 = x.Offset(0, 2)
        x3 = x.Offset(1, 1)
        x4 = x.Offset(1, 2)
    Salutations

  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
    Pourquoi .Address???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Set x = Target
    x1 = x.Offset(0, 1)
    x2 = x.Offset(0, 2)
    x3 = x.Offset(1, 1)
    x4 = x.Offset(1, 2)
    ... devrait marcher sans problème

    Toutefois, pourquoi passer par une variable intermédiaire puisque Target est déjà une cellule?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    x1 = Target.Offset(0, 1)
    x2 = Target.Offset(0, 2)
    x3 = Target.Offset(1, 1)
    x4 = Target.Offset(1, 2)
    Edit --> En relisant ton message, je vois que ce sont les adresses que tu veux obtenir.
    Je ne sais pas trop quel en est l'intérêt dans ton cas mais, si tu y tiens absolument:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    x1 = Target.Offset(0, 1).Address
    ...
    Si ton but est d'avoir 4 pointeurs vers des cellules:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Set x1 = Target.Offset(0, 1)
    Set x2 = Target.Offset(0, 2)
    Set x3 = Target.Offset(1, 1)
    Set x4 = Target.Offset(1, 2)
    Dans ce cas, chaque x "sera" la cellule que tu veux atteindre.
    Tu pourras donc faire
    et le contenu de la cellule pointée par x1 sera modifié en "Une valeur".
    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
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 13
    Par défaut
    Bonjour et merci beaucoup pour cette réponse rapide qui résoud mon problème.
    J'ai besoin dans mon application d'avoir des variables contenant l'adresse décalé par rapport a la cellule de départ. Le code que tu m'as donné fonctionne très bien.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    x=Target.Address                   'Adresse de la cellule cliquée.Exemple($A$1)
    x1 = Target.Offset(0, 1).Address   'x1= ($A$2)
    x2 = Target.Offset(0, 2).Address   'x2= ($A$3)
    x3 = Target.Offset(1, 1).Address   'x3= ($B$2)
    x4 = Target.Offset(1, 2).Address   'x4= ($B$3)
    C'est exactement ce que je voulais.
    Encore merci.

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

Discussions similaires

  1. [VBA - Excel] Problème de deux cellules sur l'evenement OnChange
    Par champmart dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 10/01/2007, 17h06
  2. [VBA E] Problème de lien entre textbox et cellule
    Par vanessaferraz dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 21/06/2006, 08h49
  3. [VBA-A]Problème de cellule Excel vide
    Par soad029 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 05/05/2006, 14h12
  4. [VBA-E]problème changement d'etat d'une cellule
    Par 12_darte_12 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 13/03/2006, 18h19
  5. [VBA] problème choix de cellule dans feuille excel
    Par beegees dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 01/02/2006, 10h48

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