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 :

[VBA-E] : somme de deux lignes ayant des positions variables


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 9
    Par défaut [VBA-E] : somme de deux lignes ayant des positions variables
    Bonjour à toutes et à tous,

    Je débute dans VBA pour faire quelques petites macros pour excel et j'ai besoin de vos lumières.

    Je joins un fichier illustrant mon problème, voici ce que je cherche à faire :

    Les deux lignes "TOTAL PF" et "TOTAL SF" ne sont pas toujours positionnées sur les lignes de l'exemple et je voudrais coder un "TOTAL PF & SF" deux lignes en dessous des tableaux me faisant la somme des deux lignes précédentes.

    J'espère que j'ai été assez clair.

    Merci beaucoup et bonne fin de journée

    Mathieu
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    bonjour, pas besoin de te lancer dans le VBA pour autant
    tu places
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME(RECHERCHEV("TOTAL PF";$C$1:$R$33;4;0);RECHERCHEV("TOTAL SF";$C$1:$R$33;4;0))
    sur la premiere case de ton tableau et tu incrementes vers la droite
    bonne journée

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 9
    Par défaut
    Merci Alsimbad pour ta réponse mais en fait cette étape n'est qu'une partie d'une macro. Il faut donc que je la code en vba.

    Merci d'avance et bonne journée.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    ok alors
    le probleme avec ton fichier c'est que tu laisse des lignes vides. il existe plusiers méthode pour trouver la derniere ligne d'un tableau, mais je pense qu'elle s'arrete toute a la derniere ligne pleine du tableau et ne vont pas voir plus loin. la plus simple si tu es débutant est d'utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    u = cells(1,1).currentregion.rows.count
    qui te donne le nombre de ligne et ensuite tu joue avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cells(6,u+2).value = ....
    si tu supprime tes lignes vides, tu devrais pouvoir t'en tirer avec ça
    bon courage

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 9
    Par défaut
    Bonjour,

    Merci pour tes infos !
    En fait, pour me positionner où il faut, j'arrive à m'en sortir et la formule avec les recherchev marche très bien. Mon problème c'est pour la traduire en vba.

    J'ai essayé avec worksheetfunction mais elle est un peu compliquée et je n'arrive pas.
    J'ai aussi essayé avec formulalocal mais là ce sont les guillemets de "TOTAL PF" et "TOTAL SF" qui bloquent.

    SOMME(RECHERCHEV("TOTAL PF";$C$1:$R$33;4;0);RECHERCHEV("TOTAL SF";$C$1:$R$33;4;0))

    J'ai bien trouvé une solution, j'ai préparé la ligne avec les commandes dans une autre feuille et je la copie là où j'en ai besoin. Ca marche mais ce n'est pas très joli et j'aimerais bien savoir comment le faire proprement, histoire de d'en apprendre un peu plus.

    Donc si ça s'explique, je suis intéressé pour avoir la méthode mais si c'est vraiment compliqué, ce n'est pas grave vu que là ça tourne quand même.

    En tout ca, je te remercie pour ton aide !!

    Bonne journée

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    si tu arrive a te positionner, fais une recherche plutot qu'une formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    for each c in range(" * :  * ")
    if c = "TOTAL PF" then
    dim arrayA()
    for i = 1 to 12
    arrayA(i) = c.offset(i,0)
    next i
    end if
    next
    for each d in range(" * :  *" )
    if d = "TOTAL SF" then
    dim arrayB()
    for i = 1 to 12
    arrayB(i) = c.offset(i,0)
    next i
    end if
    next d
    et quand tu es positionné sur la premiere case de ta ligne de résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i = 1 to 12
    cells("départ").offset(i,0) = arrayA(i)+arrayB(i)
    next i
    de la sorte, pas besoin de rentrer ta formule ( le code est un peu approximatif, mais l'essentiel y est)

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/02/2015, 09h17
  2. Compter le nombre de lignes ayant des critères similaires
    Par JohnJ_M dans le forum Développement de jobs
    Réponses: 5
    Dernier message: 21/11/2014, 10h10
  3. Réponses: 4
    Dernier message: 08/05/2012, 10h58
  4. [FAQ VBA Excel] Somme d'une ligne d'un tableau sur un classeur fermé
    Par nox1492 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 08/12/2007, 12h54
  5. Deux colonnes ayant des lignes identiques
    Par monoar dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/07/2007, 10h19

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