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 :

Addition conditionnelle de variables stocker dans matrice


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2017
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2017
    Messages : 21
    Par défaut Addition conditionnelle de variables stocker dans matrice
    Bonjour à tous,

    Toujours pour la réalisiation de mon TFE, j'utilise vba pour construire un petit programme informatique de dimensionnement.

    Cependant, me voila coincé par un petit problème.

    Je dois additionner toute les valeurs positives/negatives sur une mm ligne dans plusieurs matrices Mx(1 to 100, 1to 4).

    Si j'ai bien compris, la fonction SUMIF ne fonctionne que pour l'addition conditionnelle de valeur se trouvant dans un range de cellule... Je ne vois donc pas comment l'utiliser ici.

    Petit exemple :

    M1(5,1) = -1
    M2(5,1) = 3
    M3(5,1) = -5
    M4(5,1) = 6

    si on additionne les valeurs +, on a la rep : 9
    si on additionne les valeurs - ,on a la rep -6

    Avez-vous une idée d'un petit bout de code permettant cela ?


    Merci à tous de votre aide si précieuse.

    Bonne après midi.

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Au hasard (après un repas bien arrosé) en en VOULANT croire que ta matrice est (quand même !) bien déclarée de type numérique et qu'elles contient bien des valeurs numériques :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SI  M(x1, y1) >= 0  and  M(x2,y2) > 0 alors ... j'additionne pour avoir les positifs ou nuls
    je te laisse deviner comment déterminer les valeurs négatives. Moi, j'ai trop bu, hein ...

    PS : s'il te plait : évite de me dire que tu ne vois maintenant pas comment additionner (en parcourant en boucle) uniquement les positifs ou uniquement les négatifs : cela me de-soulerait trop rapidement, hein ...
    Hé bé !!!!

  3. #3
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2017
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2017
    Messages : 21
    Par défaut
    Ah,

    En effet, votre solution pourrait fonctionner.
    Je dois donc rassembler toute mes matrices pour en faire une matrice global.
    Ensuite je pourrais utiliser faire une ittération sur la mm ligne de cette matrice (x1,y1 + x2,y1+...) en vérifiant si la valeur prise en compte est + ou -.

    Je vais essayer ça, merci à vous.

    et surtout, bonne sieste

  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
    Bonjour,

    et tu peux utiliser une matrice à 3 dimensions :
    M(1,5,1) = -1
    M(2,5,1) = 3
    M(3,5,1) = -5
    M(4,5,1) = 6
    tu n'auras besoin que d'un niveau de boucle supplémentaire pour pouvoir tout balayer.
    eric

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Et même sans aucune boucle :
    en utilisant une feuille tremplin, y collant les valeurs des trois matrices, l'une en dessous de l'autre et d'un seul coup par matrice, puis en se servant alors tout simplement de worksheetfunction.sumif appliquée à la plage finale.
    Ce n'est là qu'une question d'organisation des abondements successifs des cellules de la feuille tremplin

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

Discussions similaires

  1. recuperer les variables d'un .txt pour les stocker dans un tableau du .fla
    Par Dryss51 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 3
    Dernier message: 19/04/2008, 09h14
  2. Batch : stocker dans une variable
    Par Martin Guélat dans le forum Windows
    Réponses: 1
    Dernier message: 13/03/2007, 16h41
  3. Réponses: 2
    Dernier message: 28/02/2007, 20h01
  4. Réponses: 3
    Dernier message: 07/12/2006, 10h15
  5. Réponses: 14
    Dernier message: 28/07/2006, 10h20

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