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

XL 2019 Tableau index vers valeur

Hoareau

XLDnaute Occasionnel
Bonjour
Le code si dessous me donne :
10 20 30 40
alors que je voudrais les index 2,4,6,8 de array value
merci
code:
Option Base 1

Sub Index_to_Value()

Dim Array_Index()
Dim Array_Value()
Dim Array_Destination()

Array_Index = Array(2, 4, 6, 8)
Array_Value = Array(10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
ReDim Array_Destination(UBound(Array_Index))

For i = LBound(Array_Index) To UBound(Array_Index)
Array_Destination(i) = Array_Value(i)
Next
[C10].Resize(, UBound(Array_Destination)) = Array_Destination


End Sub

code:
Option Base 1

Sub Index_to_Value()

Dim Array_Index()
Dim Array_Value()
Dim Array_Destination()

Array_Index = Array(2, 4, 6, 8)
Array_Value = Array(10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
ReDim Array_Destination(UBound(Array_Index))

For i = LBound(Array_Index) To UBound(Array_Index)
Array_Destination(i) = Array_Value(i)
Next


[C10].Resize(, UBound(Array_Destination)) = Array_Destination


End Sub
 

patricktoulon

XLDnaute Barbatruc
bonjour @mapomme
bah!!. ça permet de s’entraîner un peu avec index vba

j'imagine que dans la tète du demandeur 2 items identiques représentent deux items qui se suivent(items2=item1+1) et constitue dans le concept même une sorte de correction automatique
mais limite le champs d'action dans le concept
pas très pratique
 

Hoareau

XLDnaute Occasionnel
comme , je l'ai dit au départ, mon but c'est une fonction, les tableaux c'est plus rapide
j'ai plus de 5000 ligne à classer, en fonction de ce qu'il y dans destination,j'ai une autre procédure
les index, c'est un classement
il fallait que je vérifie, que les index, correspondaient aux valeurs, pour éviter les surprises
je sais, comment récupérer les index, qui correspondent à un top 5,10, je ne sais pas encore, ,mais ma procedure pour faire le avait un bug, résolut grace à vous
merci
 

patricktoulon

XLDnaute Barbatruc
re
si tu le dis
pour info
relis et corrige toi ,ca permettra aux intervenants de mieux te comprendre
ceci ci dessous pour moi ne veut rien dire
je sais, comment récupérer les index, qui correspondent à un top 5,10, je ne sais pas encore, ,mais ma procedure pour faire le avait un bug, résolut grace à vous
merci
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Il y a une Sub IndexerParFusions(TIdx() As Long, TDon(), ParamArray ColOrd() As Variant) d'indexation dans cet outil.
La table index à constituer doit être un tableau dynamique de Long.
Attention, c'est un précurseur de .xlam qui demande à s'installer en tant que tel. Une fois installé, son projet VBA GigIdx peut être coché dans les références de celui d'un classeur utilisateur.
 

Pièces jointes

  • GigIdx.xlsm
    98.5 KB · Affichages: 13

Dranreb

XLDnaute Barbatruc
Exemple d'utilisation :
VB:
Function TopN(ByVal Src, ByVal Col As Long, ByVal NTop As Long) As Variant()
   Dim TDon(), TIdx() As Long, LDon As Long, TRés(), LRés As Long, C As Long
   If TypeOf Src Is Range Then TDon = Src.Value Else TDon = Src
   GigIdx.IndexerParFusions TIdx, TDon, -Col
   ReDim TRés(1 To NTop, 1 To UBound(TDon, 2))
   For LRés = 1 To NTop
      LDon = TIdx(LRés)
      For C = 1 To UBound(TDon, 2)
         TRés(LRés, C) = TDon(LDon, C): Next C, LRés
   TopN = TRés
   End Function
 

Hoareau

XLDnaute Occasionnel
j'ai eu plus de réponse, que je n'en attendais
je croyais expliquer, en fait je n'ai que compliquer
je ne demandais plus rien, la réponse je l'ai eu
quand, je me suis rendu compte, qu'il manquait quelque chose après le....,le message était parti, c'est vrai que je l'ai fait un peu vite
comme, je ne demandais plus rien, je n'ai plus fait attention et considéré, le sujet clos
en tout cas merci, d'avoir trouver la solution
je remercie, aussi Dranreb pour son apport, je vais essayer de comprendre
cela m'ennuie, que cela vous ai contrarié
 

Hoareau

XLDnaute Occasionnel
Bonjour
J'ai hésité, a représenter cette demande
Certaines valeurs ne correspondant pas pour certaines lignes
Rouge faux Bleu ok
Fichier joint

merci

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