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 :

SOMME.SI avec variables comme ligne


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4
    Points : 2
    Points
    2
    Par défaut SOMME.SI avec variables comme ligne
    Bonjour le Forum

    Comme mon pseudo l'indique je suis novice en VBA et j'ai besoin d'aide.

    Pour mon boulot, je dois à partir d'un tableau, qui peut avoir un nombre de lignes variables en fonction d'une période sélectionnée, créer un autre tableau pour en sortir un graphique (mais je ne veux utiliser un tableau croisé dynamique)
    J'ai créé une macro avec somme.si qui fonctionne tres bien avec une période donnée.
    mais c'est la cata quand je veux introduire une variable
    j'ai essayé ca (et d'autres choses) :
    ActiveCell.Formula = "=SUMIF(D2 & lignes1;J & k;E2:E & lignes1)"

    Je joins un extrait de mon fichier
    Merci pour votre aide
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour et bienvenue,

    Pour les formules de la colonne K, utilise la macro suivante. Son avantage est de ne pas comporter de boucle. C'est le seul avantage d'utiliser les formules de type R1C1. Il y a sans doute beaucoup de choses que tu ne comprends pas. N'hésite pas à poser des questions.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Macro1()
    '
    ' Macro1 Macro
    ' Macro enregistrée le 14/12/2011 par eguarnie
    '
     
    '
        With Sheets("Feuil1")
            Set plage = .Range(.[J2], .Cells(.Rows.Count, 10).End(xlUp)).Offset(, 1)
            plage.FormulaR1C1 = "=SUMIF(RC[-7]:R[4]C[-7],RC[-1],RC[-6]:R[4]C[-6])"
        End With
    End Sub
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci Daniel C pour ta réponse rapide.
    Tu penses je viens de tester !
    Je me suis peut être mal expliqué . Avec ta macro je trouve en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    K2 : =SOMME.SI(D2:D6;J2;E2:E6)
    K3 : =SOMME.SI(D3:D7;J3;E3:E7)
    K4 : =SOMME.SI(D4:D8;J4;E4:E8)
    etc
    alors que je souhaite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    K2 : =SOMME.SI(D2:D"lignes1";J2;E2:E"lignes1")
    K3 : =SOMME.SI(D2:D"lignes1";J3;E2:E"lignes1")
    K4 : =SOMME.SI(D2:D"lignes1";J4;E2:E"lignes1")
    etc ou lignes1 est le nombre variable de lignes que je trouve dans mon tableau initial.
    C'est mieux expliqué ??

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Non, tu avais bien exposé ton problème. J'ai péché par excés de confiance. Essaie :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Macro1()
    '
    ' Macro1 Macro
    ' Macro enregistrée le 14/12/2011 par eguarnie
    '
     
    '
        With Sheets("Feuil1")
            Set plage = .Range(.[J2], .Cells(.Rows.Count, 10).End(xlUp)).Offset(, 1)
            plage.FormulaR1C1 = "=SUMIF(R2C4:R6C4,RC[-1],R2C5:R6C5)"
        End With
    End Sub
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Re merci
    C'est presque ca !
    Sauf que si une ligne est ajouté dans mon tableau initial (ligne7) le calcul se fait toujours sur la ligne 6 et donc je rate une information !

  6. #6
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Il suffisait de le dire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Macro1()
    '
    ' Macro1 Macro
    ' Macro enregistrée le 14/12/2011 par eguarnie
    '
     
    '
        Dim DerLigne As Long, Plage As Range
        With Sheets("Feuil1")
            DerLigne = .Cells(.Rows.Count, 3).End(xlUp).Row
            Set Plage = .Range(.[J2], .Cells(.Rows.Count, 10).End(xlUp)).Offset(, 1)
            Plage.FormulaR1C1 = "=SUMIF(R2C4:R" & DerLigne & "C4,RC[-1],R2C5:R" & DerLigne & "6C5)"
        End With
    End Sub
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  7. #7
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    yes !!
    je stagnais sur cette formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Plage.FormulaR1C1 = "=SUMIF(R2C4:R" & DerLigne & "C4,RC[-1],R2C5:R" & DerLigne & "6C5)"
    je ne savais pas trop ou mettre les "
    Euh ! le 6 n'est pas en trop là : DerLigne & "6C5

    en tout les cas un grand merci
    Comment fait on pour clore le sujet ??

  8. #8
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Euh ! le 6 n'est pas en trop là : DerLigne & "6C5
    Et si !

    Pour clore le sujet ? Je n'ai posé qu'une question. Je crois qu'il y a un bouton, en bas à droite.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

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

Discussions similaires

  1. [XL-2007] ajouter la serie "X" dans un graphique en VBA avec variables pour Ligne et colonne
    Par maxime-a dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 01/04/2015, 14h40
  2. Somme.si avec un nombre de lignes variables
    Par puledad1 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/03/2013, 16h14
  3. Somme.si avec un nombre de ligne variables
    Par Atofi dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/01/2010, 14h30
  4. Formulaire avec nombre de lignes de saisie variable
    Par NadègeG dans le forum Langage
    Réponses: 9
    Dernier message: 03/10/2006, 08h10
  5. Variable avec saut de ligne à l'intérieur
    Par MaTHieU_ dans le forum Langage
    Réponses: 2
    Dernier message: 09/08/2004, 22h39

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