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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du 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
    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 confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    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 208
    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

  3. #3
    Futur Membre du 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
    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 confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    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 208
    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

  5. #5
    Futur Membre du 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
    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 confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    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 208
    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

+ 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