Private Sub Signer_Click()
Dim Signature, Cel_Ref As Range
'Obliger l'utilisateur à ajouter une signature
If InkPicture1.Ink.Strokes.Count = 0 Then
MsgBox "Merci d'ajouter une signature": Exit Sub
End If
'Obliger l'utilisateur à cocher la case de rattrapage
If CheckBox1.Value = Empty And CheckBox2.Value = Empty Then
MsgBox "Merci d'indiquer s'il s'agit d'un rattrapage": Exit Sub
End If
'Bloquer le rafraîchissement d’Excel pendant l’exécution du programme
Application.ScreenUpdating = False
'Insertion signature en colonne D sous format Bitmap
InkPicture1.Ink.ClipboardCopy , ICF_Bitmap
If CheckBox2.Value Then
Set Cel_Ref = Range("E" & ActiveCell.Row)
Else
Set Cel_Ref = Range("C" & ActiveCell.Row)
End If
Cel_Ref.PasteSpecial
Set Signature = Selection
'Redimensionner et centrer la signature dans la cellule active
With Signature.ShapeRange
.LockAspectRatio = msoFalse 'autorise la modification des proportions de la signature tracée
.Height = 0.75 * Cel_Ref.Height 'fixe la hauteur de signature à 0.75*la hauteur de la cellule
If Cel_Ref.Column = 3 Then
.Width = 0.75 * Cel_Ref.MergeArea.Width 'fixe la largeur de signature à 0.75*la largeur de la cellule
.Left = Cel_Ref.Left + ((Cel_Ref.MergeArea.Width / 2) - (.Width / 2)) 'centre la signature en latéralité dans la cellule
Else
Cel_Ref.HorizontalAlignment = xlLeft
.Width = 0.75 * Cel_Ref.Offset(0, -1).MergeArea.Width 'fixe la largeur de signature à 0.75*la largeur de la cellule
.Left = Cel_Ref.Left + (Cel_Ref.MergeArea.Width * 0.9) - .Width 'centre la signature en latéralité dans la cellule
End If
.Top = Cel_Ref.Top + (Cel_Ref.Height / 2) - (.Height / 2) 'centre la signature en hauteur dans la cellule
End With
Cel_Ref.Select
'Activer le rafraîchissement d’Excel
Application.ScreenUpdating = True
Unload Me 'Quitter la fenêtre UserForm
End Sub