Valeur MAX pour chaque colonne d'un tableau
Résolu
debutante
-
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Application.worksheetfunction.max
- Tableau word - Guide
- Déplacer colonne excel - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Colonne word - Guide
je vous remercie du retour
en effet j'avais essayé cette syntaxe mais ca répond pas parfaitement a ce dont j'ai besoin car la on fait le max dans un worksheet
moi je souhaite applique ce max sur le tableau DiffTab() don,t j'ai mis le code dans mon topic
au fait ce tableau fait la difference entre les valeurs de 2TCD et donc dans une boucle
je souhaiterais avant de faire un affichage de faire le MAX de la valeur trouvé dans chaque colonne du tableau DIFFtab()
en partant de cela application.worksheetfunction ne marche pas :(
merci pour l'aide
A voir et adapter en fonction de ce que vous appelez colonne pour un tableau
'recheche max par colonne tableau
For i = 6 To prodLastLine - 1
For j = 2 To prodLastColumn - 1
If diffTab(i - 5, j - 1) >= Table_max(j - 1) Then
Table_max(j - 1) = diffTab(i - 4, j - 1)
End If
Next j Next i
End Sub
vous en pensez quoi ?
'On stocke dans un tableau les diff entre prod et test
Dim diffTab() As Double
Dim Table_max() As Double
ReDim diffTab(prodLastLine - 6, prodLastColumn - 2)
ReDim Table_max(prodLastLine - 6, prodLastColumn - 2)
Erase Table_max
For i = 6 To prodLastLine - 1
For j = 2 To prodLastColumn - 1
diffTab(i - 5, j - 1) = Abs(prodTab(i - 5, j - 1) - testTab(i - 5, j - 1))
Next j
Next i
'recheche max par colonne tableau
For i = 6 To prodLastLine - 1
For j = 2 To prodLastColumn - 1
If diffTab(i - 4, j - 1) >= diffTab(i - 5, j - 1) Then
Table_max(i - 5, j - 1) = diffTab(i - 4, j - 1) ' erreur a ce niveau
End If
Next j
Next i
'Il reste à afficher le tout dans la feuille GENERAL
Dim generalWorksheet As Worksheet
Set generalWorksheet = ThisWorkbook.Worksheets("GENERAL")
generalWorksheet.Select
generalWorksheet.Range("B2").Resize(UBound(Table_max, 1), UBound(Table_max, 2)) = Table_max
generalWorksheet.Range("B1").Resize(1, UBound(ccyTab)) = ccyTab
generalWorksheet.Range("A2").Resize(UBound(scenarioTab), 1) = Application.Transpose(scenarioTab)
End Sub
du coup il me mets un msg dérreur 9 : l'indice n'appartient pas à la sélection
vous auriez une idée d'ou peut venir une erreur pareil svp
merci
pourquoi
ReDim Table_max(prodLastLine - 6, prodLastColumn - 2)
alors que pour moi
ReDim Table_max(prodLastLine - 6) suffit !!!!!!!
l'indice n'appartient pas à la sélection Sur quelle ligne ???
A+
j'ai fais le ReDim Table_max(prodLastLine - 6, prodLastColumn - 2) après l'affichage de l'erreur
car j'ai pensée que le tableau de resultat devrait etre de 2dimensions et contient plusieurs colonnes
la table initiale difftab() ressemble a cela :
devise / eur / dollars ..... ...... ....
scenarioID1 / 156 / 83
scenarioID2 / 25 / 90
scenarioID3 / 14 / 55
scenarioID4 / 96 / 30
scenarioID5 / 145 / 42
scenarioID6 / 2 / 13
..... ... .... /
..... ... ...
..... .... ..
scenarioID19 / 654 / 19
sinon l'erreur s'affiche au niveau de la ligne suivante :
'recheche max par colonne tableau
For i = 6 To prodLastLine - 1
For j = 2 To prodLastColumn - 1
If diffTab(i - 4, j - 1) >= diffTab(i - 5, j - 1) Then
Table_max(i - 5, j - 1) = diffTab(i - 4, j - 1) ' erreur a ce niveau End If
Next j
Next i
meme avec table_max(j-1) l'erreur s'affiche
merci bcp