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

erreur " incompatibilité de type" Xl 2003 et 2007

gosselien

XLDnaute Barbatruc
Bonjour,

dans ce code que j'avais eu sur ce forum, je ne sais pas pourquoi il se plante à la ligne

[g2].Resize(mondico2.Count, 1) = Application.Transpose(mondico2.items)

avec le message " incompatibilité de type"

Merci de votre aide

Sub CommunsEntreAetD()
' articles en commun dans les 2 listes en colonne A et D
'déclarer dans Outils/référence "microsoft scripting runtime"
'
[g1].Value = "Communs " '
[A:E].ClearComments
[A:E].Interior.ColorIndex = xlNone
a = Range("a2:a" & [a65000].End(xlUp).Row)
Set MonDico1 = CreateObject("Scripting.Dictionary")

For Each C In a
If Not MonDico1.exists(C) Then MonDico1.Add C, C
Next C

B = Range("d2:d" & [d65000].End(xlUp).Row)

Set mondico2 = CreateObject("Scripting.Dictionary")
For Each C In B
If MonDico1.exists(C) Then If Not mondico2.exists(C) Then mondico2.Add C, C
Next C

[g2].Resize(mondico2.Count, 1) = Application.Transpose(mondico2.items)
End Sub
 

Paf

XLDnaute Barbatruc
Re : erreur " incompatibilité de type" Xl 2003 et 2007

Bonjour,

Pas sûr que l'erreur soit due au changement de version:

Sous 2003 l'erreur existe s'il n'y a aucun élément de commun entre les deux listes.

Modification à apporter:

If MonDico2.Count > 0 Then
[g2].Resize(MonDico2.Count, 1) = Application.Transpose(MonDico2.items)
Else
[g2].Value = "Aucun"
End If


A+
 

Dranreb

XLDnaute Barbatruc
Re : erreur " incompatibilité de type" Xl 2003 et 2007

Bonsoir.
mondico2.Add C, C ajoute la cellule comme item au Dictionary. Je dis bien la cellule, pas sa propriété Value mais bel et bien l'objet Range lui même avec toutes ses propriétés et méthodes !
À ne jamais préciser .Value, voilà à quoi on finit par arriver !
 

gosselien

XLDnaute Barbatruc
Re : erreur " incompatibilité de type" Xl 2003 et 2007

Merci...
très bonnes remarques de vos parts; en vous lisant j'ai constaté que les noms étaient (partiellement) communs, je le savais mais surtout, une liste en majuscules et la seconde en minuscule, d'où l'erreur

A quel endroit dois-je forcer le passage en majuscule alors ?

après le for each je présume en écrivant

c=Ucase(c)

Merci encore à vous !!!
Patrick
 
Dernière édition:

Discussions similaires

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