Bonjour,
J'ai fait une macro qui envoie un mail lorsque le stock d'un produit est trop bas, cette dernière marche correctement seulement lorsque j'ajoute une ligne ou que j'en supprime une il y a l'erreur 13 "Incompatibilité de type" qui apparait.
Ayant un bouton pour créer des lignes (de nouveaux produits) ce dernier ne marche plus à cause de l'erreur de ma macro.
Voici mon code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C2:C200")) Is Nothing And Target.Value < Cells(Target.Row, "D") And IsEmpty(Cells(Target.Row, "F")) Then
'Changer la range C selon le nombre de lignes du tableau
Call SendEmail
End If
End Sub
Sub SendEmail()
Dim rng As Range
Dim xOutApp As Object
Dim xOutMail As Object
Dim xMailBody As String
Dim StrBody As String
Set xOutApp = CreateObject("Outlook.Application")
For Each rng In Range("H2:H200") 'À changer selon le nombre de lignes
If (rng.Value = False) And IsEmpty(Cells(rng.Row, "F")) And rng <> "" Then
Set xOutMail = xOutApp.CreateItem(0)
xMailBody = xMailBody & "- " & Cells(rng.Row, "B").Value & "<br/>"
End If
Next rng
On Error Resume Next
With xOutMail
.To = "test@gmail.com"
.CC = ""
.BCC = ""
.subject = "Stock seuil critique"
.HTMLbody = "Il faut recommander : <br/><br/>" & xMailBody
.Send 'Utiliser .Display pour montrer l'email avant envoi ou .Send pour envoyer directement
End With
On Error GoTo 0
Set xOutMail = Nothing
Set xOutApp = Nothing
End Sub
L'erreur se produit à la ligne :
If Not Intersect(Target, Range("C2:C200")) Is Nothing And Target.Value < Cells(Target.Row, "D") And IsEmpty(Cells(Target.Row, "F")) Then
Sachant que le bouton permet simplement d'ajouter une ligne avec le nom du produit en colonne B et aucune autre valeur.