Tableau à commencer à l'indice 0

Tableau à commencer à l'indice 0 - VB/VBA/VBS - Programmation

Marsh Posté le 07-12-2006 à 17:53:29    

Bonjour,
 
Je veux insérer des données dans un tableau à partir d'une feuille excel (sans parcourir toute la feuille) et que le 1er indice de mon tableau soit TabAll(0,0) et non TabAll(1,1)
 
En parcourant ma feuille :

Code :
  1. Dim TabAll(9, 9) as variant
  2. For i = 1 To 10
  3.     For j = 1 To 10
  4.         TabAll(j - iBegTab, i - 1) = xlwks_bdd.Cells(j, i).Value
  5.     Next
  6. Next


Dans ce cas là TabAll(0,0) est bien la 1ere cellule de ma feuille. Mais là j'ai scanné l'ensemble de ma feuille (chose que j'aimerai éviter)
 
Sans sacnner la feuille, je dois déclarer un tableau avec une ligne de plus et une colonne de plus car le TabAll commencera à TabAll(1,1)
 

Code :
  1. Dim TabAll(10, 10)
  2. With xlwks_bdd
  3.    
  4.    TabAll = .Range(.Cells(1, 1), .Cells(10, 10))
  5. End With


 
Avec cette méthode TabAll(0,0) provoque une erreur car ce tableau commence à TabAll(1,1)
J'ai esseyé d'écrire "Option Base 0" mais cela n'a rien changé. tabAll commence toujours à la ligne 1
 
En éspérant avoir était clair dans mes explications...
merci

Reply

Marsh Posté le 07-12-2006 à 17:53:29   

Reply

Marsh Posté le 07-12-2006 à 17:59:27    

C'est si grave que ça commence à 1 ?

Reply

Marsh Posté le 07-12-2006 à 18:01:48    

Oui car y a tt un programme qui "oblige" que le tableau commence à 1. et de plus tt les combobox, listbox commence à 0. donc ca évite de s'embrouiller

Reply

Marsh Posté le 07-12-2006 à 18:07:23    

Mouais... :D :D Y'a plus grave comme problème je crois

Reply

Marsh Posté le 08-12-2006 à 10:08:47    

Oui, de toute facon un pb informatique n'est jamais grave. ce n'est qu'un programme.
Mon pb c'est que dans le programme que j'ai récupéré je dois avoir environ une dizaine de tableaux qui commencent tous à l'indice 0. et un de ces tableaux comme dans le 1er post est pris en scannant l'intégralité d'une feuille excel (cette procédure de scannage est exécutée environ 150 fois dans le programme...donc assez long car les pages excel sont bien fournies).  
Donc si je change la dimension de mon tableau en le faisant commencant à 1, alors je dois changer tout mes tableaux aussi, tt les conditions et ca sera une uzine à gaz.

Reply

Marsh Posté le 08-12-2006 à 10:29:42    

FlorentG a écrit :

Mouais... :D :D Y'a plus grave comme problème je crois


 
Y a plus grave, mais si ça rend plus maintenable ça mérite que l'on s'y intéresse je pense.
C'est un peu comme si l'on disait (ce que j'entends régulièrement) : "oui ma fonction fait 800 lignes, mais elle marche donc c'est pas grave"...

Reply

Marsh Posté le 08-12-2006 à 10:49:33    

ok merci pour vos conseils. Ma question n'est pas qu'elle est la meilleure solution pour maintenir mon programme (car pour ca il faut connaitre l'ensemble du projet) mais ma question reste toujours la même comment, pour mon programme ou pour un autre, indexé un tableau à 0 (comme dans tout les languages...) quand on lui indique une plage de cellules.

Reply

Sujets relatifs:

Leave a Replay

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