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 :

calculer une plage de cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de Nicolas JACQUIN
    Homme Profil pro
    .
    Inscrit en
    Avril 2014
    Messages
    556
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : .
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2014
    Messages : 556
    Par défaut calculer une plage de cellule
    bonjour les amis

    j'ai créé un code comme j'ai pu, sachant que le nombre de ligne augmente à chaque saisie je rajoute un 1 en colonne F pour connaître le nombre de ligne à additionner,
    mais j'ai un bug à la dernière ligne de code pour additionner les cellule sélectionné.

    En vous remerciant pour votre aide

    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
    Sub calcul_plage()
     
    Dim derlign As Integer
     
    cpt = Application.CountA(Range("F:F"))
    d = cpt - 1
    derlign = Worksheets("Ndev").Range("F65536").End(xlUp).Row
     
     
    Range("O" & derlign - d & ":O" & derlign).Select
     
     
    Range("d18").Value = Sum(("O" & derlign - d & ":O" & derlign), , 2)
     
     
    End Sub
    Pièce jointe 249884

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonjour nicoxlsx, la forum
    j'ai pas compris ta requête, mais si tu cherche à sommer une plage variable il existe bq de solution dont :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub calculer()
    Dim plage As Range
    With Sheets("Ndev")
    Set plage = .Range("D2 : D" & .Range("D65536").End(xlUp).Row)
    For Each Cell In plage
    x = x + Cell.Value
     
    Next Cell
    .Range("A1") = x
    End With
    End Sub

  3. #3
    Membre émérite Avatar de Nicolas JACQUIN
    Homme Profil pro
    .
    Inscrit en
    Avril 2014
    Messages
    556
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : .
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2014
    Messages : 556
    Par défaut
    Merci de votre réponse,
    je comprend un peu près votre code, mais il y a une incompatibilité de type

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    je suis débutant aussi
    mais ce-ci fonctionne chez moi !!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub calculer()
    Dim plage As Range
    With Sheets("Ndev")
     Set plage = .Range("D2 : D" & .Range("D65536").End(xlUp).Row)
    For Each Cell In plage
    x = x + Cell.Value
     
    Next
    .Range("A1") = x
    End With
    End Sub

  5. #5
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour le fil, bonjour le forum,

    Il semblerait qu'il manque un Range dans ta dernière ligne et qu'il y ait des arguments en trop :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("d18").Value = Sum(Range("O" & derlign - d & ":O" & derlign))
    Que j'aurais plutôt écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("D18").Value = Application.WorksheetFunction.Sum(Range(Cells(derlign - d, "O"), Cells(derlign, "O")))

  6. #6
    Membre émérite Avatar de Nicolas JACQUIN
    Homme Profil pro
    .
    Inscrit en
    Avril 2014
    Messages
    556
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : .
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2014
    Messages : 556
    Par défaut
    merci beaucoup ça marche mais je n'y comprend rien avec les cells
    y aurait il pas un moyen de facilité mon raisonnement sans prendre en compte la colonne f chaque foit que je rajoute une ligne

    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
    Sub calcul_plage()
     
    Dim derlign As Integer
     
    cpt = Application.CountA(Range("F:F")) ' compte le nombre de ligne ajoutées
    d = cpt - 1
    derlign = Worksheets("Ndev").Range("F65536").End(xlUp).Row 'trouve la dernière ligne ajoutée
     
     
    Range("O" & derlign - d & ":O" & derlign).Select 'me sélectionne la plage de cellule à calculer
     
    Range("D18").Value = Application.WorksheetFunction.Sum(Range(Cells(derlign - d, "O"), Cells(derlign, "O"))) 'résultat
     
     
    End Sub
    merci

  7. #7
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour le fil, le forum,

    Comme je n'ai pas compris où tu voulais en venir avec ton code et une capture d'écran qui n'affiche pas tout, difficile de te venir en aide...

  8. #8
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonjour,

    Sur la capture, en colonnes F je ne vois rien, si je me fie à la colonne O je vois 2 valeurs à additionner.
    La somme à faire commence en O19. Si j'ai envie de prendre en compte la dernière ligne, je peux considérer la colonne M "Net à payer" moins 6 lignes,
    Comme cela on tombera tjs dans la plage voulu à structure équivalente
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DerL = Range("M" & Rows.Count).End(XlUp).Row - 6
    Range("O" & DerL -4").Value = Application.Sum(Range("O19:O" & DerL)) ' - 4 lignes pour arriver à TOTAL HT
    si c'est ce que tu cherchais … ?? en 2 lignes c'est fait (à rajouter les déclarations de variables)

    EDIT : petite modif dans le code
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  9. #9
    Membre émérite Avatar de Nicolas JACQUIN
    Homme Profil pro
    .
    Inscrit en
    Avril 2014
    Messages
    556
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : .
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2014
    Messages : 556
    Par défaut
    ok j'ai compris merci ça marche, encore merci

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/04/2012, 14h31
  2. calculer zoom idéal d'une plage de cellules pour l'imprimer
    Par homerlehamster dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/07/2011, 13h47
  3. [XL-2003] Calcul sur une plage de cellules
    Par kokoVBA dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/08/2009, 10h35
  4. [VBA-E] Image d'une plage de cellule
    Par flogreg dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/07/2004, 12h30
  5. [VBA-E] [Excel] Protection d'une plage de cellules
    Par fikou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/11/2002, 11h28

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