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
| Sub miseenplacedelafeuille()
'calcul le nombre de ligne
Dim nombredeligne As Integer
Sheets("INTERVENTIONS").Activate
nombredeligne = ActiveSheet.Range("A1").End(xlDown).Row
'supprime les espaces dans les durées opératoires (cause des erreurs de calcul)
Range("G2:L" & nombredeligne).Select
Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'insere une nouvelle feuille sur laquelle
'sera calculer puis copier (gain de temps) la premiere colonne
'pour chaque type d'operation
Sheets.Add.Move After:=Sheets(Sheets.Count)
ActiveSheet.Name = "donnée temporaire 1"
ActiveSheet.Range("A1") = "hfin - heb"
ActiveSheet.Range("E1") = "hsrt - hent"
ActiveSheet.Range("I1") = "hdepbloc - harrbloc"
Range("A2:L" & nombredeligne).Select
Selection.NumberFormat = "h:mm;@"
'insere une nouvelle feuille sur laquelle
'sera calculer puis copier (gain de temps) les temps d'anesthesie
'et les noms voulus
Sheets.Add.Move After:=Sheets(Sheets.Count)
ActiveSheet.Name = "donnée temporaire 2"
'insere une nouvelle feuille sur laquelle sera affiché les résultats
Sheets.Add.Move After:=Sheets(Sheets.Count)
ActiveSheet.Name = "Résultat"
End Sub
Sub calculdesdureeope()
'calcul le nombre de ligne à partir de la premiere colonne, toujours pleine jusqu'à la fin
Dim nombredeligne As Integer
Sheets("INTERVENTIONS").Activate
nombredeligne = ActiveSheet.Range("A1").End(xlDown).Row
Dim compteur As Integer 'declare un compteur pour les boucles
Sheets("donnée temporaire 1").Select
Range("A2").Select
For compteur = 2 To nombredeligne
If IsEmpty(Sheets("INTERVENTIONS").Cells(compteur, 7).Value) Or IsEmpty(Sheets("INTERVENTIONS").Cells(compteur, 8).Value) Then
ActiveCell.Value = ""
ElseIf Sheets("INTERVENTIONS").Cells(compteur, 7).Value < Sheets("INTERVENTIONS").Cells(compteur, 8).Value Then
ActiveCell.FormulaR1C1 = "=((INT(INTERVENTIONS!R[0]C[7]/100)+(INTERVENTIONS!R[0]C[7]/100-INT(INTERVENTIONS!R[0]C[7]/100))*100/60)-(INT(INTERVENTIONS!R[0]C[6]/100)+(INTERVENTIONS!R[0]C[6]/100-INT(INTERVENTIONS!R[0]C[6]/100))*100/60))*60/1440"
Else
ActiveCell.FormulaR1C1 = "=((24 - (INT(INTERVENTIONS!R[0]C[7]/100)+(INTERVENTIONS!R[0]C[7]/100-INT(INTERVENTIONS!R[0]C[7]/100))*100/60))+(INT(INTERVENTIONS!R[0]C[6]/100)+(INTERVENTIONS!R[0]C[6]/100-INT(INTERVENTIONS!R[0]C[6]/100))*100/60))*60/1440"
End If
If IsEmpty(Sheets("INTERVENTIONS").Cells(compteur, 9).Value) Or IsEmpty(Sheets("INTERVENTIONS").Cells(compteur, 10).Value) Then
ActiveCell.Offset(0, 4).Value = ""
ElseIf Sheets("INTERVENTIONS").Cells(compteur, 9).Value < Sheets("INTERVENTIONS").Cells(compteur, 10).Value Then
ActiveCell.Offset(0, 4).FormulaR1C1 = "=((INT(INTERVENTIONS!R[0]C[5]/100)+(INTERVENTIONS!R[0]C[5]/100-INT(INTERVENTIONS!R[0]C[5]/100))*100/60)-(INT(INTERVENTIONS!R[0]C[4]/100)+(INTERVENTIONS!R[0]C[4]/100-INT(INTERVENTIONS!R[0]C[4]/100))*100/60))*60/1440"
Else
ActiveCell.Offset(0, 4).FormulaR1C1 = "=((24 - (INT(INTERVENTIONS!R[0]C[5]/100)+(INTERVENTIONS!R[0]C[5]/100-INT(INTERVENTIONS!R[0]C[5]/100))*100/60)) + (INT(INTERVENTIONS!R[0]C[4]/100)+(INTERVENTIONS!R[0]C[4]/100-INT(INTERVENTIONS!R[0]C[4]/100))*100/60))*60/1440"
End If
If IsEmpty(Sheets("INTERVENTIONS").Cells(compteur, 11).Value) Or IsEmpty(Sheets("INTERVENTIONS").Cells(compteur, 12).Value) Then
ActiveCell.Offset(0, 8).Value = ""
ElseIf Sheets("INTERVENTIONS").Cells(compteur, 11).Value < Sheets("INTERVENTIONS").Cells(compteur, 12).Value Then
ActiveCell.Offset(0, 8).FormulaR1C1 = "=((INT(INTERVENTIONS!R[0]C[3]/100)+(INTERVENTIONS!R[0]C[3]/100-INT(INTERVENTIONS!R[0]C[3]/100))*100/60)-(INT(INTERVENTIONS!R[0]C[2]/100)+(INTERVENTIONS!R[0]C[2]/100-INT(INTERVENTIONS!R[0]C[2]/100))*100/60))*60/1440"
Else
ActiveCell.Offset(0, 8).FormulaR1C1 = "=((24 - (INT(INTERVENTIONS!R[0]C[3]/100)+(INTERVENTIONS!R[0]C[3]/100-INT(INTERVENTIONS!R[0]C[3]/100))*100/60)) + (INT(INTERVENTIONS!R[0]C[2]/100)+(INTERVENTIONS!R[0]C[2]/100-INT(INTERVENTIONS!R[0]C[2]/100))*100/60))*60/1440"
End If
ActiveCell.Offset(1, 0).Select
Next compteur
Range("A1:A" & nombredeligne).Select
Selection.Copy
Range("B1:D" & nombredeligne).Select
Selection.PasteSpecial Paste:=xlPasteValues
Range("E1:E" & nombredeligne).Select
Selection.Copy
Range("F1:H" & nombredeligne).Select
Selection.PasteSpecial Paste:=xlPasteValues
Range("I1:I" & nombredeligne).Select
Selection.Copy
Range("J1:L" & nombredeligne).Select
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub |
Partager