VBA : Transférer une matrice dans un tableur Excel

VBA : Transférer une matrice dans un tableur Excel - VB/VBA/VBS - Programmation

Marsh Posté le 02-04-2012 à 09:13:31    

Bonjour à tous,

 

Je travail sur un petit projet qui a pour but de récupérer des information dans Autocad (fameux outil de DAO) et de les transférer dans un tableur Excel.

 

Pour se faire, j'ai déclarer un matrice sous cette forme :

 

Dim matrix(100,100) As Variant

 

Puis je remplis cette matrice avec des Strings et des Integer via une commande qui récupère des informations dans Autocad. Jusque là tout marche à priori sans soucis, par contre quand j'essaye de copier les valeurs de cette matrice dans Excel, via la commande :

 

wsExcel1.Cells(i,j).value=matrix(i,j)

 

J'ai ici une erreur 1004 : Erreur définie par l'application ou par l'objet

 

Donc ma question est : comment transférer les valeurs de cette matrice dans Excel ?

 

Le code complet est disponible ici : http://www.pastebay.net/314370

 

L'erreur se trouve ligne 87

  

Merci d'avance et bonne journée.


Message édité par Dispix le 02-04-2012 à 09:36:58
Reply

Marsh Posté le 02-04-2012 à 09:13:31   

Reply

Marsh Posté le 02-04-2012 à 09:33:38    

Bonjour,
 
Attention, tu as "Dim matrix" et après "=matrice".
 
Sinon, tu peux essayer :

Code :
  1. wsExcel1.Range("A1:CV100" ) = matrix


(pas testé)


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
Reply

Marsh Posté le 02-04-2012 à 09:36:29    

vave a écrit :

Bonjour,

 

Attention, tu as "Dim matrix" et après "=matrice".

 

Sinon, tu peux essayer :

Code :
  1. wsExcel1.Range("A1:CV100" ) = matrix


(pas testé)

 

Pardon, oui effectivement c'est juste une erreur de "recopiage", je corrige ça et j'essaye ta technique.

 

Edit : non ça ne marche pas hélas :( Toujours une erreur 1004 mais cette fois le texte est : "La méthode 'Range' de l'object '_Worksheet' a échoué"


Message édité par Dispix le 02-04-2012 à 09:38:55
Reply

Marsh Posté le 02-04-2012 à 11:58:07    

Bon, je reviens vers vous au cas où ça peut servir à quelqu'un, car j'ai trouvé l'erreur qui faisait planter mon programme :
 
Dans les lignes :
 

Code :
  1. For i = 0 To 99
  2.     For j = 0 To 99
  3.         wsExcel1.Cells(i, j).Text = matrix(i, j)
  4.     Next
  5. Next


 
L'erreur viens du fait qu'on cherche à faire appel à la case (0,0) de Excel, qui n'existe pas (on commence à (1,1)).
 
Erreur à la con en somme ^^'

Reply

Sujets relatifs:

Leave a Replay

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