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 :

Bug nouveau sur Colonne() ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut Bug nouveau sur Colonne() ?
    Bonjour à tous,

    Je suis confronté à un phénomène bizarre sur excel 2010.
    Ou bien je ne vois pas ce qui devrait se voir comme le nez au milieu de la figure...

    Jusqu'à maintenant je ne me rappelle pas avoir eu des problèmes avec des formules du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =DECALER(A2:A6;;COLONNE()-7)
    Hors maintenant je récupère une matrice d'une seule cellule au lieu de x lignes (?!?) :
    Nom : 2017-08-29_13-45-32.png
Affichages : 216
Taille : 10,0 Ko
    Par contre c'est bon avec d'autres fonctions ou bien l'offset en dur. Même pb pour Ligne()
    Dois-je arrêter l'alcool ?
    Merci
    eric

  2. #2
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 562
    Par défaut
    Bonjour

    Je comprends que ce n'est pas logique mais G -7 colonnes c'est en dehors de l'écran...

    Edit non, c'est OK, sorry...

    Edit 2 : bizarrement COLONNES(A:G)-7 fonctionne

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par 78chris Voir le message
    bizarrement COLONNES(A:G)-7 fonctionne
    Perso, j'aurais plutôt essayé (sans certitude) :
    Je pense qu'il nous manques des morceaux du puzzle mais j'ai l'impression que cette formule est une partie d'une fonction matricielle, non ?
    Si c'est le cas, peut-être que le fait que COLONNE soit sans paramètre est interprété comme COLONNE(G2).
    Du coup, on se retrouve dans la fonction matricielle avec des zones relatives de taille différente et Excel doit un peu s'y emmêler les pinceaux.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Je pense qu'il nous manques des morceaux du puzzle mais j'ai l'impression que cette formule est une partie d'une fonction matricielle, non ?
    La formule ou du moins le résultat à obtenir en lui-même n'a pas d'importance, c'est plus au type de la formule qu'il faut s'attacher.
    J'ai simplifié au minimum pour faire apparaitre le pb.

    Je pars d'une matrice de x lignes que je décale de x colonnes, je dois obtenir une matrice de toujours x lignes.
    Si pour x j'utilise une expression formée à partir de ligne() ou colonne() (sensées me fournir la ligne ou la colonne en cours) je me retrouve avec une matrice d'une ligne au lieu de x lignes.
    Toute autre façon d'exprimer x fonctionne correctement.
    Le problème est que
    =DECALER(A2:A6;;COLONNE()-7)
    une fois colonne() évalué devient :
    =DECALER(A2:A6;;{7}-7)
    et non :
    =DECALER(A2:A6;;7-7) qui lui fonctionne
    Si cela fonctionnait différemment avant je pense sincèrement que je l'aurai remarqué.
    Si tu veux, pour retrouver un fonctionnement normal il faudrait écrire :
    =DECALER(A2:A6;;INDEX(COLONNE();1)-7), pas terrible...

    bizarrement COLONNES(A:G)-7 fonctionne
    oui, colonnes() retourne bien une valeur 'normale', pas une matrice d'une cellule. Comme equiv() et bien d'autres fonctions. Seulement colonnes() et colonne() n'ont pas le même usage.

    edit : avez-vous le même soucis, et sur quelle version ? Et surtout est-ce moi qui ait rêvé le fonctionnement antérieur ? Grave mais possible aussi.... :-s

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par eriiic Voir le message
    La formule ou du moins le résultat à obtenir en lui-même n'a pas d'importance, c'est plus au type de la formule qu'il faut s'attacher.
    C'est pour ça que j'ai demandé s'il s'agit ou non d'une fonction matricielle.
    Vu que utilisé classiquement (voir la formule ci-dessous), la formule initiale fonctionne sans problème (j'ai testé).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    =SOMME(DECALER(A2:A6;;COLONNE()-7))
    =SOMME(DECALER(A2:A6;;COLONNE()-6))

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Ok. Non, en validation normale.

    Alors de plus en plus étrange
    Si je rempli un peu A, ta formule =SOMME(DECALER(A2:A6;;COLONNE()-7)) inscrite en G me retourne bien la somme, en validation normale.
    Mais si j'y sélectionne DECALER(A2:A6;;COLONNE()-7) pour l'évaluer avec F9 j'obtiens #VALEUR! au lieu de la matrice attendue.
    Je n'y comprend plus rien.

    Quelle version as-tu ? Moi c'est 2010
    Pour info, par acquis de conscience j'ai rebooté au cas où mais aucun miracle ne s'est pas produit

Discussions similaires

  1. [XL-2007] Bug VBA: SUM sur colonne "AN"
    Par dacid dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/09/2012, 10h46
  2. [WD17] Bug sur colonne ancrée ?
    Par jimmypage dans le forum WinDev
    Réponses: 0
    Dernier message: 24/07/2012, 09h30
  3. [XSL FO] afficher template sur colonnes alternativement
    Par elzedo dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 29/06/2005, 12h53
  4. Confirmation de bug, Like et colonne indexée
    Par Tan dans le forum Access
    Réponses: 10
    Dernier message: 04/05/2005, 20h54

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