Erreur 13 Incompatibilité de type

Erreur 13 Incompatibilité de type - VB/VBA/VBS - Programmation

Marsh Posté le 13-10-2010 à 09:07:40    

Bonjour,
 
Voila, j'ai un programme à faire tourner et celui-ci me met une erreur d'incompatibilité de type  
 
pourriez-vous m'aider merci d'avance.
 
le code :  
Sub Classes()
'----------------EN TETE
'Le but de ce module est de trier les weldolet par classes suivant la flèche de 1.6mm
'----ENTREE
'Le tableau de "Géométrie"
'----SORTIE
'Valeurs triées dans l'onglet "Géométrie"
 
Dim tableau_des_comparaisons(0 To 200, 0 To 10) As Variant
Dim tableau_géométrie(0 To 8000, 0 To 80) As Variant
'recopie du tableau géométrie dans "tableau_géométrie"
X = 1
Do While Worksheets("Géométrie" ).Cells(X + 48, 1) <> ""
For Y = 1 To 26
tableau_géométrie(X, Y) = Worksheets("Géométrie" ).Cells(X + 48, Y)
Next
For Y = 33 To 40
tableau_géométrie(X, Y) = Worksheets("Géométrie" ).Cells(X + 48, Y)
Next
X = X + 1
Loop
'opération de tri dans le tableau géométrie
For A = 1 To X
If tableau_géométrie(A, 33) < tableau_des_comparaisons(tableau_géométrie(A, 5), 1) + 1 And tableau_géométrie(A, 33) > tableau_des_comparaisons(tableau_géométrie(A, 5), 1) - 1 Then
    If tableau_géométrie(A, 2) = tableau_géométrie(tableau_des_comparaisons(tableau_géométrie(A, 5), 2), 2) Then
    B = 4
    tableau_géométrie(tableau_des_comparaisons(tableau_géométrie(A, 5), 2), B) = tableau_géométrie(A, 3)
    For B = 6 To 26
    tableau_géométrie(tableau_des_comparaisons(tableau_géométrie(A, 5), 2), B) = tableau_géométrie(A, B)
    Next
    For B = 33 To 40
    tableau_géométrie(tableau_des_comparaisons(tableau_géométrie(A, 5), 2), B) = tableau_géométrie(A, B)
    Next
    For B = 6 To 26
    tableau_géométrie(A, B) = ""
    Next
     
 
    Else
    GoTo moe
    End If
Else
 
 
 
moe:
tableau_des_comparaisons(tableau_géométrie(A, 5), 1) = tableau_géométrie(A, 33)
tableau_des_comparaisons(tableau_géométrie(A, 5), 2) = A
End If
Next
'Nettoyage de la feuille géométrie
X = 1
Do While Worksheets("Géométrie" ).Cells(X + 48, 1) <> ""
For Y = 1 To 26
Worksheets("Géométrie" ).Cells(X + 48, Y) = " "
Next
For Y = 33 To 40
Worksheets("Géométrie" ).Cells(X + 48, Y) = ""
Next
X = X + 1
Worksheets("Géométrie" ).Cells(X + 48, 10).Select
 
Loop
 
'écriture de "tableau_géométrie" dans le tableau de Géométrie
z = 1
X = 1
Do While tableau_géométrie(X, 1) <> ""
If tableau_géométrie(X, 10) <> "" Then
    For Y = 1 To 26
    Worksheets("Géométrie" ).Cells(z + 48, Y) = tableau_géométrie(X, Y)
    Next
    For Y = 33 To 40
    Worksheets("Géométrie" ).Cells(z + 48, Y) = tableau_géométrie(X, Y)
    Next
    Worksheets("Géométrie" ).Cells(z + 48, 1) = "=IF(AND(R[" & -z - 48 + 5 & "]C[1]=RC[1],R[" & -z - 48 + 6 & "]C[1]>=RC[2],R[" & -z - 48 + 6 & "]C[1]<=RC[3],R[" & -z - 48 + 7 & "]C[1]=RC[4]),1,0)"
    z = z + 1
    Worksheets("Géométrie" ).Cells(z - 1, 10).Select
End If
X = X + 1
Loop
 
End Sub
 
ça plante au niveau du tableau des comparaisons et d'après ce que j'ai pu comprendre c'est le type Variant qui coince.  
mais ce ne sont que des suppositions de novice en informatique  
 
Voila, merci de votre aide  
 
A bientôt

Reply

Marsh Posté le 13-10-2010 à 09:07:40   

Reply

Marsh Posté le 13-10-2010 à 09:33:31    

Sur quelle ligne l'erreur ?


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 13-10-2010 à 09:58:26    

Bonjour,  
 
l'erreur est sur cette ligne  
 
If tableau_géométrie(A, 33) < tableau_des_comparaisons(tableau_géométrie(A, 5), 1) + 1 And tableau_géométrie(A, 33) > tableau_des_comparaisons(tableau_géométrie(A, 5), 1) - 1 Then  
 
Merci de ta réponse

Reply

Marsh Posté le 13-10-2010 à 12:05:02    

L'erreur est ici :
tableau_des_comparaisons(tableau_géométrie(A, 5), 1)
 
Ton tableau_géométrie(A, 5) renvoie autre chose qu'un variant ou une valeur superieure a celle definie dans le tableau
Tu dois donc avoir dans une cellule de ton tableau autre chose que des chiffres de 0 à 8000
 
Si dans mon tableau qui va de A1 à DI300 je ne mets que des nombres, la routine passe sans souci.
Si je mets une lettre a un endroit, hop ca foire.
 
Si tableau_géométrie(A, 5) renvoie 201, bah forcement aussi ca foire, car tu definis ton tableau tableau_des_comparaisons(0 To 200, 0 To 10)
 
etc.
 
Faut verifier tes données sources
 
Si tu poses ta souris sur le texte "tableau_géométrie" sur la ligne surlignée en jaune qd ca beug, Excel est censé te donner la valeur que ca renvoie...
http://dje69r.free.fr/BanditRider.JPG


Message édité par SuppotDeSaTante le 13-10-2010 à 12:09:04

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 13-10-2010 à 14:09:37    

Ok je te remercie de ta réponse, j'essayerai ça et je te tiendrai au courant. Encore merci

Reply

Marsh Posté le 14-10-2010 à 17:18:59    

Bonjour,  
 
je te remercie pour le temps que tu as passé sur le problème, maintenant ça fonctionne.
 
un grand merci

Reply

Marsh Posté le 14-10-2010 à 18:06:12    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed