Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

danielco

XLDnaute Accro
Bonjour,

Comme tu travailles en base 0, il faut ajouter 1 aux valeurs de UBound :

VB:
Feuil1.[E1].Resize(UBound(tblocombinaison, 1) + 1, UBound(tblocombinaison, 2) + 1).Value2 = tblocombinaison

Cordialement.

Daniel
 

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:
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…