Option Explicit
Private Sub validerButton_Click()
Dim message$, location As Range
message = message & IIf(designationBox = "", "1°Remplir la désignation de la dépense" & vbCrLf, "")
message = message & IIf(Not IsDate(dateBox), " 2°Remplir la date de la dépense" & vbCrLf, "")
message = message & IIf(montantBox.Value <= 0, "3°Le montant de la dépense doit être rempli et positif" & vbCrLf, "")
message = message & IIf(Not IsNumeric(montantBox), "3°Uniquement les valeurs numérique sont acceptées pour le montant" & vbCrLf, "")
message = message & IIf(typeComboBox.ListIndex = -1, "4°Sélectionner le type de dépense" & vbCrLf, "")
message = message & IIf(destinataireComboBox.ListIndex = -1, "5°Sélectionner le destinataire de la dépense" & vbCrLf, "")
'le message te donne le ou les composants non ou non dument (remplis)
If message <> "" Then affichagLBL.Caption = message: Beep: Exit Sub
UserForm1.Hide 'fermer le formulaire
With Feuil1
.Rows(15).Insert shift:=xlUp 'Insert une nouvelle ligne lorsque la saisie du formulaire est validé
'inscription des valeurs
Range("C15:g15") = Array(designationBox.Value, dateBox.Value, montantBox.Value, typeComboBox.Value, destinataireComboBox.Value)
'Incrémente le numéro de la dépense
Range("B15") = Range("B16") + 1
'redimensionnement de la colone H
'Columns("H:H").ColumnWidth = 3.5'une fois que c'est fait pas la peine d'y retoucher
Rows(15).RowHeight = 20 'redimensionnement de la ligne 6
.Shapes("corbeille").Copy: .Paste 'on copy limage original et on colle dans la feuille
Set location = .[H15] 'elle doit venir sur cette cellule
'on la place sur cette dite cellule
With .Shapes(.Shapes.Count - 1)
'on la nomme distinctement avec le numero incrementé en colonne "B"
.Name = "p" & [b15].Value
.Top = location.Top + ((location.Height - .Height) / 2) 'on la centre
.Left = location.Left
.OnAction = "supprime_ligne" 'on designe l'action a faire a cette nouvelle shape (la sub est dans un module)
End With
End With
Unload Me 'initialise le formulaire
End Sub