Bonjour le forum
j'ai une code qui ,en entrant une date, calcule le nombre de pièces usinées et me renseigne si j'ai atteint les 1 millions puis me calcule le nombre des pièces défectueuses depuis un autre classeur
mais là je veux qu'il calcule ce nombre de pièces défectueuses du même classeur, ces dernières sont renseignées dans la plage T9:T20 de chaque feuille
alors ça sera de remplacer le classeur " Rapport journalier" par le classeur contenant le code nommé "production" et de modifier la formule de caclul
cptR = cptR + WorksheetFunction.Sum(wr.Sheets(f.Name).Range("D26:P27")) _
+ WorksheetFunction.Sum(wr.Sheets(f.Name).Range("S42:S47"))
par la somme des nombres renseignés dans la plage T9:T20 de chaque feuille du même classeur "production"
voici le code complet
Private Sub UserForm_Click()
Option Explicit
Dim wr As Workbook, fp As Worksheet, fr As Worksheet, f As Worksheet
Dim dteD As Date, dte$, nb&, cptT&, cptR&, nf&
Private Sub CommandButton1_Click() 'Bouton Calculer
dteD = TextBox1
nb = TextBox2
cptT = 0
cptR = 0
dte = ""
Label5.Caption = ""
Label5.Caption = ""
Label6.Caption = ""
'For Each f In Worksheets
For nf = Sheets.Count To 1 Step -1
Set f = Sheets(nf)
On Error Resume Next
If IsDate(f.Name) Then
If DateValue(TextBox1) <= DateValue(f.Name) Then
cptT = cptT + WorksheetFunction.Sum(f.Range("U9:U" & f.Range("U" & Rows.Count).End(xlUp).Row))
On Error Resume Next
cptR = cptR + WorksheetFunction.Sum(wr.Sheets(f.Name).Range("D26:P27")) _
+ WorksheetFunction.Sum(wr.Sheets(f.Name).Range("S42:S47"))
Err.Number = 0
If cptT > TextBox2 Then
dte = f.Name
Exit For
End If
End If
End If
Next nf
If dte = "" Then
Label5.Caption = "Le nombre de pièces usinées depuis la date indiquée n'a pas encore été atteint " & _
"et le nombre de pièces non conformes est aujourd'hui de : "
Else
Label5.Caption = "Le nombre de pièces usinées depuis la date indiquée a été atteint le " & _
dte & " et le nombre de pièces non conformes y a été de : "
End If
TextBox2 = Format(nb, "### ### ##0")
Label6.Caption = cptR
End Sub
Private Sub CommandButton2_Click() 'Bouton Fermer
Unload Me
End Sub
Private Sub UserForm_initialize()
On Error Resume Next
Set wr = Workbooks("Rapport journalier.xlsm")
If Err.Number <> 0 Then
MsgBox "Le fichier ''Rapport journalier'' doit être ouvert.", 16
End
End If
TextBox1 = Format(Sheets(Worksheets.Count).Name, "dd/mm/yyyy")
TextBox2 = Format(1000000, "# ### ##0")
End Sub
End Sub
merci de m'aider pour faire ces modifications
cordialement