Incompatibilité de type : tableau ou type
Bonjour à tous,
J'ai un soucis dans un programme que j'ai réalisé, qui fait appel à des sous fonctions. Ce sont des fonctions qui utilisent des tableaux créés dans le programme principal. Cependant j'ai une erreur qui s'affiche que je ne comprends "incompatibilité de type : tableau ou type défini par l'utilisateur attendu" au niveau de mon programme principal sur l'appel de la fonction concentration.
Sub CalculRimp()
'création de mes 2 tableaux
Dim max As Double
Dim tabt(10000), tabq(10000) As Double
Dim w As Integer
max = Workbooks("Outil.xls").Sheets("1").Cells(12, 8).Value
For w = 9 To max
tabt(w) = Workbooks("Outilxls").Sheets("1").Cells(w, 3)
tabq(w) = Workbooks("Outil.xls").Sheets("1").Cells(w, 4)
Next w
dim n, i as Integer
n=1000
for i=1 to n
c_courant = concentration(tabt(), tabq())
next i
End Sub
Public Function concentration(ByRef tab1() As Double, ByRef tab2() As Double) As Double
max = Workbooks("Outil.xls").Sheets("1").Cells(12, 8).Value
dim Cq as double
dim tot as double
tot=0
dim q as integer
for q=1 to max
Cq=tab1(q)*tab2(q)
tot=tot+Cq
next q
concentration=tot
End Function
Je ne comprends pas l'incompatibilité de type sachant que tous mes tableaux sont des doubles.
Est-ce que quelqu'un pense avoir une idée d'où provient mon erreur?
En vous remerciant par avance,
Cordialement
jérémy
Bonjour,
tu n'as pas défini le type de tabt(10000) dans calculrimp
Sub CalculRimp()
'création de mes 2 tableaux
Dim max As Double
Dim tabt(10000) as double, tabq(10000) As Double
Dim w As Integer
max = Workbooks("Outil.xls").Sheets("1").Cells(12, 8).Value
For w = 9 To max
tabt(w) = Workbooks("Outilxls").Sheets("1").Cells(w, 3)
tabq(w) = Workbooks("Outil.xls").Sheets("1").Cells(w, 4)
Next w
dim n, i as Integer
n=1000
for i=1 to n
c_courant = concentration(tabt(), tabq())
next i
End Sub
Public Function concentration(ByRef tab1() As Double, ByRef tab2() As Double) As Double
max = Workbooks("Outil.xls").Sheets("1").Cells(12, 8).Value
dim Cq as double
dim tot as double
tot=0
dim q as integer
for q=1 to max
Cq=tab1(q)*tab2(q)
tot=tot+Cq
next q
concentration=tot
End Function
D'accord. Merci. je croyais qu'en faisant
dim tab1(10000), tab2(10000) as Double
, ça me les définissait tous les 2 comme des double.