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

Microsoft 365 tableau <>array

thenesol

XLDnaute Junior
bonjour à tous

je pense que le problème posé, si ce n'est un faux problème, est assez basique :

j'ai un tableau excel
je le charge dans un array pour faire diverses opérations,
quand je dois le retransférer dans mon tableau excel initial, comment m'assurer que les lignes iront aux bons endroits du tableau ?
y a t il une méthode particulière ?
je pensais importer dans l'array les numéros de lignes

et le problème se corse si rajout ou suppression de lignes

merci...
 

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Si le tableau et l'Array doivent correspondre à 100 %, est-ce qu'il ne suffit pas de vider le tableau avant d'y déverser l'Array.
 

Dranreb

XLDnaute Barbatruc
En principe dans un tableau Excel on emploie des formules à références structurées identiques à toutes les lignes. Il faut affecter le tableau dynamique seulement aux valeurs de colonnes constantes et ne pas toucher les formules.
 

thenesol

XLDnaute Junior
bien sur que les lignes ont les mêmes formules
et certaines colonnes ne sont pas calculées (valeurs fixes)

je peux avoir besoin de formater (p. ex surligner) certaines cellules "manuellement" pour diverses raisons : donc lorsque je reimporte avec Application.Transpose il se peut que ces formats ne s'appliquent pas aux bonnes lignes, si l'array a été trié, non ?
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous ,
Il faut trier le tableau directement sur la feuille Excel et pas au niveau de l'array en mémoire (l'array n'a pas la composante Format des cellules).

On pourrait aussi faire :
  • copier le tableau Tableau Structuré source sur une feuille auxilliaire (on appelle ce nouveau TS txAux)
  • ajouter la ligne du tableau structuré source dans une colonne supplémentaire de tsAux
  • travailler sur l'array de tsAux (yc le tri)
  • puis retransférer les résultats de l'array dans tsAux
  • Boucler sur les lignes de tsAux pour y copier le format de la ligne source (dont le numéro est dans la dernière colonne)
  • recopier le tsAux (sauf la dernière colonne) sur le tableau source
  • supprimer la feuille auxiliaire
  • se verser un pastaga pour récupérer de tout le codage "Usine à gaz" qu'on a fait alors qu'en appliquant la 1ère méthode, tout est plus aisée et rapide.
 

patricktoulon

XLDnaute Barbatruc
re
Bonjour à tous
mais qui a eu l'idée de travailler sur un array copie d'un TS ?
un TS a des colonnes voir même des colonnes nomées des lignes (listrows)
je ne vois pas l'intérêt de traviller par un array passerelle
un TS a tout les outils qu'il faut
  1. ajouter une ligne (a un endroit precis ou au debut ou a la fin)
  2. supprimer une ligne(ou qu'elle soit)
  3. modifier une ligne(ou qu'elle soit)
bref depuis 16 ans que ça existe
à quand le jour ou il n'y aura plus de range dans ce satané excel mais que des tableaux
oupss!! ca existe déjà (ACCES)

Bon d'accords je sort

 

Dranreb

XLDnaute Barbatruc
je peux avoir besoin de formater (p. ex surligner) certaines cellules "manuellement" pour diverses raisons
Il vaudrait mieux prévoir une colonne "observation" à la fin. Parce que s'il n'y a pas de règle, vous pourriez aussi bien ne plus vous rappeler pourquoi elle a été surlignée, et si ça dépend de conditions liées aux autres informations de la ligne vous pourriez l'assumer par des mises en formes conditionnelles.
 

thenesol

XLDnaute Junior
ok merci à tous

en fait, c'est pour connaître les limites de transférer des données excel (tableau ou pas) vers un array, pour traitements: il y a donc le risque de perdre les formats non automatiques

@patricktoulon : mon tableau fait 30 colonnes x 9000 lignes, et p.ex le tri "excel" sur certaines colonnes peut prendre plusieurs secondes
je pensais passer par un array parce que j'ai cru comprendre que c'était plus "rapide" que de traiter nativement dans excel avec vba.
mais si c'est faux, je suis tout à fait d'accord, et autant que je reste avec les fonctions Excel de VBA !!
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…