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 :

problème de somme d'une colonne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 145
    Par défaut problème de somme d'une colonne
    Salut,

    Voilà un autre soucis : je pensais que se serait plus simple que cela mais finalement....

    Le soucis c'est que je veux faire la somme de ma colonne "D" dans ma woorksheet("impression") sauf que là je rame et je rame.

    J'aimerais que se résultat se trouve en dessous de mon tableau de ma woorksheet("impression").

    Le fonctionnement en gors de mon code c'est: je vais selectionner les valeurs sélectionné dans woorksheet("base") pour les ammener dans la woorksheet("impression") ensuite je prend la colonne D qui represente des coût et j'en fais la somme. Voili voilou


    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
    LaDerniere = Worksheets("Base").Cells(6556, 2).End(xlUp).Row
    For i = 2 To LaDerniere
     
    If ComboBox2.Value = "" And ComboBox3.Value = "" And ComboBox4.Value = "" Then
    K = 4
        If Worksheets("Base").Cells(i, 1) = ComboBox1.Value Then
        Worksheets("Base").Range("B" & i & ":F" & i & "").Copy
        Worksheets("impression").Range("B" & K & "").Select
        ActiveSheet.Paste
        Worksheets("impression").Range("A2") = "Section : " & ComboBox1.Value
        Range("A2").Select
        With Selection.Interior
            .ColorIndex = 40
            .Pattern = xlSolid
        End With
        Worksheets("Base").Range("B1:D1").Copy
        Worksheets("impression").Range("B3:D3").Select
        ActiveSheet.Paste
     
     
        K = K + 1
        End If

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    dim lg as long
    ........
    K = K + 1
        End If
    with sheets("impression")
    lg = .range("D" & .rows.count).end(xlup).row
    .range("D" & lg+1) = application.WorksheetFunction.sum(.range("D2:d" & lg))  'd2 si la somme commence à D2
    end with
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 145
    Par défaut
    Ca fonctionne pas. En gros le résultat ça donne dans la colonne D en partant de D2 des chiffres à la suite 0,5,10,20,40,80,160,320... jusqu'à la colonne D26.

    En sachant que D26 est la dernière ligne remplie de ma feuille "Base" (celle avec mes données)?????



    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
    Private Sub CommandButton1_click()
     
    If Not IsExist("impression") Then
    Sheets.Add: ActiveSheet.Name = "impression"
    Else
    Worksheets("impression").Delete
    Sheets.Add: ActiveSheet.Name = "impression"
    End If
     
    LaDerniere = Worksheets("Base").Cells(6556, 2).End(xlUp).Row
    For i = 2 To LaDerniere
     
    If ComboBox2.Value = "" And ComboBox3.Value = "" And ComboBox4.Value = "" Then
    K = 4
        If Worksheets("Base").Cells(i, 1) = ComboBox1.Value Then
        Worksheets("Base").Range("B" & i & ":F" & i & "").Copy
        Worksheets("impression").Range("B" & K & "").Select
        ActiveSheet.Paste
        Worksheets("impression").Range("A2") = "Section : " & ComboBox1.Value
        Range("A2").Select
        With Selection.Interior
            .ColorIndex = 40
            .Pattern = xlSolid
        End With
        Worksheets("Base").Range("B1:D1").Copy
        Worksheets("impression").Range("B3:D3").Select
        ActiveSheet.Paste
        K = K + 1
        End If
        With Sheets("impression")
        lg = .Range("D" & .Rows.Count).End(xlUp).Row
        .Range("D" & lg + 1) = Application.WorksheetFunction.Sum(.Range("D4:D" & lg)) 'd2 si la somme commence à D2
        End With

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Je ne sais pas si je comprends mais ce que j'ai proposé se met après la boucle donc après le next que je ne vois pas dans ton code
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 145
    Par défaut
    Ha mercredi, j'ai pas le code sous la main, mais en gros j'ai

    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
    LaDerniere = Worksheets ("Base").cells(6556, 2).End(xlUp).Row
    For i= 2 to LaDerniere
     
    'en gros premier Si ma combobox1 est remplie alors
    If......
    K=4
         'La Si ma valeur sélectionné correspond avec une valeur de mon tableau de
         'base de donnée, je copie mon tableau "Base", avec la valeur que j'ai 
         'sélectionné dans ma liste déroulante, dans mon autre feuil "imprimer".
         If....
         K = K + 1
         End If
    ElseIF
     
    'Deuxième Si ma combobox2 est remplie alors
    If.....
    ....
         End If
    ElseIF
     
    'troisième Si ma combobox3 est remplie alors
    If.....
    ....
         End If
    ElseIF
    End If
    Next If
     
    UserForm1.Hide
    End Sub
    Je sais pas si ça va t'aider à maider

  6. #6
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    re,
    j'essaye de comprendre
    tu as bien dit la somme de D dans feuile"impression" alors réfléchis sur ces commentaires :
    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
    ...................
    LaDerniere = Worksheets("Base").Cells(6556, 2).End(xlUp).Row
    For i = 2 To LaDerniere
       If ComboBox2.Value = "" And ComboBox3.Value = "" And ComboBox4.Value = "" Then
          K = 4
          If Worksheets("Base").Cells(i, 1) = ComboBox1.Value Then
             Worksheets("Base").Range("B" & i & ":F" & i & "").Copy
             Worksheets("impression").Range("B" & K & "").Select
             ActiveSheet.Paste
             Worksheets("impression").Range("A2") = "Section : " & ComboBox1.Value
             Range("A2").Select
             With Selection.Interior
                .ColorIndex = 40
                .Pattern = xlSolid
             End With
             Worksheets("Base").Range("B1:D1").Copy
             Worksheets("impression").Range("B3:D3").Select
             ActiveSheet.Paste
             K = K + 1
          End If
       'a partir d'ici il manque du code, en l'occurence un end if
       'et surtout une fin de boucle
       'je pense donc qu'il faut ajouter mes lignes de code après le next i
    Next i
    With Sheets("impression")
       lg = .Range("D" & .Rows.Count).End(xlUp).Row
       .Range("D" & lg + 1) = Application.WorksheetFunction.Sum(.Range("D3:d" & lg)) 'd3 si la somme commence à D3
    End With
    ...................
    je ne suis pas devin, mais il ne faut pas mettre la demande de total dans dans la boucle

    Bonne soirée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

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

Discussions similaires

  1. Problème Somme d'une colonne dataTable
    Par ahmedpa dans le forum JSF
    Réponses: 0
    Dernier message: 09/05/2013, 01h10
  2. faire la somme d'une colonne d'une listbox
    Par Namson dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 25/04/2007, 23h34
  3. Réponses: 10
    Dernier message: 03/10/2006, 20h19
  4. comment calculer la somme d'une colonne d'un dbgrid
    Par kirty dans le forum Bases de données
    Réponses: 4
    Dernier message: 24/07/2006, 20h55

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