Somme d'une colonne variable

Bonjour à tous,

J’aimerais avoir un petit coup de pouce pour écrire la dernière ligne …

Une colonne fixe de nombres est donnée en D1 à D20.

Je recopie les j premiers de ces nombres en A14 .

A côté du dernier nombre recopié (et en colonne B), je voudrais la somme de ces j nombres.

Jusque là c’est OK, mais pas pour la somme.

J’ai fait plusieurs essais sans succès (3 dernières lignes en commentaires).

Je joins le petit fichier …

Merci pour votre aide et bonne journée.

Sylb

Bonjour,

Si j'ai bien compris, formule en B14:

=SOMME(INDIRECT("A14:A" & NBVAL($A:$A)+13))

ou

=SOMME($A:$A)

Cdlt

Merci beaucoup pour ta réponse Arturo83,

Ma question n'était sans doute pas limpide, mais c'est à l'aide de la macro que je cherche cette somme qui doit apparaître à côté de la dernière ligne de la liste recopiée, c'est-à-dire dans la cellule B & j, si le nombre j choisit est j.

Pour le cas on choisit l'input 11 dans la MsgBox, la somme devrait donc apparaître en B11.

Si on choisit l'input 5 dans la MsgBox, la somme devrait donc apparaître en B5, et ainsi de suite.

sylb

Ok, alors ceci en VBA:

    Range("B" & j + 13).FormulaR1C1 = "=SUM(R" & j & "C[-1]:R" & j + 13 & "C[-1])"

Cdlt

Bonjour à tous,

@sylb, voici une solution parmi d'autres si j'ai bien compris.

Option Explicit

Sub MacroSomme()

    With sys_Tests.Columns("A:C")
        .ClearContents
        .Borders(xlDiagonalDown).LineStyle = xlNone
        .Borders(xlDiagonalUp).LineStyle = xlNone
        .Borders(xlEdgeLeft).LineStyle = xlNone
        .Borders(xlEdgeTop).LineStyle = xlNone
        .Borders(xlEdgeBottom).LineStyle = xlNone
        .Borders(xlEdgeRight).LineStyle = xlNone
        .Borders(xlInsideVertical).LineStyle = xlNone
        .Borders(xlInsideHorizontal).LineStyle = xlNone
    End With

    Dim NumberLinesToCopy As Long
    NumberLinesToCopy = InputBox("Entrez le nombre de ligne à recopier :", 20, 14)

    Dim FirstRange As Excel.Range
    Set FirstRange = sys_Tests.Range("A14") ' //  A adapter !

    If Not NumberLinesToCopy = 0 Then
        sys_Tests.Range("D1:D" & NumberLinesToCopy).Copy Destination:=FirstRange
        Dim Formula As String
        Formula = "=SUM(A" & FirstRange.Row & ":A" & FirstRange.Row + NumberLinesToCopy - 1 & ")"
        FirstRange.Offset(NumberLinesToCopy - 1, 1).Value = Formula
    Else
        MsgBox "Vous devez entrer un nombre de lignes supérieur à zéro !"
    End If
End Sub

Bonjour,

juste en passant, si l'on doit retirer toutes les bordures des cellules alors :

    With sys_Tests.Columns("A:C")
        .ClearContents
        .Borders.LineStyle = xlNone
    End With

@ bientôt

LouReeD

Bonjour à tous,

Merci personnes qui m'ont répondus. Je suis désolé, mais j'ai omis de dire 2 choses:

1 - que pour la colonne A seules les cellules A14 à A34 peuvent être effacées avec leurs bordures et pas la colonne entière. Je m'en suis aperçu après avoir fait divers essais.

2 - d'autre part, j'ai une erreur à la compilation: le programme ne reconnait pas "Sys_Tests" que je n'ai jamais rencontré. C'est quoi ?

Pourrait-on encore m'aider pour ces 2 points.

Merci d'avance ... et bonne soirée.

sylb

Bonjour,

c'est le CodeName de la feuille de test du fichier de Jean_Paul :

image

L'onglet a pour nom : Feuille de tests, et cette feuille a pour nom "VBA" sys_Tests.
Pour corriger la suppression des bordures vous n'avez qu'à désigner la plage plutôt que les colonnes :

sys_Tests.Columns("A:C") remplacé par : sys_Tests.Columns("A14:A34")

@ bientôt

LouReeD

Bonjour à tous,

Voilà, LouReeD a tout dis. Il est vrai que j'aurais du être plus précis dans mes explications.

Bonsoir,
Jean-Paul bonsoir,

je suis loin d'avoir tout dit !
Bonne fin de soirée @ vous.

@ bientôt

LouReeD

Bonjour à tous,

Merci beaucoup pour toutes vos réponses, cela m'a beaucoup aidé et j'ai appris plusieurs procédures que je ne connaissais pas.

Désolé d'avoir tardé à vous répondre, il fallait que je teste tout cela.

Le problème est donc résolu.

Bonne soirée à tous.

sylb

Bonsoir,

Merci pour votre retour !

Juste une toute petite dernière chose :

@ bientôt

LouReeD

Rechercher des sujets similaires à "somme colonne variable"