[excel vba] problème de somme

Résolu
ahmtaro -  
 ahmtaro -
Bonjour,

J'ai un petit soucis sur vba : je souhaite effectuer une somme avec des références relatives, en effet je compte le nombre de cellules non vides de la colonne puis arrivé en bas de la plage de cellule, je veux utiliser le nombre trouvé pour faire une somme juste du bon nombre de cellules.
Bon je sais c'est pas clair mais voila un tout petit bout de mon code :

Private Sub Calcul_Click()
    Dim nbligne As Integer
    nbligne = 0

    Selection.End(xlUp).Select
    Do While Not (IsEmpty(ActiveCell))
        ActiveCell.Offset(1, 0).Select
    nbligne = nbligne + 1
    Loop
            If Me.Somme.Value = True Then
                ActiveCell.FormulaR1C1 = "=SUM(R[-nbligne]C:R[-1]C)"
             ElseIf Me.Produit.Value = True Then
                ActiveCell.FormulaR1C1 = "=PRODUCT(R[-nbligne]C:R[-1]C)"
            ElseIf Me.Moyenne.Value = True Then
                ActiveCell.FormulaR1C1 = "=average(R[-nbligne]C:R[-1]C)"
             ElseIf Me.Compte.Value = True Then
                     ActiveCell.FormulaR1C1 = "=SUBTOTAL(2,R[-nbligne]C:R[-1]C)"
            ElseIf Me.aucune.Value = True Then
            Exit Sub
            End If
end sub

Et la PAF : Erreur 1004 : Erreur définie par l'application ou par l'objet.
Bien entendu ca ne marche pas pour les autres formules^^

En gros VBA descend petit à petit tout en bas en comptant les cellules non vides (il n'y a obligatoirement plus de cellules vides en fait^^),jusque la ca marche. Mais comment integrer cet Integer dans ma formule?

Merci beaucoup de prendre le temps de réfléchir à ce problème tout con j'en suis sur^^

PS : je précise que je découvre vba en utilisant l'enregistreur de macro + les forums^^

A voir également:

2 réponses

melanie1324 Messages postés 1561 Statut Membre 155
 
Bonjour,

Private Sub Calcul_Click()
Dim nbligne As Integer
nbligne = 0

Selection.End(xlUp).Select
Do While Not (IsEmpty(ActiveCell))
ActiveCell.Offset(1, 0).Select
nbligne = nbligne + 1
Loop
If Me.Somme.Value = True Then
ActiveCell.FormulaR1C1 = "=SUM(R[-" & nbligne &"]C:R[-1]C)"
ElseIf Me.Produit.Value = True Then
ActiveCell.FormulaR1C1 = "=PRODUCT(R[-" & nbligne& "]C:R[-1]C)"
ElseIf Me.Moyenne.Value = True Then
ActiveCell.FormulaR1C1 = "=average(R[-" & nbligne&"]C:R[-1]C)"
ElseIf Me.Compte.Value = True Then
ActiveCell.FormulaR1C1 = "=SUBTOTAL(2,R[-" & nbligne& "]C:R[-1]C)"
ElseIf Me.aucune.Value = True Then
Exit Sub
End If
End Sub
1
ahmtaro
 
Niquel merci beaucoup! je butais bêtement dessus depuis pas mal de temps!
merci encore et bonne journée à toi^^
0