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 )

sylvanu

XLDnaute Barbatruc
Supporter XLD
Ce fameux &nbsp issu probablement de page HTML.
Si en F18 vous faites =E18+1 on obtient #Valeur ce qui prouve que ce nombre en E18 est une chaine de caractères.
Trois solutions possibles :
- En F18 mettre =CNUM(GAUCHE(E18;3)&DROITE(E18;3))
- Ou selectionner le "caractères" entre 200 et 000 de E18. Selectionner la colonne E faite Remplacer puis copier cette valeur, remplacer par rien.
- Ou encore Lancer cette macro qui se charge du remplacement :
VB:
Sub SupCar160()
    Columns("E:E").Select
    Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Range("E1").Select
End Sub
 

TooFatBoy

XLDnaute Barbatruc
Quelle feuille n'est pas la bonne ???
Tout ce que Sylvanu explique correspond exactement au problème que nous avons constaté dans la feuille "Ovirement" du premier fichier.

Si les données (nominatives, banquaires et autres) ne sont pas bidon, il faut supprimer le premier fichier posté.
C'est pour une question de confidentialité et aussi pour respecter la charte du forum. ;)
 

Manu Manu

XLDnaute Nouveau
Je comprends
please a quel niveau doit-on introduire la fameuse macro du grand Sylvanu
Sub SupCar160()
Columns("E:E").Select
Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("E1").Select
End Sub

Est ce dans le code du bouton calcul ou dans le module de la feuille
Merci
 

Manu Manu

XLDnaute Nouveau
Bonjour je n'arrvive toujours pas
Pouvez vous essayer de pecher pour moi pour cette premiere fois?
Merci
Ce fameux &nbsp issu probablement de page HTML.
Si en F18 vous faites =E18+1 on obtient #Valeur ce qui prouve que ce nombre en E18 est une chaine de caractères.
Trois solutions possibles :
- En F18 mettre =CNUM(GAUCHE(E18;3)&DROITE(E18;3))
- Ou selectionner le "caractères" entre 200 et 000 de E18. Selectionner la colonne E faite Remplacer puis copier cette valeur, remplacer par rien.
- Ou encore Lancer cette macro qui se charge du remplacement :
VB:
Sub SupCar160()
    Columns("E:E").Select
    Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Range("E1").Select
End Sub
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
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 )
 

Pièces jointes

  • Sommetest - Copie (V2).xlsm
    66.1 KB · Affichages: 8

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 206
Messages
2 086 207
Membres
103 157
dernier inscrit
youma