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.ens en vba


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 11
    Points : 11
    Points
    11
    Par défaut somme.si.ens en vba
    Bonjour

    Donc voila ce que j'ai fait : 'condition heure 100%
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
                        Range("L13").Select
        ActiveCell.FormulaR1C1 = _
            "=IF(SUMIFS(R13C6:R4000C6,R13C1:R4000C1,RC[-1])>35,35,SUMIFS(R13C6:R4000C6,R13C1:R4000C1,RC[-1]))"
     
        'condition heure 125%
        Range("M13").Select
        ActiveCell.FormulaR1C1 = _
            "=IF(SUMIFS(R13C6:R4000C6,R13C1:R4000C1,RC[-2])>39,39-35,IF(SUMIFS(R13C6:R4000C6,R13C1:R4000C1,RC[-2])<35,""""))"
     
        'condition heure 150%
        Range("N13").Select
        ActiveCell.FormulaR1C1 = _
            "=IF(SUMIFS(R13C6:R4000C6,R13C1:R4000C1,RC[-3])>39,SUMIFS(R13C6:R4000C6,R13C1:R4000C1,RC[-3])-39,IF(SUMIFS(R13C6:R4000C6,R13C1:R4000C1,RC[-3])<35,""""))"
     
        'somme heure 100%
        Range("L13").Select
        Selection.AutoFill Destination:=Range("L13:L2000"), Type:=xlFillDefault
        Range("L13:L2000").Select
     
        'somme heure 125%
        Range("M13").Select
        Selection.AutoFill Destination:=Range("M13:M2000"), Type:=xlFillDefault
        Range("M13:M2000").Select
     
        'somme heure 150%
        Range("N13").Select
        Selection.AutoFill Destination:=Range("N13:N2000"), Type:=xlFillDefault
        Range("N13:N2000").Select
    il faudrait supprimé les A4000 et LMN2000 et mettre a la place jusqu’à la dernière ligne de la colonne de A
    Sinon voilà le résulta que je veux, en imaginant bien-sure qu'il y "x" semaine

    a b c d e k l m n
    n°semaine ... ... ... heure n°semaine heure 100% heure 125% heure 150%
    49 8 49 35 3
    49 10.5 50 30
    49 10.5 51 35 4 4
    49 9
    50 15
    50 15
    51 11
    51 11
    51 11
    51 10

    Merci d'avance

  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,

    D'abord, mets ton code entre les balises de code (tu le surlignes et tu appuies sur le bouton "#").
    Pour L13 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim DerLigA As Long
    DerLigA = Cells(Rows.Count, 1).End(xlUp).Row
    Range("L13").Select
    ActiveCell.FormulaR1C1 = _
    "=IF(SUMIFS(R13C6:R" & DerLigA & "C6,R13C1:R" & DerLigA & "C1,RC[-1])>35,35,SUMIFS(R13C6:R" & _
        DerLigA & "C6,R13C1:R" & DerLigA & "C1,RC[-1]))"
    Fais de même pour les autres formules.
    Cordialement.

    Daniel

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

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Sinon voilà le résultat que je veux, en imaginant bien-sûr qu'il y "x" semaines

    a b c d e k l m n
    n°semaine ... ... ... heure n°semaine heure 100% heure 125% heure 150%
    49 8 49 35 3
    49 10 50 30
    49 10 51 35 4 4
    49 9
    50 15
    50 15
    51 11
    51 11
    51 11
    51 10
    Je pense que c'est un peu plus lisible

  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
    Est-ce que la formule donnée ne répond pas à ton problème ?
    Cordialement.

    Daniel

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

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Si parfaitement, sauf si j'ai un soucis vous serai toujours là pour m'aidé ?

    Merci beaucoup

    Cordialement

    Clément

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Dim DerLigA As Long
        DerLigA = Cells(Rows.Count, 1).End(xlUp).Row
     
        'condition heure 100%
        Range("L13").Select
        ActiveCell.FormulaR1C1 = _
        "=IF(SUMIFS(R13C6:R" & DerLigA & "C6,R13C1:R" & DerLigA & "C1,RC[-1])>35,35,SUMIFS(R13C6:R" & _
        DerLigA & "C6,R13C1:R" & DerLigA & "C1,RC[-1]))"
     
        'condition heure 125%
        Range("M13").Select
        ActiveCell.FormulaR1C1 = _
            "=IF(SUMIFS(R13C6:R" & DerLigA & "C6,R13C1:R" & DerLigA & "C1,RC[-2])>39,39-35,IF(SUMIFS(R13C6:R" & DerLigA & "C6,R13C1:R" & DerLigA & "C1,RC[-2])<35,""""))"
     
        'condition heure 150%
        Range("N13").Select
        ActiveCell.FormulaR1C1 = _
            "=IF(SUMIFS(R13C6:R" & DerLigA & "C6,R13C1:R" & DerLigA & "C1,RC[-3])>39,SUMIFS(R13C6:R" & DerLigA & "C6,R13C1:R" & DerLigA & "C1,RC[-3])-39,IF(SUMIFS(R13C6:R" & DerLigA & "C6,R13C1:R" & DerLigA & "C1,RC[-3])<35,""""))"
     
        'somme heure 100%
        Range("L13").Select
        Selection.AutoFill Destination:=Range("L13:L" & DerLigA & ""), Type:=xlFillDefault
        Range("L13:L" & DerLigA & "").Select
     
        'somme heure 125%
        Range("M13").Select
        Selection.AutoFill Destination:=Range("M13:M" & DerLigA & ""), Type:=xlFillDefault
        Range("M13:M" & DerLigA & "").Select
     
        'somme heure 150%
        Range("N13").Select
        Selection.AutoFill Destination:=Range("N13:N" & DerLigA & ""), Type:=xlFillDefault
        Range("N13:" & DerLigA & "").Select    ' j'ai un bogue ici. ce que j'ai fais au dessus est-ce bon ?

  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
    D'abord, mets ton code entre les balises de code (tu le surlignes et tu appuies sur le bouton "#").
    Bis. Essaie de comprendre

    Si parfaitement, sauf si j'ai un soucis vous serai toujours là pour m'aidé ?
    Si ce n'est pas moi, il y aura toujours quelqu'un d'autre.

    Range("N13:" & DerLigA & "").Select ........ j'ai un bogage ici. ce que j'ai fais au dessus est-ce bon ?
    Il manque une lettre de colonne. Si "DerLigA" vaut 1000, ta ligne correspond à :

    Range("N13:1000").Select

    Mets (pas besoin de : & "") :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("N13:N" & DerLigA).Select
    Cordialement.

    Daniel

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

  7. #7
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, ce que Daniel veut t'expliquer c'est ceci : Balise ton code Stp

Discussions similaires

  1. [XL-2010] Transposer somme.si.ens avec critère sur date et heures en vba ?
    Par novice06 dans le forum Excel
    Réponses: 25
    Dernier message: 30/04/2015, 13h10
  2. [XL-2007] Fonction somme.si.ens (VBA)
    Par ARTETA13 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/02/2013, 10h20
  3. [XL-2010] Somme si ens en vba
    Par tompom3108 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 31/05/2012, 18h01
  4. [XL-2007] comment convertir SOMME.SI.ENS() en macro
    Par patricecrabbe dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/12/2009, 18h52
  5. [XL-2003] Fonction Somme.si.ens en 2003
    Par jijie dans le forum Excel
    Réponses: 4
    Dernier message: 24/04/2009, 21h22

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