Calcul nombre de ligne vba [Résolu/Fermé]

Signaler
-
 Fitz_Chev -
Bonjour à tous,

Pour les besoins d'un travail, j'ai besoin de mettre le nombre de ligne de mon tableau en fin de tableau, j'ai déjà réussi à rajouter mon TOTAL sous ma colonne A mon montant sur ma colonne M et N, mais j'ai besoin de mettre en colonne 2 et 3 le nombre de ligne contenu dans mon tableau. Bien entendu, ce code faisant partie d'une macro plus grande, j'aimerais connaitre le code VBA pour le calcul de mes lignes. En vous remerciant d'avance.



2 réponses

Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
38
En fait, si vous voulez que la macro puisse s'adapter à votre tableau même si celui-ci change, j'aurais personnellement commencé par intégrer une variable donnant la dernière ligne non vide du tableau :

Derniere_Ligne = Cells(Application.Rows.Count, 1).End(xlUp).Row 'A supposer que la colonne 1 soit la plus remplie (le plus loin)


Ensuite, pour les sommes que vous avez déjà faite, je vous invite à vous resservir de ce code, par exemple la somme en A :

Cells(DL + 2, 1).Value = Application.WorksheetFunction.Sum(Range(Cells(1, 1), Cells(DL, 1))


Ensuite, pour avoir le nombre de ligne et bien vous faites par exemple pour la colonne B :

Cells(DL + 2, 2).Value = Cells(Application.Rows.Count, 2).End(xlUp).Row


Ou pour la colonne C :

Range(DL + 2, 3).Value = Cells(Application.Rows.Count, 3).End(xlUp).Row


Cordialement.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 57824 internautes nous ont dit merci ce mois-ci

Messages postés
16173
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
14 juillet 2020
2 994
bonjour,
s'il n'y a rien en dessous du tableau
par exemple début en A2 avec ent^te en A1
nbre = Application.CountA(Columns("A")) -1
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
38
Effectivement c'est encore plus simple. Bien vu.
merci pour vos réponses rapide, par contre je ne comprends pas, je suis très néophyte sur le VBA mais mon nouvel employeur m'a demandé de lui optimiser son outils, donc j'essaye. Pour en revenir à mon problème, je comprends ce que vous voulez dire mais je ne vois pas comment l'intégrer sur mon tableau, j'aimerais que mon total arrive sur la ligne au même niveau que mon total et mes deux sommes. Je vous joint mon bout de code concernant cette partie.

Sub Total ()
Dim derlign As Long
derlign = IIf([A5] = "", 1, [A65536].End(xlUp).Row + 1)
Range("A" & derlign) = "Total"
Dim derlig As Long
derlig = Range("M65536").End(xlUp).Row
Cells(derlig + 1, 13) = Application.Sum(Range("M2:M" & derlig))
derlig = Range("N65536").End(xlUp).Row
Cells(derlig + 1, 14) = Application.Sum(Range("N2:N" & derlig))
End Sub
Messages postés
16173
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
14 juillet 2020
2 994 > Fitz_Chev
bonjour,
si j'ai compris ta demande mais...
Dim Derlig As Integer
Derlig = Columns("M:N").Find(what:="*", searchdirection:=xlPrevious).Row
With Application
Cells(Derlig, "M") = .Sum(Range("M2:M" & Derlig))
Cells(Derlig, "N") = .Sum(Range("N2:N" & Derlig))
End With
Cells(Derlig - 1, "A") = "TOTAL"
Cells(Derlig, "A") = Cells(Derlig, "M") + Cells(Derlig, "N")
C'est bon j'ai réussi à faire marcher ma macro, voilà mon code en entier pour info. Merci beaucoup
Dim derlign As Long
derlign = IIf([A5] = "", 1, [A65536].End(xlUp).Row + 1)
Range("A" & derlign) = "Total"
Range("F" & derlign) = "Tous les montants sont exprimés en EUR"
Dim derlig As Long
derlig = Range("M65536").End(xlUp).Row
Cells(derlig + 1, 13) = Application.Sum(Range("M2:M" & derlig))
derlig = Range("N65536").End(xlUp).Row
Cells(derlig + 1, 14) = Application.Sum(Range("N2:N" & derlig))
Cells(derlig + 1, "b") = Application.CountA(Columns("A")) - 3
Cells(derlig + 1, "C") = Application.CountA(Columns("A")) - 3