Bonsoir, en général j'arrive facilement à faire mes procédures, mais manque de bol et je ne sais pas pourquoi je bloque souvent, très souvent même pour tester mes procédures sur mes algo test, donc j'aimerai avoir votre aide et vos conseils pour les réussir une bonne fois pour toute.
Je ne pense pas que mon code soit faux, j'ai juste une erreur d'incompatibilité de type ref en guise d'erreur sur ma procédure test, je sais très bien que cela doit être une truc tout bête, donc j'aimerai vos conseils pour ne plus avoir ces erreurs-là, merci d'avance.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Type chat
n_ch As Integer
nom_ch As String
dn As Date
race As String
ville_e As String
moy As Single
 End Type
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Public Sub liretab(ByRef fich As Variant, ByVal feuil As String, ByRef cellule As Range, ByRef Tab1() As chat, ByRef n As Integer)
Dim ligfin As Integer
Dim i As Integer
Dim j As Integer
Dim ligdeb As Integer
ligfin = cellule.End(xlDown).Row
ligdeb = cellule.Row
n = ligfin - ligdeb
j = cellule.Column
 
   Cells(ligdeb, j).Value = "n_ch"
  Cells(ligdeb, j + 1).Value = "nom_ch"
   Cells(ligdeb, j + 2).Value = "dn"
   Cells(ligdeb, j + 3).Value = "race"
   Cells(ligdeb, j + 4).Value = "ville_e"
   Cells(ligdeb, j + 5).Value = "moy"
 
Worksheets(feuil).Select
 
  For i = 1 To n
      Tab1(i).n_ch = Cells(ligfin - n + i, j).Value
      Tab1(i).nom_ch = Cells(ligfin - n + i, j + 1).Value
      Tab1(i).dn = Cells(ligfin - n + i, j + 2).Value
      Tab1(i).race = Cells(ligfin - n + i, j + 3).Value
      Tab1(i).ville_e = Cells(ligfin - n + i, j + 4).Value
      Tab1(i).moy = Cells(ligfin - n + i, j + 5).Value
    Next
 
End Sub
Ma procédure test (là où il y a l'erreur) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Public Sub TestLireTab()
 
Dim T(1 To 100) As Integer
Dim nb As Integer, i As Integer
Call liretab("Feuil1", Range("B3"), T(), nb)
MsgBox (nb & " valeurs ont été lues")
End Sub