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

Excel Discussion :

Valeur d'une adresse obtenue par formule


Sujet :

Excel

  1. #1
    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 Valeur d'une adresse obtenue par formule
    Maintenant que j'ai, grâce à Bigalo,
    =ADRESSE(LIGNE(Q3) + EQUIV(GRANDE.VALEUR(Q3:Q445;1);Q3:Q445;0) - 1;14)
    je voudrais en fait la valeur correspondant à l'adresse que j'obtiens ainsi (qui est une valeur placée dans une autre cellule)
    Par avance, merci

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2007
    Messages : 120
    Points : 181
    Points
    181
    Par défaut
    Salut ouskel'n'or et le forum

    Tu veux récupérer la valeur de la cellule.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDIRECT(ADRESSE(LIGNE(Q3) + EQUIV(GRANDE.VALEUR(Q3:Q445;1);Q3:Q445;0) - 1;14) )
    Mytå_Qc

  3. #3
    Membre confirmé
    Avatar de Bigalo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 445
    Points : 563
    Points
    563
    Par défaut
    Bonsoir,

    Le dernier argument, "14", de la formule que je t'ai indiquée, et que tu as adaptée,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =ADRESSE(LIGNE(Q3) + EQUIV(GRANDE.VALEUR(Q3:Q445;1);Q3:Q445;0) - 1;14)
    correspond à la colonne "N" (14ème lettre de l'alphabet, alors que GRANDE.VALEUR() se référait à la colonne "Q".

    Dans ton adaptation, tu as commis une imprudence : ce "14" risque de déclencher de mauvaise surprises par la suite en cas d'insertion ou de suppression de colonne(s) : en effet, les données risquent alors de ne plus être en colonne 14, mais la formule continuera à s'y référer et renverra alors un résultat incorrect.

    Il est vivement déconseillé d'employer directement une valeur numérique dans une formule : en cas d'erreur, elle est difficile à repérer, et certaines adaptations en principe automatiques dans un tableur ne fonctionnent plus, comme nous l'avons vu en cas d'insertion ou suppression de cellules.

    C'est pourquoi il vaudrait mieux utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =ADRESSE(LIGNE(Q3) + EQUIV(GRANDE.VALEUR(Q3:Q445;1);Q3:Q445;0) - 1;COLONNE(N1))
    En outre, cette formule est plus lisible, car les gens ne savent en général pas par cœur quelle est la quatorzième lettre de l'alphabet.

    Il s'agit de la cellule en colonne N située sur la même ligne que la plus grande valeur de la plage Q3:Q445 (GRANDE.VALEUR(Q3:Q445;1)).

    Je te propose 3 options :

    Si la formule est dans la cellule A1 (à adapter) :
    Si tu veux éviter la formule intermédiaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDIRECT(ADRESSE(LIGNE(Q3) + EQUIV(GRANDE.VALEUR(Q3:Q445;1);Q3:Q445;0) - 1;14))
    Ou avec une autre approche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDEX(DECALER(Q3:Q445;0;-3);EQUIV(GRANDE.VALEUR(Q3:Q445;1);Q3:Q445;0))
    NB - DECALER(Q3:Q445;0;-3) fait référence à la plage située 3 colonnes avant Q3:Q445, sur les mêmes lignes.

    Tu peux simplifier les 2 formules les plus longues en définissant un nom, "Réf" par exemple.

    La dernière formule devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDEX(DECALER(Réf;0;-3);EQUIV(GRANDE.VALEUR(Réf;1);Réf;0))
    Cordialement,

    Michel Gaboly


    Citation Envoyé par ouskel'n'or Voir le message
    Maintenant que j'ai, grâce à Bigalo,
    je voudrais en fait la valeur correspondant à l'adresse que j'obtiens ainsi (qui est une valeur placée dans une autre cellule)
    Par avance, merci
    Michel Gaboly
    Développeur Excel et VBA


    Pas de question technique par MP, je n’y répondrai pas, utilisez le forum - Merci
    Pensez à ajouter le tag

  4. #4
    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
    Merci Mytå_Qc et une nouvelle fois merci, Bigalo pour tes explications, vous me sortez d'affaire.
    Je ne travaille jamais avec Excel, seulement avec VBA. Mais je sens que je vais venir plus souvent
    En fait je fais un test unique, pas de risque qu'une colonne soit supprimée. Je connaissais Decaler mais n'ai pas pensé à l'utiliser.
    Tout ça va passer en VBA plus tard. Mais je voulais m'assurer de certains résultats avant de me lancer.
    Encore merci, je crois que pour ce soir c'est terminé.
    Bonne nuit

  5. #5
    Membre confirmé
    Avatar de Bigalo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 445
    Points : 563
    Points
    563
    Par défaut
    De rien, c'était un plaisir

    N'hésite surtout pas à poser des questions sur Excel. Mieux on maîtrise le produit associé (Excel en l’occurrence), plus on est efficace avec VBA, car on peut exploiter directement les possibilités de l’application sans devoir écrire du code pour des choses disponibles.

    En ce qui me concerne je suis directement concerné, car il m’arrive de manipuler Access, que je ne connais pas assez, par VBA à partir d’Excel.

    Si je connaissais mieux Access, mon code serait plus efficace !

    Cordialement,

    Michel Gaboly


    Citation Envoyé par ouskel'n'or Voir le message
    Merci Mytå_Qc et une nouvelle fois merci, Bigalo pour tes explications, vous me sortez d'affaire.
    Je ne travaille jamais avec Excel, seulement avec VBA. Mais je sens que je vais venir plus souvent
    En fait je fais un test unique, pas de risque qu'une colonne soit supprimée. Je connaissais Decaler mais n'ai pas pensé à l'utiliser.
    Tout ça va passer en VBA plus tard. Mais je voulais m'assurer de certains résultats avant de me lancer.
    Encore merci, je crois que pour ce soir c'est terminé.
    Bonne nuit
    Michel Gaboly
    Développeur Excel et VBA


    Pas de question technique par MP, je n’y répondrai pas, utilisez le forum - Merci
    Pensez à ajouter le tag

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

Discussions similaires

  1. Executer une macro si la valeur d'une cellule change par une formule
    Par billard-man dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/01/2015, 21h25
  2. recuperer valeur d'une grille creer par javascript
    Par ouedmouss dans le forum JSF
    Réponses: 1
    Dernier message: 29/09/2006, 10h56
  3. lire la valeur d'une adresse mémoire
    Par ilimo dans le forum Windows
    Réponses: 17
    Dernier message: 11/04/2006, 15h21
  4. [PHP-JS] recuperer valeur d'une liste generé par javascript
    Par crevettes59000 dans le forum Langage
    Réponses: 2
    Dernier message: 05/03/2006, 09h11
  5. Récupérer la valeur d'une adresse hexa 300.
    Par Cochman dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 04/06/2005, 17h45

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