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 :

Macro somme/sous.total(9;..) automatique avec code couleur


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2009
    Messages : 29
    Points : 14
    Points
    14
    Par défaut Macro somme/sous.total(9;..) automatique avec code couleur
    Bonjour le forum!

    J'ai un ensemble de lignes avec différents niveaux repérés par un code couleur. J'aimerai avoir une macro permettant d'obtenir les Sous-Totaux(9;........) selon les niveaux.
    Le mieux c'est que vous jetiez un coup d'œil dans le zip joint pour une meilleur compréhension.

    J'ai des connaissances en macro, mais pour ce type de problème j'avoue ma faiblesse.. Après quelques heures à bucher dessus, aucun résultat

    Merci par avance de votre aide, ou du moins d'avoir essayé

    Cordialement
    Fichiers attachés Fichiers attachés

  2. #2
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Aucun résultat ca m'étonnerais tu doit au moins voir une idée de l'algorithme que tu compte utilisé et de ce qui te manque pour y arriver
    parcourir telle ligne ou colonne réaliser tel test si tel résultat réaliser tel action....

    Je dit ça car je n'ouvre souvent les pièce jointe comme plusieurs personne et si tu veux notre aide il te faudra donner plus d'info.
    Essaye par exemple de nous présenter ton algorithme en pseudo code ou de manière libre et dit nous quelles sont les commande qui te manque. Ca ira beaucoup plus vite pour t'aider, et ca te permettra d'apprendre bien plus de chose

    Après il est également possible que quelqu'un ouvre ton fichier et réalise ta macro.

    Un petit exemple de pseudo code qui additionne toute les valeur en rouge (ca na sans doute rien a voir avec ton problème mais c'est pour que tu vois de quoi je parle)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    somme=0
    Pour i qui va de 2 au nombre de ligne de la colonne A
        si la cellule de la ligne i colonne A est rouge
            somme=somme+valeur de la ligne i colonne A
        fin si
    i suivant
    Copier somme dans première ligne vide de l'onglet bilan

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2009
    Messages : 29
    Points : 14
    Points
    14
    Par défaut
    bien sûr que j'ai une idée de l'algorithme, seulement je ne connais pas du tout le language de code pour les totaux ou quoi je vais tenter de produire une macro "bateau" sans synthaxe ou quoi juste pour le fonctionnement.

  4. #4
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Par ce que si tu sort le pseudo code nous on peut t'aider a le traduire en VBA rapidement mais la j'ai pas envie de tout te faire... Après tu peux espérer que quelqu'un ai du temps a perdre

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2009
    Messages : 29
    Points : 14
    Points
    14
    Par défaut
    bonjour,

    Ok je vous fais ce code, j'ai une petite idée alors je vais voir c'que ça peut donner. Seulement je m'excuse je vais mettre un peu de temps car je suis sur des projets importants. Je fais ça au plus vite.
    j'vous remercie de votre engagement pour mon pb.

    A trés vite
    Bonne journée à vous tous

    eheh on est que 2 alors bonne journée à toi krovax

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2009
    Messages : 29
    Points : 14
    Points
    14
    Par défaut Voila la fameux code, Help
    rebonjour le forum, me revoila avec le "pseudo" code qui je pense résoudra mon problème: pour mieux comprendre je vous propose d'allé voir sur le zip que j'ai laissé au tout début! et pareil pour le code, en le postant tout c'est aligné mais sur le txt ci-joint c'est plus clair!

    ___________________________________________________________
    A = Max de ligne
    B = 1

    Tant que B <= A Lire ligne par ligne faire

    Si NIVEAU1 alors
    ALGO1
    B = B+1
    sinon Si NIVEAU2 alors
    ALGO2
    B = B+1
    sinon Si NIVEAU3 alors
    ALGO3
    B = B+1
    Sinon Si Niveau4 alors
    Algo4
    B = B+1
    sinon
    B = B+1
    Fin si
    Fin si
    Fin si
    Fin si

    Fin tant que


    -----------------
    ALGO1
    A partir de cette ligne: chercher ligne par ligne afin d'identifier toute les lignes de NIVEAU2 jusqu'au prochain NIVEAU1 (ou fin des lignes: A)
    Dans la cellule de NIVEAU1 (colonne G) faire la somme des valeur NIVEAU2 !PLUS! les lignes NORMAL qui suivent le NIVEAU1 jusqu'au premier NIVEAU2 trouvé

    Sinon Si pas de NIVEAU2
    A partir de cette ligne: chercher NIVEAU3
    Dans la cellule de Niveau 1 (colonne G) faire la somme des valeurs NIVEAU3 !PLUS! les lignes NORMAL qui suivent le NIVEAU1 jusqu'au premier NIVEAU3 trouvé

    Sinon Si pas de Niveau 3
    A partir de cette ligne: chercher Niveau 4
    Dans la cellule de Niveau 1 (colonne G) faire la somme des valeurs NIVEAU4 !PLUS! les lignes NORMAL qui suivent le NIVEAU1 jusqu'au premier NIVEAU2 trouvé

    Sinon Si pas de Niveau 4
    A partir de cette ligne: chercher NORMAL
    Dans la cellule de Niveau 1 (colonne G) faire la somme des valeurs NORMAL
    (Dans ce cas, comme ya que du NORMAL: couper macro)

    -----------------
    ALGO2
    Si NORMAL, passer à la ligne suivante sinon
    Si Niveau 2 alors
    A partir de cette ligne: chercher ligne par ligne afin d'identifier toute les lignes de NIVEAU3 jusqu'au prochain NIVEAU2
    Dans la cellule de NIVEAU2 (colonne G) faire la somme des valeur NIVEAU3 !PLUS! les lignes NORMAL qui suivent le NIVEAU2 jusqu'au premier NIVEAU3 trouvé

    Sinon Si pas de NIVEAU3
    A partir de cette ligne: chercher NIVEAU4
    Dans la cellule de Niveau 2 (colonne G) faire la somme des valeurs NIVEAU4 !PLUS! les lignes NORMAL qui suivent le NIVEAU2 jusqu'au premier NIVEAU4 trouvé

    Sinon Si pas de Niveau 4
    A partir de cette ligne: chercher NORMAL jusqu'au prochain NIVEAU2
    Dans la cellule de Niveau 2 (colonne G) faire la somme des valeurs NORMAL

    -----------------
    ALGO3
    Si NORMAL, passer à la ligne suivante sinon
    Si Niveau 3 alors
    A partir de cette ligne: chercher ligne par ligne afin d'identifier toute les lignes de NIVEAU4 jusqu'au prochain NIVEAU3
    Dans la cellule de NIVEAU3 (colonne G) faire la somme des valeur NIVEAU4 !PLUS! les lignes NORMAL qui suivent le NIVEAU3 jusqu'au premier NIVEAU4 trouvé

    Sinon Si pas de NIVEAU4
    A partir de cette ligne: chercher NORMAL jusqu'au prochain NIVEAU3
    Dans la cellule de Niveau 3 (colonne G) faire la somme des valeurs NORMAL


    -----------------
    ALGO4
    Si NORMAL, passer à la ligne suivante sinon
    Si Niveau 4 alors
    A partir de cette ligne: chercher NORMAL jusqu'au prochain NIVEAU4
    Dans la cellule de Niveau 4 (colonne G) faire la somme des valeurs NORMAL
    (on continue)


    __________________________________________________________
    Voila j'espère que c'est plus clair et que quelqu'un sera capable de m'aider...
    Merci d'avance et désolé pour le temps mis à poster ce code vulgaire. lol
    ce qui me pose le problème sur ce problème c'est surtout la collecte des valeurs pour faire la somme.
    Fichiers attachés Fichiers attachés

  7. #7
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 944
    Points : 1 282
    Points
    1 282
    Par défaut
    Bonjour
    Sans chercher midi à quatorze heures, voila ce que tu peux faire:
    - descendre dans ta colonne G
    - sur chaque cellule tu controle la couleur de fond (enregistre une macro qui met cette couleur cela t'aidera)
    - en fonction de l'index de la couleur tu cumules ta valeur dans l'une ou l'autre des variables
    - en bas de colonne tu traites tes variables.

    Bon courage
    --------------
    Frédéric
    http://www.access-developpement.com

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2009
    Messages : 29
    Points : 14
    Points
    14
    Par défaut
    oula, je suis pas sur de te comprendre. Au jour d'aujourd'hui , j'ai réussi à traiter les niveaux de chaque question. (dans le excel joint: macro niveau), j'ai aussi fais des macro pour mettre les couleurs de niveaux sur les cellules sélectionnées (pour avoir toujours les mêmes codes couleurs mais ça n'est pas dans la version envoyée...)
    comme j'ai réussi à affecter les niveau je pensais faire des somme.si mais il s'avère que c'est impossible (au moins que.... nan trop de cas particulier). je pense que ma pseudo macro peut traiter tout les cas.
    Mais je suis mauvaise niveau code, c'est les ALGO 1,2,3,4 que j'ai du mal à faire.
    Si quelqu'un peut me faire la 1 je pense pouvoir m'en sortir pour la suite!
    Merci

  9. #9
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 944
    Points : 1 282
    Points
    1 282
    Par défaut
    J'ai regardé le fichier joint et j'ai du mal à comprendre la finalité du programme

    Au départ, j'avais compris que tu voulais additionner les valeurs de la colonne F en fonction de leur niveau (couleur de fond). C'est ça ?
    Si oui, ces calculs il faut les mettre dans quelles cellules ou en faire quoi ?


    Si c'est pas ça, alors je comprends pas la finalité (par ex. pourquoi on rempli les colonnes A, B, C ?

    En tout état de cause je ne pense pas qu'il faille boucler autant de fois que l'on a de niveaux, mais en bouclant 1 fois on arrive à faire les 4 test de niveau

    --------------
    Frédéric
    http://www.access-developpement.com

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2009
    Messages : 29
    Points : 14
    Points
    14
    Par défaut
    ce sont des questionnaires, dans l'exemple il y a seulement 1 questionnaire (le thème "comptabilité"), en réalité à la suite de celui, on trouve donc d'autres thèmes avec d'autres niveaux/questions. Les clients remplissent les notes (colonne G) seulement pour les lignes de niveau normal (les questions quoi). Comme il est possible d'intégrer, supprimer des niveaux et questions je souhaite mettre en place une macro qui calcul les sommes automatiquement celons les règles que j'ai défini. Les colonnes A B C D E sont masquées, elles me servent par la suite à des tableaux croisée dynamique.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 48
    Points : 59
    Points
    59
    Par défaut
    Tout simple :
    Il faut deja que tu connaisses les codes des couleurs que tu utilises. Pour ça tu fais sur une feuille vide avec l'enregistreur de macros :
    enregistrer macro, tu cliques sur une cellule, tu la met en couleur, arreter l'enregistrement.
    Tu affiches ta page de codes, tu ouvres ta sub, et tu notes le code couleur.
    Ensuite il ne te restes plus qu'a balayer tes cellules

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for lign = 1 to x 
    for colo =1 to  y
    if Cells(LIGN, COLO).Interior.Color= la couleur z then  blabla
    if Cells(LIGN, COLO).Interior.Color= la couleur q then  turlututu
    etc...
    next colo
    next lign

Discussions similaires

  1. [XL-2010] Cacul de sous total en VBA avec conditions
    Par cedgou dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/06/2015, 08h59
  2. [XL-2010] mise en forme conditionnelle avec code couleur (3 valeurs)
    Par StayTrippy dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/05/2014, 18h23
  3. activer les macros sous access 2007 avec code VBA
    Par aymane19 dans le forum VBA Access
    Réponses: 3
    Dernier message: 31/08/2012, 14h21
  4. [XL-2003] Faire une somme avec la fonction sous total
    Par Gwladys dans le forum Excel
    Réponses: 2
    Dernier message: 09/04/2009, 17h26
  5. [WD-2003] table des matières avec code couleur
    Par enretard dans le forum Word
    Réponses: 7
    Dernier message: 02/04/2009, 22h11

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