Souci de conversion de code 2007 vers 2013

Souci de conversion de code 2007 vers 2013 - VB/VBA/VBS - Programmation

Marsh Posté le 08-12-2015 à 19:03:17    

Bonsoir
J'avais excel 2007 sur mon ancien PC
Maintenant j'ai changé de PC. 2007 c'est moche et j'ai plus la licence, j'ai préféré prendre une licence 2013 pour mon nouveau PC.
Seulement j'ai une fonction importante dans mes macros VBA qui a disparu
Le but de cette macro c'est de prendre en entrée plein de données (des vecteurs VBA ou des vecteurs de cellule) et d'en faire des trucs.
Cette macro ne fonctionne plus sur ma nouvelle version de excel...
J'ai essayé d'investiguer d'où venait le problème.
Apparemment, c'est juste au moment de lire les valeurs que le code a du mal.
 
Avant on faisait ça :
  i = 0
 For Each valeur In abscisses
    xx(i) = valeur.Value
   i = i + 1
Next valeur
 
Sauf que maintenant dans mon abscisses (qui est par exemple un range("A1:A10" )) il n'y a plus de value. Il y a un value2 qui est une matrice, ici value2(1,1) à value2(10,1)
 
Comment faire pour refaire marcher ce code ?
J'ai évidemment essayé de remplacer le .value par un .value2(i+1,1), mais ça n'a pas marché...
 
Merci pour votre aide

Reply

Marsh Posté le 08-12-2015 à 19:03:17   

Reply

Marsh Posté le 09-12-2015 à 11:38:17    

Bonjour,  
 
Je pencherais plutôt par une modification de l'affection de ta donnée valeur.
Si ton Range est remplacé par une matrice, c'est peut-être le type de donnée que tu utilise qui n'est plus le bon.  
 
Comment sont déclarés et alimentés valeur et abscisses ?
 
En complément, un peu de lecture : https://support.microsoft.com/en-us/kb/213719


Message édité par Chelmi18 le 09-12-2015 à 11:40:05
Reply

Marsh Posté le 09-12-2015 à 17:05:05    

Normalement, le code devrait fonctionner si tu lui mets deux vecteurs (matrice 1xn) ou bien si tu lui mets deux range.
En fait il teste le type de donnée, et si c'est un type range il rentre dans la partie de code qui me pose problème.
 
On fait mafonction(abscisses,ordonnées,bidule)
et ensuite on déclare xx de la bonne taille (taille de abscisses - 1) et on met le bout de code que j'ai posté ci haut.

Reply

Sujets relatifs:

Leave a Replay

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