Erreur 13 : Incompatibilité de type

Pino12

XLDnaute Junior
Bonjour,

Je souhaite faire fonctionner une macro mais son exécution s’interrompt toujours pas l'erreur "incompatibilité de type".
Voici l'extrait douteux du code avec en rouge la zone de débogage indiquée par excel.
Pouvez-vous m'aider ?

c(2).Resize(h) = "=IFERROR(VLOOKUP(RC1,'" & ficha & f & "'!R4C1:R20000C22,21,0),0)"


If c(2).Resize(h) = 0 Then

For n = 0 To -10

c(2, 2).Resize(h) = "=IFERROR(VLOOKUP(RC1,'" & fichb & f & "'!R4C1:R20000C22,22,0),0)"


Exit For

c(2, 2).Resize (h) <> 0

Next

Else: c(2, 2).Resize(h) = "=IFERROR(VLOOKUP(RC1,'" & ficha & f & "'!R4C1:R20000C22,22,0),0)"

End If

End If
Next

Merci d'avance,
 

job75

XLDnaute Barbatruc
Re : Erreur 13 : Incompatibilité de type

Bonjour Pino12, hello Pierrot,

Normal, c(2).Resize(h) est une plage de hauteur h.

On ne peut pas la comparer à 0 ou à une autre valeur si h > 1.

La comparaison doit se faire sur une cellule.

A+
 

Pino12

XLDnaute Junior
Re : Erreur 13 : Incompatibilité de type

Job 75 : Effectivement ça ne peut pas marcher dans ce cas.. Je viens d'essayer avec "For Each c(2).Resize(h)" puis un If, mais cela ne fonctionne pas non plus. Savez-vous s'il existe un connecteur semblable prenant en compte les plages ?

Pierrot 93 : Voici le code en entier, j'hésitais à le poster car il est assez long :

Dim f$, h&, c As Range, ficha$, fichb$, n As Long
f = "Ventes et Stocks Magasins"
h = Application.Match("TOTAL", [C:C], 0) - 9 'la hauteur du tableau peut varier

Application.ScreenUpdating = False
Application.DisplayAlerts = False 'si des fichiers n'existent pas

For Each c In Range("E8", Cells(8, Columns.Count).End(xlToLeft))
If c = "Vtes" Then

ficha = "H:\DC_01\Data Sharing\Semaines étudiées\[Litté S" & Val(Replace(c(0, 0), "Semaine", "")) & ".xlsx]"
fichb = "H:\DC_01\Data Sharing\Semaines étudiées\[Litté S" & Val(Replace(c(0, 0), "Semaine", "")) + n & ".xlsx]"

c(2).Resize(h) = "=IFERROR(VLOOKUP(RC1,'" & ficha & f & "'!R4C1:R20000C22,21,0),0)"

If c(2).Resize(h) = 0 Then

For n = 0 To -10

c(2, 2).Resize(h) = "=IFERROR(VLOOKUP(RC1,'" & fichb & f & "'!R4C1:R20000C22,22,0),0)"

Exit For

c(2, 2).Resize (h) <> 0

Next

Else: c(2, 2).Resize(h) = "=IFERROR(VLOOKUP(RC1,'" & ficha & f & "'!R4C1:R20000C22,22,0),0)"

End If

End If
Next

End Sub
 

Discussions similaires

Réponses
1
Affichages
177

Statistiques des forums

Discussions
312 345
Messages
2 087 486
Membres
103 557
dernier inscrit
gerard.messerlin68@orange