Fonction somme sur VBA

Bonjour,

Je souhaite utiliser la fonction SOMME sur vba, après des recherches, j'ai trouvé la formule mais je n'arrive pas à l'adapter à mon code.

Je souhaite faire la somme des colonne D et E puis faire total colonne E - (moins) total colonne D.

Voilà mon code :

Private Sub UserForm_Initialize()
Me.Label1.Caption = Sum("E4:E1048576") - ("D4:D1048576")
End Sub

avez-vous une idée?

Bonjour Ronibo,

je te propose ce code VBA :

Private Sub UserForm_Initialize()
  Me.Label1.Caption = Str$(Sum(Columns("E")) - Sum(Columns("D")))
End Sub

dhany

Bonjour,

Merci pour ta réponse et ta rapidité

j'ai une erreur sub ou fonction non définie

ca te parle?

alors essaye ceci :

Private Sub UserForm_Initialize()
  Dim n&: n = Cells(Rows.Count, 4).End(xlUp).Row
  Me.Label1.Caption = Str$(Sum(Range("E4:E" & n)) - Sum(Range("D4:D" & n)))
End Sub

si ça marche toujours pas, envoie ton fichier (pour vérif des données).

dhany

re,

je viens de mettre à jour le code, toujours pareil….

Voici mon fichier

72ex.xlsm (18.85 Ko)

désolé, c'est ma faute ; j'ai fait une erreur : c'est pas Sum() mais Application.Sum() ; d'autre part, mon Str$() est inutile car VBA convertit automatiquement le nombre en texte ; un label (Caption) est du texte ; voici ton fichier modifié :

73ex.xlsm (19.20 Ko)

dhany

petite amélioration, car avec séparateur de milliers :

73ex.xlsm (19.52 Ko)

dhany

je pense que tu as joint le mauvais fichier

J'ai réussi à modifier le code, regarde si je suis un bon éléve

Private Sub UserForm_Initialize()

Me.Label1.Caption = (Application.Sum(Columns("E")) - Application.Sum(Columns("D")))

End Sub

Merci encore

je viens de tester ton dernier fichier, un débogage, regarde ça :

ca plante ici :

: n = Cells(Rows.Count, 1).End(xlUp).Row

sans titre

??? non, j'avais joint le bon fichier ; résultat :

image

avec ce code VBA :

Option Explicit

Private Sub UserForm_Initialize()
  Dim n&: n = Cells(Rows.Count, 1).End(xlUp).Row
  Me.Label1.Caption = Format(Application.Sum(Range("E4:E" & n)) _
    - Application.Sum(Range("D4:D" & n)), "# ##0.00")
End Sub

et j'ai pas ton erreur de débogage !

dhany

Je me demande si c’est pas la variable N

si tu télécharges de nouveau mon dernier fichier, ou si tu utilises le code VBA indiqué dans mon post précédent, ça devrait aller ; sinon, envoie ton fichier actuel : si ton erreur se produit, je la corrigerai.

dhany

petite amélioration, car avec séparateur de milliers :

ex.xlsm

dhany

Re

je viens de nouveau tester ce fichier, toujours pareil, ça plante ici : : n = Cells(Rows.Count, 1).End(xlUp).Row

Ma valeur n = 0

J'ai trouvé l'erreur ça plante à l'ouverture du fichier, étant donné qu'il n'y a pas de sélection de cellule ça mets 0

alors essaye ce nouveau fichier :

10ex.xlsm (19.75 Ko)
Option Explicit

Private Sub UserForm_Initialize()
  Dim n&: Cells(1).Select
  n = Cells(Rows.Count, 1).End(xlUp).Row: If n < 4 Then Exit Sub
  Me.Label1.Caption = Format(Application.Sum(Range("E4:E" & n)) _
    - Application.Sum(Range("D4:D" & n)), "# ##0.00")
End Sub

dhany

bonjour a tous

ca fonctionne parfaitement merci beaucoup

Bonjour Ronibo,

merci pour ton retour, et pour avoir passé le sujet en résolu !

bonne continuation !

dhany

Rechercher des sujets similaires à "fonction somme vba"