Bonjour à tous,
J'ai besoin d'aide pour résoudre un problème dans mon code de macro.
En faite lorsque je clique sur le bouton "Add", un formulaire d'ajout s'affiche où je saisis les informations relatives à un employé, notamment son salaire payé et son salaire en listing. Une fois que j'ai complété le formulaire, ces informations sont enregistrées dans un tableau et une régularisation est calculée automatiquement.
Le calcul de régularisation se base sur la différence entre le salaire en listing et le salaire payé. Si la régularisation est inférieure à zéro, cela signifie qu'un remboursement est nécessaire, et dans ce cas, aucune action supplémentaire n'est requise. Si la régularisation est égale à zéro, cela signifie que tout est en ordre et aucune action n'est entreprise.
Cependant, si la régularisation est supérieure à zéro, j'ai ajouté une condition spécifique dans le code. Cette condition permet d'ouvrir automatiquement une attestation au format PDF. L'attestation contient des informations pertinentes liées à l'employé et à la régularisation.
Si quelqu'un parmi vous pourrait m'aider à corriger ce code de macro, je vous serais très reconnaissant. Veuillez trouver ci-dessous le code actuel :
Private Sub CommandButton1_Click()
Dim dl As Integer
If Me.ComboBox3.Value <> "" And Me.Txt_description.Value <> "" And Me.Txt_payé.Value <> "" And Me.Txt_listing.Value <> "" Then
Sheets("Régularisation").ListObjects(1).ListRows.Add
dl = Sheets("Régularisation").Range("c9999").End(xlUp).Row
'Ajouter dans le tableau
Sheets("Régularisation").Range("C" & dl) = Me.ComboBox3.Value
Sheets("Régularisation").Range("D" & dl) = Me.Txt_description.Value
Sheets("Régularisation").Range("E" & dl) = CDec(Me.Txt_payé.Value)
Sheets("Régularisation").Range("F" & dl) = CInt(Me.Txt_listing.Value)
Dim chemin As String
Dim nomFichier As String
' Définir le chemin et le nom de fichier
chemin = "C:\Users\Utilisateur\Desktop\Attestation\" ' Chemin où le PDF sera enregistré
nomFichier = Me.Txt_description.Value & ".pdf" ' Nom du fichier PDF
' Vérifier la valeur de la cellule H7 et les suivantes dans la feuille "Régularisation"
Dim derniereligne As Long
derniereligne = Sheets("Régularisation").Cells(Rows.Count, "H").End(xlUp).Row
Dim i As Long
Dim plage As Range
Dim paiementTrouve As Boolean
Dim remboursementTrouve As Boolean
Dim enOrdreTrouve As Boolean
paiementTrouve = False
remboursementTrouve = False
enOrdreTrouve = False
For i = 7 To derniereligne
If Sheets("Régularisation").Range("H" & i).Value = "Paiement" Then
Sheets("Attestation").Activate
Set plage = Range("B4:B46")
plage.Worksheet.PageSetup.Zoom = 80
plage.ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin & nomFichier, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False
Shell "explorer.exe """ & chemin & nomFichier & """"
paiementTrouve = True
Exit For
ElseIf Sheets("Régularisation").Range("H" & i).Value = "Remboursement" Then
remboursementTrouve = True
ElseIf Sheets("Régularisation").Range("H" & i).Value = "En ordre" Then
enOrdreTrouve = True
End If
Next i
If remboursementTrouve Then
MsgBox "Attention, vous avez le remboursement. Aucun PDF ne sera ouvert."
ElseIf enOrdreTrouve Then
MsgBox "Parfait, tout est en ordre."
ElseIf Not paiementTrouve Then
MsgBox "Aucun paiement trouvé. Aucun PDF ne sera ouvert."
End If
End If
Sheets("Employés").Range("d19") = Sheets("Employés").Range("d19")
ThisWorkbook.Save
Unload Add_employé
End Sub
Je vous remercie d'avance pour votre aide précieuse !
Partager