Voila j'ai modifier une macro qui doit pouvoir compter et apres etablir un journal de bord qui inscrit des infos a chaque fois que je depasser 3000 tonnes
et je voudrais recuper la derniere ligne du journal de bords et y faire apparaitre sur un message box
voila ma macro
et mon probleme viens que je n'arrive pas a lire la derniere ligne et la faire apparaitre dans une message box
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 Sub compter() Dim totlig As Long, poid As Double, i As Long With Sheets("Saisie") ' Travaille sur la feuille Saisie totlig = .Range("Q65536").End(xlUp).Row ' Recupere le nombre de ligne poid = 0# ' Initialise le poid calculé Sheets("Rapport").Range("A2:A65500").ClearContents Sheets("Rapport").Range("B2:C65500").ClearContents Sheets("Rapport").Range("C2:C65500").ClearContents For i = 5 To totlig ' Demarre la boucle à la igne 5, la 1,2,3,4 sont des titres If IsNumeric(Range("Q" & i).Value) Then poid = poid + (.Range("Q" & i).Value / 1000) ' additione la valeur poids ramenée en tonnes End If If poid >= 3000 Then ' test avec la prochaine valeur si ca depasse les 3000 tonnes Sheets("Rapport").Range("A" & Sheets("Rapport").Range("A65536").End(xlUp).Row + 1) = poid & " Kg" & " A la ligne " & i Sheets("Rapport").Range("B" & Sheets("Rapport").Range("B65536").End(xlUp).Row + 1) = Range("M" & i) Sheets("Rapport").Range("C" & Sheets("Rapport").Range("C65536").End(xlUp).Row + 1) = Range("J" & i) Sheets ("Rapport") DerniereLigne = Range(Cel).CurrentRegion.End(xlDown).Row MsgBox ("depassement a la ligne: DerniereLigne") .Range("Q" & i).Interior.ColorIndex = 3 ' je colorie en rouge la cellule poid = 0# ' remise à zero des calculs Else .Range("Q" & i).Interior.ColorIndex = xlNone ' sinon j'enleve la couleur End If Next i End With End Sub
Ps:j'ai pris la méthode de lire la derniere ligne de ouskel dans la partie contribution
Partager