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 :

Nombre de lignes dans une formule varie.


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 23
    Points : 9
    Points
    9
    Par défaut Nombre de lignes dans une formule varie.
    Bonjour à tous!
    J'ai une petite question pour vous.
    J'ai dans une formule excel une somme(par exemple) de $A$1 : $A$15
    Le problème c'est que le nombre de ligne varie, par exemple on peut faire la somme jusqu'à la ligne $A$25 tout dépend en faite du nombre se situant dans ma case B1.
    En effet, si j'ai le nombre 15 dans ma cellule B1 alors la somme va jusqu'à 15.
    Je voulais donc faire $A$1:$A$B1 ce qui n'a évidemment pas marché.

    Merci de m'aider

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2008
    Messages : 78
    Points : 84
    Points
    84
    Par défaut
    Salut Magzz69,

    Une première approche.

    En colonne A tes valeurs,
    en D2 la ligne max ou tu vas,
    en D3 la somme du départ à la ligne max.

    Zeb
    Fichiers attachés Fichiers attachés

  3. #3
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    en utilisant INDEX()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME(INDEX(A:A;1;1):INDEX(A:A;B1;1))

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =SOMME((LIGNE(A1:A23)<=B$1)*(A1:A23))
    à entrer en forme matricielle ctrl+mj+entr

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2008
    Messages : 78
    Points : 84
    Points
    84
    Par défaut
    Salut tlm,

    J'aime bien la soluce de Cafeine, mais il y peut être un problème avec la limite, c'est peut être B1+1.

    Par contre, j'ai pas bien compris la soluce de Random, tu crée un vecteur des lignes 1 à x, et tu as la même valeur partout?
    Parceque j'ai essayé sur une seule cellule, j'ai pas pu ? (et donc pas compris)
    Si tu peux m'éclairer ?


    Zeb

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 23
    Points : 9
    Points
    9
    Par défaut
    Rebonjour!
    Moi non plus je n'ai pas compris la solution de random et la tienne Zeb33 mon ordinateur ne veut pas ouvrir ton fichier...Bizarre! (vive les vieux pc )
    Alors j'ai tester la solution de Cafeine ça marche. Par contre ma formule pointe sur une autre feuille et là excel crie
    Je vous mets la formule (c'est une sommeprod) si jamais vous saviez comment réglez le problème.. Car quand je fais avec INDEX, il me met un message d'erreur et me souligne le !Backs; sachant que Backs est un nom de feuille.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD(SI(Backs!$C$21:$C$447="D";0;1);SI(MOIS(Backs!$D$21:$D$447)=Report!F$36;1;0);SI(Backs!$W$21:$W$447=Report!$E38;1;0);Backs!$AF$21:$AF$447)
    Dans ma formule c'est le 447 qui varie et que je veux mettre en variable.

    En tout cas merci beaucoup pour vos réponses!!

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    plus facile qu'une explication

    faire varier b1
    Fichiers attachés Fichiers attachés

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 23
    Points : 9
    Points
    9
    Par défaut
    J'ai réussi a ouvrir vos fichiers (oufff). Quand je fais ta solution Random ça me surligne pas Backs mais LIGNE maintenant

  9. #9
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    ca fonctionne en multifeuille

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME((LIGNE(Feuil2!A1:A32)<=B$1)*(Feuil2!A1:A32))
    toujours en matriciel

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2008
    Messages : 78
    Points : 84
    Points
    84
    Par défaut
    Salut tlm,

    Random, j'ai pas compris ce qu'ai fait ce matin, mais là ca marche bien

    J'ai l'habitude des matrices (inverse, transposé et tout le tintouin), mais j'aurais pas pensé à utiliser cà pour une fonction somme avec ligne. Chapeau!

    Zeb

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 23
    Points : 9
    Points
    9
    Par défaut
    Re!
    Bon j'ai donc essayé ta solution mais toujours rien, il me dit qu'il y a un problème, voilà mon code pour aider un peu plus peut etre!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SOMMEPROD(SI((LIGNE(Backs!$C$21:$C$2000)<=$K$9)*(Backs!$C$21:$C$2000)="D";0;1);SI(MOIS((LIGNE(Backs!$D$21:$D$2000)<=$K$9)*(Backs!$D$21:$D$2000))=Report!F$36;1;0);SI(LIGNE((Backs!$W$21:$W$2000)<=$K$9)*(Backs!$W$21:$W$2000)=Report!$E37;1;0);(LIGNE((Backs!$A$21:$A$2000)<=$K$9)*(Backs!$A$21:$A$2000)))

    Merci

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 23
    Points : 9
    Points
    9
    Par défaut
    Bonjour!!
    J'ai peut etre trouvé pourquoi cela ne marchait pas, il y a peut etre trop de chose à l'interieur? Car quand excel me met l'erreur si je clique sur Aide il existe un point qui dit : "N'imbriquez pas plus de sept fonctions " .

    Peut etre? peut etre pas

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 23
    Points : 9
    Points
    9
    Par défaut
    RE!
    je viens d'essayer avec la fonction INDEX, ça donne ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD(SI(INDEX(Backs!$C:$C;21;1):INDEX(Backs!$C:$C;$K$9;1)="D";0;1);SI(MOIS(INDEX(Backs!$D:$D;21;1):INDEX(Backs!$D:$D;$K$9;1))=Report!F$36;1;0);SI(LIGNE(INDEX(Backs!$W:$W;21;1):INDEX(Backs!$W:$W;$K$9;1))=Report!$E37;1;0);(INDEX(Backs!$AF:$AF;21;1):INDEX(Backs!$AF:$AF;$K$9;1)))
    Excel ne dit rien, par contre...il ne me met que des zéro alors que le résultat n'est pas ça
    Pour info, ma case K9 est dans la feuille ou je fais la formule c'est pour ça que je n'ai pas mis Backs! devant.

  14. #14
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    470
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 470
    Points : 493
    Points
    493
    Par défaut
    Bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME(DECALER(A1;0;0;B1;1))
    Bonne journée

    Abed_H

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 23
    Points : 9
    Points
    9
    Par défaut
    Salut!
    Alors j'ai tester la solution mais que je l'étire : ça me met des Zéro partout comme pour les autres codes.... :s

    Voilà le code avec la fonction decaler:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD(SI(DECALER(Backs!$C$21;0;0;$K$9;1)="D";0;1);SI(MOIS(DECALER(Backs!$D$21;0;0;$K$9;1))=Report!F$36;1;0);SI(LIGNE(DECALER(Backs!$W$21;0;0;$K$9;1))=Report!$E37;1;0);(DECALER(Backs!$AF$21;0;0;$K$9;1)))



Discussions similaires

  1. Faire varier le nombre de lignes dans une formule
    Par evo84 dans le forum Général VBA
    Réponses: 1
    Dernier message: 15/11/2014, 22h19
  2. Réponses: 11
    Dernier message: 20/10/2006, 12h16
  3. Réponses: 3
    Dernier message: 27/09/2006, 11h35
  4. [C#] Limité le nombre de lignes dans une DataView ...
    Par maitrebn dans le forum Accès aux données
    Réponses: 5
    Dernier message: 07/11/2005, 23h57
  5. Réponses: 8
    Dernier message: 20/06/2005, 15h10

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