Macro calcul en fonction de la dernière ligne

  • Initiateur de la discussion Initiateur de la discussion Mariusweber
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

Mariusweber

Guest
Bonjour,

Je cherche à obtenir des macros qui effectuent un calcul en fonction de la dernière ligne d’un fichier (l’index de cette ligne pouvant changer en fonction du projet étudié). Je vous laisse observer le fichier en pièce jointe si vous avez du temps à me consacrer pour m’aider. 🙂

Merci!

Marius
 

Pièces jointes

Bonjour

Si j'ai bien compris
VB:
Sub act_52_v2()
Dim DernLigne&, Lignecalcul$
DernLigne = Range("A" & Rows.Count).End(xlUp).Row
Lignecalcul = DernLigne - 2
Range("D" & DernLigne) = "=((SUBTOTAL(109,R6C:R" & Lignecalcul & "C))*1.06)/2"
MsgBox "Le total des heures a été recalculé à l'activité 52", vbInformation, "Résultats"
End Sub

Observations:
Pourquoi ne pas simplement utiliser les formules?
Normalement, elles s'adapteront même si tu insères des lignes.
Exemple
en D17: =SOMME($D$9:D16)
en D23: =$D17+$D21
et en D25, ta formule actuelle : =(((SOUS.TOTAL(109;D$6:D$22))*1,06)/1,06)/2
Ensuite si tu insères des lignes entre D9 et D16, les formules s'adaptent automatiquement, non ?
(Sans devoir passer pas VBA)
 
Bonjour,
Le calcul s'effectue sur une feuille de calcul crée via une macro et la méthode avec formule renvoie un bug. J'ai réussi à trouver par moi meme une solution simple en vba 🙂 . Merci de votre réponse!

Marius
 
Bonsoir

Bonjour,
J'ai réussi à trouver par moi meme une solution simple en vba 🙂 . Merci de votre réponse!

Marius
Tu as trouvé une solution tout seul, c'est bien
La publier, pour la partager avec la communauté des XLdiens, c'est mieux 😉
(et accessoirement c'est aussi plus courtois)

Apparemment, le nouveau membre cru 2019 prends les mauvaises habitudes du cru 2018
😉
 
Bonjour,

Voila la solution :

Sub act_52_v2()

xx = Range("D" & Rows.Count).End(xlUp).Row
Range("D" & xx).FormulaR1C1 = "=(SUBTOTAL(109,R6C:R" & xx - 3 & "C))*(55/52)"
MsgBox ("Le total des heures a été recalculé à l'activité 52")

End Sub
Sub act_55_v2()

xx = Range("D" & Rows.Count).End(xlUp).Row
Range("D" & xx).FormulaR1C1 = "=((SUBTOTAL(109,R6C:R" & xx - 3 & "C))*(55/52))/(55/52)"
MsgBox ("Le total des heures a été recalculé à l'activité 55")

End Sub

Bien cdlt,

Marius
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour