Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 erreur 13

jerome313131

XLDnaute Nouveau
Bonjour quand je lance ma macro j'ai une erreur code erreur d’exécution 13 incompatible de type
Pouvez vous m'aider merci

Sub relance()
Dim C As Range, olApp As Object, M As Object
Set olApp = CreateObject("Outlook.application")
For Each C In Range("A2", Cells(Rows.Count, 1).End(xlUp))
If IsDate(C.Offset(, 1)) And Date - C.Offset(, 1) > 5 Then
If C.Offset(, 1).Interior.ColorIndex = 6 Then
Set M = olApp.CreateItem(olMailItem)
With M
.Subject = "RELANCE commande " + C.Offset(, 4).Value
.Recipients.Add C.Offset(, 3).Value
.Body = " Bonjour, pouvez vous nous donner le délais de livraison concernant notre commande citée en objet . Cordialement Climax-sav Mr Charrier J."
.Display
End With
End If
End If
Next C
End Sub
 
Solution
C'est la valeur de la colonne B qui n'est pas une date. Comme l'indique @Dranreb :

VB:
Sub relance()
  Dim C As Range, olApp As Object, M As Object
  Set olApp = CreateObject("Outlook.application")
  For Each C In Range("A2", Cells(Rows.Count, 1).End(xlUp))
    If IsDate(C.Offset(, 1)) Then
      If Date - C.Offset(, 1) > 5 Then
        If C.Offset(, 1).Interior.ColorIndex = 6 Then
          Set M = olApp.CreateItem(olMailItem)
          With M
          .Subject = "RELANCE commande " + C.Offset(, 4).Value
            .Recipients.Add C.Offset(, 3).Value
            .Body = " Bonjour, pouvez vous nous donner le délais de livraison concernant notre commande citée en objet . Cordialement Climax-sav Mr Charrier J."...

Dranreb

XLDnaute Barbatruc
Bonjour.
Décomposez, parce que l'opérateur And ne marche pas comme le AndThen de certains autres Visual Basic: l'expression Date - C.Offset(, 1) > 5 est évaluée même si Not IsDate C.Offset(, 1)) et ensuite les deux expressions sont combinées.
 

danielco

XLDnaute Accro
C'est la valeur de la colonne B qui n'est pas une date. Comme l'indique @Dranreb :

VB:
Sub relance()
  Dim C As Range, olApp As Object, M As Object
  Set olApp = CreateObject("Outlook.application")
  For Each C In Range("A2", Cells(Rows.Count, 1).End(xlUp))
    If IsDate(C.Offset(, 1)) Then
      If Date - C.Offset(, 1) > 5 Then
        If C.Offset(, 1).Interior.ColorIndex = 6 Then
          Set M = olApp.CreateItem(olMailItem)
          With M
          .Subject = "RELANCE commande " + C.Offset(, 4).Value
            .Recipients.Add C.Offset(, 3).Value
            .Body = " Bonjour, pouvez vous nous donner le délais de livraison concernant notre commande citée en objet . Cordialement Climax-sav Mr Charrier J."
            .Display
          End With
        End If
      End If
    End If
  Next C
End Sub

(non testé)

Daniel
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…