Erreur d'exécution 13 : Incompatibilité de type

Fermé
Leero - Modifié par Leero le 13/05/2014 à 14:56
 Leero - 19 mai 2014 à 11:26
Bonjour à vous,


J'ai un petit soucis avec mes macros Excel. Pour faire simple, elles comparent deux feuilles et en extraient les différences (les nouvelles demandes) via une comparaison que je fais toutes les deux semaines. Elles sont fonctionnelles bien qu'assez basiques mais lorsqu'il n'y a pas de nouvelles demandes, ma macro affiche le message d'erreur "Erreur d'exécution 13 : Incompatibilité de type ".


J'ai fait quelques recherches mais n'étant qu'un novice sous Excel, les réponses que j'ai trouvé me proposaient majoritairement un problème au niveau des variables.


Je vous joins ci-dessous le code de ma macro avec en gras, la ligne qui est surlignée sous Excel :

 Sub STNouvellesDemandes()
Dim Tabl1(), Tabl2()
Dim MonDico1 As Object, Mondico2 As Object
Dim c
Dim Sh1 As Worksheet, Sh2 As Worksheet, Sh3 As Worksheet
Dim DrLig As Long

Set Sh1 = Sheets("28.04.14")
With Sh1
    DrLig = .Range("U" & Rows.Count).End(xlUp).Row
    Tabl1 = .Range("U6:U" & DrLig)
End With
Set MonDico1 = CreateObject("Scripting.Dictionary")
For Each c In Tabl1
    MonDico1(c) = ""
Next c

Set Sh2 = Sheets("13.05.14")
With Sh2
    DrLig = .Range("U" & Rows.Count).End(xlUp).Row
    Tabl2 = .Range("U6:U" & DrLig)
End With
Set Mondico2 = CreateObject("Scripting.Dictionary")
For Each c In Tabl2
    If Not MonDico1.exists(c) Then Mondico2(c) = ""
Next c

Set Sh3 = Sheets("Résultat Storeline")
With Sh3
    DrLig = .Range("B" & Rows.Count).End(xlUp).Row
    .Range("A10:A" & DrLig).Clear
   .Range("A10").Resize(Mondico2.Count, 1) = Application.Transpose(Mondico2.keys)
End With
End Sub]



Je remercie d'avance les gens qui m'accorderont de leur temps !
A voir également:

2 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
13 mai 2014 à 18:00
Bonjour,

si j'ai compris votre probleme, sans ligne en gras:

testez le compteur de Mondico2

If Mondico2.Count > 0 Then
Set Sh3 = Sheets("Résultat Storeline")
With Sh3
DrLig = .Range("B" & Rows.Count).End(xlUp).Row
.Range("A10:A" & DrLig).Clear
.Range("A10").Resize(Mondico2.Count, 1) = Application.Transpose(Mondico2.keys)
End With
Else
MsgBox ("Pas de nouvelles donnees!!!!")
End If
0
Merci, c'est exactement ce que je recherchais. Cela fonctionne parfaitement !
0