|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : août 2011 Messages : 8 ![]() |
Novice en VBA je rencontre une erreur qui semblerait assez classique mais a laquelle je ne trouve pas de solution. Dans mon code, a chaque assignation de variable lorsque je compile, je me retrouve ac le message d erreur: "SUBSCRIPT OUT OF RANGE".
Mon code est celui-ci: Code :
D'autre part, dans ma derniere boucle If, la commande else GoTo Line66 n a pas l'air de marcher de cette facon. Quelqu'un connait il la synthaxe correcte? Merci d avance a tous |
||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 885 ![]() |
Bonjour,
Comment et ou sont déclaré les variables C et Temp? A noter que si la déclaration ne stipule pas le nombre de dimension, il faudra redimensionner la variable à chaque ajout de d'une dimension Citation:
__________________
Jérôme Citation:
nous encouragera.Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
|
||
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : août 2011 Messages : 8 ![]() |
Bonjour,
Tout d'abord merci de votre reponse. Je n'ai pas recopie la declaration de mes variables mais je les ai declarees de cette maniere: Code :
Line66 est le numero de la ligne correspondant a ma boucle sur la variable t de 1 a TT: Je voudrais que ma ligne de code Else: GoTo Line66 me renvoie a la ligne For t = 1 To TT en fait Merci Jai rajoute les 2 lignes de code suivantes pour dimensionner mes tableaux C et temp mais l erreur persiste: |
||
|
|
00
|
|
|
#4 | |||||
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 885 ![]() |
Citation:
Code :
Citation:
__________________
Jérôme Citation:
nous encouragera.Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
|
|||||
|
|
00
|
|
|
#5 |
![]() ![]() |
Bonjour,
Tu as initialisé tes 2 tableaux jusqu'à NS puis NT sur la seconde dimension et tu les parcours jusqu'à NS puis TT. Autre chose : les indices des tableaux commencent à 1 en VBA.
__________________
Cordialement, Christophe Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche |
|
|
00
|
|
|
#6 | ||
|
Invité de passage
![]() Inscription : août 2011 Messages : 8 ![]() |
Jai utilise Option Base0 en en tete de mon code justement
Jai egalement corrige le NT au lieu du TT et c est bon l erreur a disparu! Apres de multiples autres erreurs, je rebute sur une: Jai une incompatibilite de type a la ligne de calcul de ma concentration: Code :
C(z, t) = deltaz ^ 2 / (D * deltat) * [C(z-1,t)-C(z-1,t-1)] + D / D * [2 * C(z-1, t) - C(z-2, t)] 'D/D because here this quotient is a constant but not in the next case Code :
Je ne dois pas declarer ma variable C() en double? Je ne comprends pas en quoi j essaie de convertir la variable C() en un autre type? Merci de votre aide precieuse |
||
|
|
00
|
|
|
#7 | |
![]() ![]() |
Bonjour,
Quelles sont les valeurs de tes nombres? Citation:
Est-ce que cela peut poser un problème ajouter des Doubles au carré => Doubles et des doubles? Peut-être en revanche, s'il y a un dépassement de capacité pour les valeurs auquel cas les multiplications et divisions entre elles de ces nombres peuvent donner un résultat erroné.
__________________
Cordialement, Christophe Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche |
|
|
|
00
|
|
|
#8 | ||||
|
Membre Expert
![]() Hervé SilveInscription : août 2010 Messages : 773 ![]() |
Bonjour,
Pourquoi utiliser Evaluate dans ta formule ? Code :
Code :
|
||||
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : août 2011 Messages : 8 ![]() |
Bonjour,
Effectivement c'etait l usage de la fonction evaluate qui posait probleme, avec les parentheses tout va bien! Merci Herve |
|
|
00
|
|
|
#10 | ||||||||
|
Office & Excel ![]() ![]() ![]() |
Salut.
Attention, ce que tu dis n'est pas exact. Par défaut, le premier indice d'un tableau est 0 Code :
Pour que l'indice commence à 1, il faut le spécifier explicitement, soit lors de la déclaration du tableau Code :
Code :
ou en ne précisant rien crée un tableau permettant l'entrée de 3 valeurs (0 à 2), alors qu'avec crée un tableau permettant l'entrée de 2 valeurs (1 à 2). Par contre, un tableau créé sur base d'une plage de cellules commence à 1 (même avec option base 0). Ainsi Code :
Voir le tuto de Ormonth et celui de SilkyRoad pour plus de détails.
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire) --------------- Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP Vous souhaitez rédiger pour DVP? Contactez-moi Amoureux de la langue française? Venez corriger nos ressources VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA... N'oubliez pas de VOTER (en bas à droite d'un message) --------------- |
||||||||
|
10
|
|
|
#11 | ||
|
Invité de passage
![]() Inscription : août 2011 Messages : 8 ![]() |
Bonjour tout le monde, je n'ai plus d'erreur dans mon programme mais il me manque le nom de la fonction qui me permettrait de faire en sorte que VBA retranscrive les valeurs des tableaux de mes fonctions C et Temp dans le classeur excel.
Quelqu un pourrait il me donner le nom de la fonction que je recherche, je ne la trouve pas. Merci Je voudrais en fait exporter mon tableau de valeurs C a 2 dimensions z et t dans le classeur excel. Je n ai pas trouve de fonction qui semble faire cela... Est que avec une instruction de ce genre la, je suis sur la bonne voie ou pas? Code :
|
||
|
|
00
|
|
|
#12 |
|
Office & Excel ![]() ![]() ![]() |
Tu dois affecter la variable array à une plage de mêmes dimensions.
Si ton tableau commence à l'indice 1, tu utiliseras le code suivant Code :
Range(Cells(1, 1), Cells(UBound(Tableau, 1), UBound(Tableau, 2))) = Tableau Code :
Range(Cells(1, 1), Cells(UBound(Tableau, 1) + 1, UBound(Tableau, 2) + 1)) = Tableau
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire) --------------- Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP Vous souhaitez rédiger pour DVP? Contactez-moi Amoureux de la langue française? Venez corriger nos ressources VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA... N'oubliez pas de VOTER (en bas à droite d'un message) --------------- |
|
00
|
|
|
#13 | ||
|
Membre Expert
![]() Hervé SilveInscription : août 2010 Messages : 773 ![]() |
Bonsoir,
Je n'ai pas pris la peine de lire en détail toute la discussion, mais quand tu veux coller un tableau dans une feuille tu peux faire comme ça (c'est un exemple très simpliste mais ça peut permettre de comprendre). Attention à faire correspondre la plage avec les dimensions du tableau : Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com