Autres XL2007 Ecriture rapide Tblo dans feuille

erics83

XLDnaute Impliqué
Bonjour,

J'ai essayé de reprendre une écriture rapide qu'utilise parfois JB pour écrire rapidement un Tblo dans une feuille :
VB:
Feuil1.[E1].Resize(UBound(tblocombinaison, 1), UBound(tblocombinaison, 2)).Value2 = tblocombinaison
J'ai essayé de le reproduire, mais cela ne fonctionne pas...alors que j'ai un tableau à 2 dimensions comme JB...et je ne comprends où se situe mon erreur (j'ai fait des essais en mettant 3, en isolant le Ubound, mais j'ai à chaque fois une erreur....). Cela doit être tout simple, mais.....je n'y arrive pas....
Je mets un classeur test en PJ....

Merci pour votre aide,
 

Pièces jointes

  • Classeur2.xlsm
    12.6 KB · Affichages: 11

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @erics83, @danielco ;)

Attention !

Excel a trois possibilités :
  • soit le premier indice d'une dimension d'un tableau est 0
  • soit le premier indice d'une dimension d'un tableau est 1
  • soit le premier indice d'une dimension d'un tableau est ce qu'on veut

On peut aussi forcer l'une des deux possibilités en utilisant en début de module :
  • Option Base 0 (les tableaux commencent pour chaque dimension leur indice à 0)
  • Option Base 1 (les tableaux commencent pour chaque dimension leur indice à 1)

Une autre manière de faire (et c'est celle que j'utilise) :
Mes tableaux sont déclarés avec la mention explicite des bornes (c'est donc indépendant de la valeur de Option base).
  • Dim a(1 To 20) ou bien Dim a(0 to 19)
  • ReDim tblocombinaison(1 to n, 1 to 3) ou bien ReDim tblocombinaison(0 to n, 0 to 3)
  • ReDim r(-5 To 4, 48 To 95)

Il faut savoir qu'avec certaines instructions, les bornes se fichent de Option Base :
  • t =split("abc def ghi") retourne dans tous les cas un tableau de base 0
  • t = range("a10:e99").value retourne dans tous les cas un tableau de base 1
 
Dernière édition:

Statistiques des forums

Discussions
312 294
Messages
2 086 899
Membres
103 404
dernier inscrit
sultan87