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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
|
Sub pour_mettre_une_liste_comme_source_de_donnees_d_un_TCD()
'Cette macro est à exécuter une seule fois au début pour paramètrer le TCD selon les données du tableau que l'on a paramètré comme une liste
Sheets("TCD").PivotTables(1).SourceData = "donnees!" & _
Sheets("donnees").ListObjects("Liste1").Range.Address(, , xlR1C1)
End Sub
Sub deleteOldItemsWB()
'Cette macro permet de purger le TCD sous excel 2003 car le système garde en mémoire les requêtes
'gets rid of unused items in pivotTable
'Debra Dalgleish - based on MSKB (202232)
Dim ws As Worksheet
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
Dim i As Integer
On Error Resume Next
For Each ws In ActiveWorkbook.Worksheets
For Each pt In ws.PivotTables
pt.RefreshTable
For Each pf In pt.PivotFields
For Each pi In pf.PivotItems
If pi.RecordCount = 0 And _
Not pi.IsCalculated Then
pi.Delete
End If
Next
Next
Next
Next
End Sub
Sub enregistre()
Dim EntreePlus As Worksheet, ZZ As Range, Erg, i As Integer, AA As Range, BB As Range, EE As Range, XX As Range, YY As Range, FF As Range, GG As Range, HH As Range, II As Range, JJ As Range, KK As Range, LL As Range, MM As Range, NN As Range, OO As Range
Dim valeur As String
Set EntreePlus = ThisWorkbook.Worksheets("donnees")
Application.ScreenUpdating = True
deleteOldItemsWB
'Pour positionner la cellule active en dehors de la liste car si dans la liste la nouvelle ligne se met
'en dehors de la liste
Range("A1").Select
'Quelques vérifications sur la saisie des données
If UserForm1.TextBox1.Value <> Format(UserForm1.TextBox1, "dd/MM/yyyy") Then
MsgBox "Veuillez renseigner la date sous le format jj/mm/aaaa"
Exit Sub
End If
If UserForm1.TextBox1.Value = "" Then
MsgBox "Veuillez renseigner la date de fabrication"
Exit Sub
End If
If UserForm1.ComboBox1.Value = "" Then
MsgBox "Veuillez renseigner le nom de l'opérateur!"
Exit Sub
End If
If UserForm1.TextBox5.Value = "" Then
MsgBox "Veuillez entrer une quantité entrée"
Exit Sub
End If
If UserForm1.TextBox6.Value = "" Then
MsgBox "Veuillez entrer une quantité sortie"
Exit Sub
End If
If UserForm1.TextBox11.Value = "0" And UserForm1.TextBox12.Value = "0" Then
MsgBox "Veuillez entrer le temps de la fabrication"
Exit Sub
End If
If UserForm1.TextBox2.Value = "" Then
UserForm1.TextBox2.Value = "-"
End If
If UserForm1.ComboBox3.Value = "" Then
MsgBox "Veuillez entrer le matériel utilisé"
Exit Sub
End If
If UserForm1.ComboBox4.Value = "" Then
MsgBox "Veuillez entrer l'opération réalisée"
Exit Sub
End If
If UserForm1.TextBox13.Value = "" Then
UserForm1.TextBox13.Value = "-"
End If
Ligne = EntreePlus.Cells(16384, 1).End(xlUp).Offset(1, 0).Row
Set XX = EntreePlus.Cells(Ligne, 1) 'Date
Set ZZ = EntreePlus.Cells(Ligne, 2) 'Opérateur
Set YY = EntreePlus.Cells(Ligne, 3) 'Plante utilisée
Set AA = EntreePlus.Cells(Ligne, 4) 'Code produit de la plante utilisée
Set BB = EntreePlus.Cells(Ligne, 5) 'N° de lot
Set EE = EntreePlus.Cells(Ligne, 6) 'Quantité entrée
Set GG = EntreePlus.Cells(Ligne, 7) 'Quantité sortie
Set LL = EntreePlus.Cells(Ligne, 8) 'Temps passé
Set MM = EntreePlus.Cells(Ligne, 9) 'Matériel utilisé
Set NN = EntreePlus.Cells(Ligne, 10) 'Opération
Set OO = EntreePlus.Cells(Ligne, 11) 'Perte
Set PP = EntreePlus.Cells(Ligne, 12) 'Rendement
Set QQ = EntreePlus.Cells(Ligne, 13) 'Commentaire
Set RR = EntreePlus.Cells(Ligne, 14) 'Pertes autres
Set SS = EntreePlus.Cells(Ligne, 15) 'Année
XX.Offset(0, i).Value = UserForm1.TextBox1.Text
ZZ.Offset(0, i).Value = UserForm1.ComboBox1.Value
YY.Offset(0, i).Value = UserForm1.ComboBox2.Value
AA.Offset(0, i).Value = UserForm1.TextBox3.Text
BB.Offset(0, i).Value = UserForm1.TextBox4.Text
EE.Offset(0, i).Value = UserForm1.TextBox5.Text
GG.Offset(0, i).Value = UserForm1.TextBox6.Text
LL.Offset(0, i).Value = (UserForm1.TextBox11.Text) + ((UserForm1.TextBox12.Text) / 60)
MM.Offset(0, i).Value = UserForm1.ComboBox3.Value
NN.Offset(0, i).Value = UserForm1.ComboBox4.Value
OO.Offset(0, i).Value = ((UserForm1.TextBox5.Text) - (UserForm1.TextBox6.Text)) / (UserForm1.TextBox5.Text)
PP.Offset(0, i).Value = (UserForm1.TextBox6.Text) / ((UserForm1.TextBox11.Text) + ((UserForm1.TextBox12.Text) / 60))
QQ.Offset(0, i).Value = UserForm1.TextBox2.Value
RR.Offset(0, i).Value = UserForm1.TextBox13.Value
SS.Offset(0, i).Value = Year(UserForm1.TextBox1.Text)
Unload UserForm1
Application.ScreenUpdating = True
MsgBox "Les données ont été enregistrées avec succés"
End Sub |