[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^^

2 réponses

  1. melanie1324 Messages postés 1561 Statut Membre 156
     
    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
  2. ahmtaro
     
    Niquel merci beaucoup! je butais bêtement dessus depuis pas mal de temps!
    merci encore et bonne journée à toi^^
    0