erreur 13 "incompatibilité de type" où ?

  • Initiateur de la discussion Initiateur de la discussion AzoR
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

AzoR

XLDnaute Occasionnel
Bonjour, j'ai une erreur dans mon programme je trouve pas help please

Sub Tableaux()

Dim tab1(), tab2(), tab3(), tab4(), tab5(), tab6(), tab7(), tab8() As String
Dim tabG1(), tabG2(), tabG3(), tabG4(), tabG5(), tabG6(), tabG7(), tabG8() As String
Dim tabD1(), tabD2(), tabD3(), tabD4(), tabD5(), tabD6(), tabD7(), tabD8() As String
Dim tabP(), tabG(), tabD() As Variant

mesureP1 = Cells(6, 2).Value
mesureP2 = Cells(7, 2).Value
mesureP3 = Cells(8, 2).Value
mesureP4 = Cells(9, 2).Value
mesureP5 = Cells(10, 2).Value
mesureP6 = Cells(11, 2).Value
mesureP7 = Cells(12, 2).Value
mesureP8 = Cells(13, 2).Value

tab1 = Split(mesureP1, ",")
tab2 = Split(mesureP2, ",")
tab3 = Split(mesureP3, ",")
tab4 = Split(mesureP4, ",")
tab5 = Split(mesureP5, ",")
tab6 = Split(mesureP6, ",")
tab7 = Split(mesureP7, ",")
tab8 = Split(mesureP8, ",")

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

mesureG1 = Cells(6, 3).Value
mesureG2 = Cells(7, 3).Value
mesureG3 = Cells(8, 3).Value
mesureG4 = Cells(9, 3).Value
mesureG5 = Cells(10, 3).Value
mesureG6 = Cells(11, 3).Value
mesureG7 = Cells(12, 3).Value
mesureG8 = Cells(13, 3).Value

tabG1 = Split(mesureG1, ",")
tabG2 = Split(mesureG2, ",")
tabG3 = Split(mesureG3, ",")
tabG4 = Split(mesureG4, ",")
tabG5 = Split(mesureG5, ",")
tabG6 = Split(mesureG6, ",")
tabG7 = Split(mesureG7, ",")
tabG8 = Split(mesureG8, ",")

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

mesureD1 = Cells(6, 4).Value
mesureD2 = Cells(7, 4).Value
mesureD3 = Cells(8, 4).Value
mesureD4 = Cells(9, 4).Value
mesureD5 = Cells(10, 4).Value
mesureD6 = Cells(11, 4).Value
mesureD7 = Cells(12, 4).Value
mesureD8 = Cells(13, 4).Value

tabD1 = Split(mesureD1, ",")
tabD2 = Split(mesureD2, ",")
tabD3 = Split(mesureD3, ",")
tabD4 = Split(mesureD4, ",")
tabD5 = Split(mesureD5, ",")
tabD6 = Split(mesureD6, ",")
tabD7 = Split(mesureD7, ",")
tabD8 = Split(mesureD8, ",")

tabP = Split(Join(tableTest1, ",") & "," & Join(tableTest2, ",") & "," & Join(tableTest3, ",") & "," & Join(tableTest4, ",") & "," & Join(tableTest5, ",") & "," & Join(tableTest6, ",") & "," & Join(tableTest7, ",") & "," & Join(tableTest8, ","), ",")

tabG = Split(Join(tableTestG1, ",") & "," & Join(tableTestG2, ",") & "," & Join(tableTestG3, ",") & "," & Join(tableTestG4, ",") & "," & Join(tableTestG5, ",") & "," & Join(tableTestG6, ",") & "," & Join(tableTestG7, ",") & "," & Join(tableTestG8, ","), ",")

tabD = Split(Join(tableTestD1, ",") & "," & Join(tableTestD2, ",") & "," & Join(tableTestD3, ",") & "," & Join(tableTestD4, ",") & "," & Join(tableTestD5, ",") & "," & Join(tableTestD6, ",") & "," & Join(tableTestD7, ",") & "," & Join(tableTestD8, ","), ",")

End Sub


Je ne sais pas si les Split sont bons, je veux que toutes les valeurs s'affichent en ligne.

Merci d'avance !
 
Re : erreur 13 "incompatibilité de type" où ?

Bonjour,

Je sais pas si ça peut aider mais au niveau des déclarations : Il faut préciser le type de chaque variable

Ici :

Code:
Dim tab1() As String, tab2() As String, tab3() As String, tab4() As String, tab5() As String, tab6() As String, tab7() As String, tab8() As String

Sinon elles se déclarent en Variant qui est le type par défaut.

Par ailleurs essaie justement sans préciser de type, ça devrait fonctionner
 
Re : erreur 13 "incompatibilité de type" où ?

Bonjour,
les split ne sont pas bon
exemple
tx = "aaa,zzz,777"
MsgBox Split(tx, ",")(0) 'renvoie aaa
MsgBox Split(tx, ",")(1) 'renvoie zzz
MsgBox Split(tx, ",")(2) 'renvoie 777
MsgBox Split(tx, ",") '''''bug

Pour ton tableau il faut travailler avec un tableau à 2 dimensions, sans fichier exemple impossible d'aller plus loin
Bruno
 
Re : erreur 13 "incompatibilité de type" où ?

Bonsoir,

Sans aller plus loin, je dirai juste :

Code:
tab1 = Split(mesureP1, ",")
.....
.....

Et pour finir :

Code:
tabP = Split(Join(tableTest1, ",") & .......

C'est tab1, ou c'est tableTest1? (et pareil pour tous les autres tableaux....)

Bonne soirée
 
Re : erreur 13 "incompatibilité de type" où ?

Bonjour à tous.


[table="width: 100%, class: grid, align: left"]
[tr]
[td]
BON​
[/td]
[td]
MAUVAIS​
[/td]
[/tr]
[tr]
[td]
Code:
Sub split1() 'BON
Dim s$, x
s = "ab c def g    hi"
x = split(s)
End Sub
[/td]
[td]
Code:
Sub split3() 'MAUVAIS
Dim s$, x()
s = "ab c def g    hi"
x = split(s)
End Sub
[/td]
[/tr]
[tr]
[td]
Code:
Sub split2() 'BON
Dim s$, x As Variant
s = "ab c def g    hi"
x = split(s)
End Sub
[/td]
[td]
Code:
Sub split4() 'MAUVAIS
Dim s$, x As String
s = "ab c def g    hi"
x = split(s)
End Sub
[/td]
[/tr]
[tr]
[td][/td]
[td][/td]
[/tr]
[tr]
[td]
Code:
Sub join1() 'BON
Dim s$, x, y
s = "ab c def g    hi"
x = split(s)
y = Join(x)
End Sub
[/td]
[td][/td]
[/tr]
[tr]
[td]
Code:
Sub join2() 'BON
Dim x, y
x = Array("ab", "c", "def", "g", "", "", "", "hi")
y = Join(x)
End Sub
[/td]
[td]
Code:
Sub join6() 'MAUVAIS
Dim x$(), y$
x = Array("ab", "c", "def", "g", "", "", "", "hi")
y = Join(x)
End Sub
[/td]
[/tr]
[tr]
[td]
Code:
Sub join3() 'BON
Dim x(), y
x = Array("ab", "c", "def", "g", "", "", "", "hi")
y = Join(x)
End Sub
[/td]
[td][/td]
[/tr]
[tr]
[td]
Code:
Sub join4() 'BON
Dim x(), y$
x = Array("ab", "c", "def", "g", "", "", "", "hi")
y = Join(x)
End Sub
[/td]
[td][/td]
[/tr]
[tr]
[td]
Code:
Sub join5() 'BON
Dim i&, u(), x$(), y$
u = Array("ab", "c", "def", "g", "", "", "", "hi")
ReDim x(UBound(u))
For i = 0 To UBound(u)
    x(i) = u(i)
Next
y = Join(x)
End Sub
[/td]
[td]
Code:
Sub join7() 'MAUVAIS
Dim i&, j&, u(), x$(), y$
u = Array("ab", "c", "def", "g", "", "", "", "hi")
ReDim x(UBound(u) \ 2, 1)
For i = 0 To UBound(u)
    x(i \ 2, i Mod 2) = u(i)
Next
y = Join(x)
End Sub
[/td]
[/tr]
[/table]


Bonne nuit.


ℝOGER2327
#7858


Mardi 10 Palotin 142 (Saint Forficule, Barnabite - fête Suprême Quarte)
10 Floréal An CCXXIII, 0,4593h - râteau
2015-W18-3T01:06:08Z
 
Re : erreur 13 "incompatibilité de type" où ?

Merci beaucoup pour vos réponses !

Voilà je vous ai mis mon programme en pièces jointes. La partie en question est tout en bas de la feuille 1 quand on est dans la page VBA, dans le Sub Tableau().

J'ai changer le nom de mes variables. Je vais essayer ce que vous m'avez conseiller en attendant de vos réponses, merci d'avance !
Sub Tableaux()

Dim tab1(), tab2(), tab3(), tab4(), tab5(), tab6(), tab7(), tab8() As String
Dim tabG1(), tabG2(), tabG3(), tabG4(), tabG5(), tabG6(), tabG7(), tabG8() As String
Dim tabD1(), tabD2(), tabD3(), tabD4(), tabD5(), tabD6(), tabD7(), tabD8() As String
Dim tabP(), tabG(), tabD() As Variant

mesureP1 = Cells(6, 2).Value
mesureP2 = Cells(7, 2).Value
mesureP3 = Cells(8, 2).Value
mesureP4 = Cells(9, 2).Value
mesureP5 = Cells(10, 2).Value
mesureP6 = Cells(11, 2).Value
mesureP7 = Cells(12, 2).Value
mesureP8 = Cells(13, 2).Value

tab1 = Split(mesureP1, ",")
tab2 = Split(mesureP2, ",")
tab3 = Split(mesureP3, ",")
tab4 = Split(mesureP4, ",")
tab5 = Split(mesureP5, ",")
tab6 = Split(mesureP6, ",")
tab7 = Split(mesureP7, ",")
tab8 = Split(mesureP8, ",")

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

mesureG1 = Cells(6, 3).Value
mesureG2 = Cells(7, 3).Value
mesureG3 = Cells(8, 3).Value
mesureG4 = Cells(9, 3).Value
mesureG5 = Cells(10, 3).Value
mesureG6 = Cells(11, 3).Value
mesureG7 = Cells(12, 3).Value
mesureG8 = Cells(13, 3).Value

tabG1 = Split(mesureG1, ",")
tabG2 = Split(mesureG2, ",")
tabG3 = Split(mesureG3, ",")
tabG4 = Split(mesureG4, ",")
tabG5 = Split(mesureG5, ",")
tabG6 = Split(mesureG6, ",")
tabG7 = Split(mesureG7, ",")
tabG8 = Split(mesureG8, ",")

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

mesureD1 = Cells(6, 4).Value
mesureD2 = Cells(7, 4).Value
mesureD3 = Cells(8, 4).Value
mesureD4 = Cells(9, 4).Value
mesureD5 = Cells(10, 4).Value
mesureD6 = Cells(11, 4).Value
mesureD7 = Cells(12, 4).Value
mesureD8 = Cells(13, 4).Value

tabD1 = Split(mesureD1, ",")
tabD2 = Split(mesureD2, ",")
tabD3 = Split(mesureD3, ",")
tabD4 = Split(mesureD4, ",")
tabD5 = Split(mesureD5, ",")
tabD6 = Split(mesureD6, ",")
tabD7 = Split(mesureD7, ",")
tabD8 = Split(mesureD8, ",")

tabP = Split(Join(tableTest1, ",") & "," & Join(tableTest2, ",") & "," & Join(tableTest3, ",") & "," & Join(tableTest4, ",") & "," & Join(tableTest5, ",") & "," & Join(tableTest6, ",") & "," & Join(tableTest7, ",") & "," & Join(tableTest8, ","), ",")
tabG = Split(Join(tableTestG1, ",") & "," & Join(tableTestG2, ",") & "," & Join(tableTestG3, ",") & "," & Join(tableTestG4, ",") & "," & Join(tableTestG5, ",") & "," & Join(tableTestG6, ",") & "," & Join(tableTestG7, ",") & "," & Join(tableTestG8, ","), ",")
tabD = Split(Join(tableTestD1, ",") & "," & Join(tableTestD2, ",") & "," & Join(tableTestD3, ",") & "," & Join(tableTestD4, ",") & "," & Join(tableTestD5, ",") & "," & Join(tableTestD6, ",") & "," & Join(tableTestD7, ",") & "," & Join(tableTestD8, ","), ",")

End Sub
 

Pièces jointes

Re : erreur 13 "incompatibilité de type" où ?

C'est bon ça marche niquel !

J'ai une question après si vous avez une idée... Du coup je récupère toutes mes valeurs par exemple pour tabP je récupère 64 valeurs qui correspondent aux valeurs de température de mes 64 capteurs de plancher. Or là elles sont toutes en ligne ou en colonne je ne sais pas.

Je souhaiterai les mettre dans un tableau 8x8 à partir de ce tableau 1x64, afin que mes valeurs soient dans l'ordre suivant :

1 9 17 25 33 41 49 57
2 10 18 26 34 42 50 58
3 11 19 27 35 43 51 59
4 12 20 28 36 44 52 60
5 13 21 29 37 45 53 61
6 14 22 30 38 46 54 62
7 15 23 31 39 47 55 63
8 16 24 32 40 48 56 64

et de même pour les deux autres parois qui ont 104 capteurs chacune, tabG tabD, en 8 colonnes et 13 lignes.

merci d'avance !
 
Dernière édition:
Re : erreur 13 "incompatibilité de type" où ?

avec :
Range("A15:BL15").Value = tabP

J'obtiens bien mes 64 valeurs en ligne affichées sur ma feuille n°1 excel. Maintenant je voudrai modifier mon tableau comme ci-dessus des idées ? 🙁

J'ai pensais a utiliser LBound et UBound, et genre pour un i = 1 to 8 ( pour parcourir les colonnes ), dire que de LBound à LBound + 7 ça ira dans la première colonne ( donc i = 1 )
Ensuite on incrémente, pour i = 2 , de LBound + 8 à LBound + 15 ça ira dans la seconde colonne etc ...

Mais je n'arrive pas à le transcrire en VBA 😕
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour