XL 2010 Calcul de la somme d'une colonne E d'un tableau dont la dernière ligne est variable

Manu Manu

XLDnaute Nouveau
Bonjour
Je cherche a obtenir le TOTAL d'un tableau dont la première ligne de données est A18 et dernière ligne variable avec ce code a partir d'un bouton de commande dans un formulaire.

Private Sub CmdTotalOv_Click()
Sheets("Ovirement").Activate
Dim LastRow As Long
LastRow = Range("E1048576").End(xlUp).Row
LastRow = LastRow + 2
Range("D" & LastRow) = "TOTAL"
Range("D" & LastRow).HorizontalAlignment = xlRight
Range("E" & LastRow)= Application.WorksheetFunction.Sum(Range("E17:E" & LastRow))
End Sub
L'ennui c'est qu’après avoir applique ce code le resultat de la cellule = toujours 0
Prière de me donner une astuce
Merci d'avance
 
Solution
Re,
Faire ALT + F8 et lancer SupCar160
La macro a été optimisée pour être rapide :
VB:
Sub SupCar160()
For C = 1 To 1000
    If Cells(C, 5) <> "" Then
        Cells(C, 5) = Replace(Cells(C, 5), Chr(160), "")
    End If
Next C
End Sub
( Modifier le 1000 si la liste est plus grande )

jmfmarques

XLDnaute Accro
Bonjour à tous
On ne fait pas les frais d'une boucle alors qu'existe la méthode Range.Replace ...
et on ne se préoccupe pas du nombre de lignes à traiter, dès lors qu'il suffit de supprimer un caractère indésirable au sein de chaînes dans une plage de constantes
--->>
VB:
Range("E:E").SpecialCells(xlCellTypeConstants).Replace what:=Chr(160), replacement:=""
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous,
NGUEDIA EMMANUEL a du mal à intégrer une simple macro.
J'ai opté pour une structure simple de façon à ce qu'il puisse se l'accaparer et la modifier.
Le but est que le demandeur, demain, puisse la reproduire.

J'ai suivi les préceptes de Saint David psaume 3.3 :
Les contributeurs auront une approche pédagogique afin d’expliquer leur démarche en se mettant au niveau du demandeur
 

jmfmarques

XLDnaute Accro
J'ai opté pour une structure simple de façon à ce qu'il puisse se l'accaparer et la modifier.
Amen, si tu penses vraiment que la création et l'utilisation d'une boucle est plus à la portée de compréhension que ne l'est une méthode simple et parfaitement exposée dans l'aide VBA
J'évite en général personnellement de me substituer à l'autre pour "décider" à sa place de ce qui serait plus à la portée de sa compréhension.;)
Amitiés
 

Manu Manu

XLDnaute Nouveau
Bonsoir Syvanu,

Finalement il a fallu faire des appels de procédures sur ta célèbre macro a deux niveaux pour trouver la solution.
Call SupCar160
Range("E" & LastRow).Value = Application.WorksheetFunction.Sum(Sheets("Ovirement").Range("E18:E" _& LastRow))
Call SupCar160
Range("E" & LastRow).Value = TB_TotalOrdre.Value
Heureux l'homme qui ne s'assied pas au banc des moqueurs. Que Dieu te benisse et te garantisse de long jours.

Grace au psaume de David et a l'esprit saint tu m'as permis de résoudre un problème. Les problèmes tout le monde en a. Ce qui est basique pour vous est un énigme pour d'autres et ce qui semble être un secret de polichinelle pour vous reste basique pour quelqu'un d'autre.

Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 330
Messages
2 087 351
Membres
103 526
dernier inscrit
HEC