Pour obtenir la valeur maximale d'un champ dans un tableau croisé dynamique :
PivotTables(1) : tu peux remplacer l'index 1 par le nom de ton TCD
il en va de même pour PivotItems(1) -> l'index que tu peux remplacer
par le nom du champ
With Feuil1 ' Nom de la feuille à adapter
With .PivotTables(1).DataPivotField.PivotItems(1)
Msgbox Application.Max(.DataRange)
End With
End With
"fetnat" a écrit dans le message de news:
u44U0%
Bonjour,
Dans un tableau dynamique de 30 lignes par 3 colonnes :
Puis-je obtenir le maximum d'une colonne (ici la troisième colonne) dans
un tableau dynamique ?
par un truc du genre iMaxecart = Application.Max(tabtlr(..., 3))
iPt = 30
ReDim tabtlr(1 To iPt, 1 To 3)
For i = LBound(tabtlr) To UBound(tabtlr)
tabtlr(i, 1) = Cells(i + 11, 6) ' col 1 : le prix
tabtlr(i, 2) = Range("R1") * i + Range("S1") ' col 2 : Y
tabtlr(i, 3) = Abs(tabtlr(i, 1) - tabtlr(i, 2)) ' col 3 : l'écart
Debug.Print 1; tabtlr(i, 1); tabtlr(i, 2); tabtlr(i, 3)
Next i
iMaxecart = Application.Max(tabtlr(..., 3)) 'LIGNE DOUTEUSE
Ou bien dois-je faire une comparaison à chaque boucle pour voir si la
valeur est supérieure aux précédentes et la stocker en cas de maxi ?
Merci pour l'aide
fetnat
Pour obtenir la valeur maximale d'un champ dans un tableau croisé dynamique :
PivotTables(1) : tu peux remplacer l'index 1 par le nom de ton TCD
il en va de même pour PivotItems(1) -> l'index que tu peux remplacer
par le nom du champ
With Feuil1 ' Nom de la feuille à adapter
With .PivotTables(1).DataPivotField.PivotItems(1)
Msgbox Application.Max(.DataRange)
End With
End With
"fetnat" <fetnat@caramail.com> a écrit dans le message de news:
u44U0%23rfIHA.4760@TK2MSFTNGP06.phx.gbl...
Bonjour,
Dans un tableau dynamique de 30 lignes par 3 colonnes :
Puis-je obtenir le maximum d'une colonne (ici la troisième colonne) dans
un tableau dynamique ?
par un truc du genre iMaxecart = Application.Max(tabtlr(..., 3))
iPt = 30
ReDim tabtlr(1 To iPt, 1 To 3)
For i = LBound(tabtlr) To UBound(tabtlr)
tabtlr(i, 1) = Cells(i + 11, 6) ' col 1 : le prix
tabtlr(i, 2) = Range("R1") * i + Range("S1") ' col 2 : Y
tabtlr(i, 3) = Abs(tabtlr(i, 1) - tabtlr(i, 2)) ' col 3 : l'écart
Debug.Print 1; tabtlr(i, 1); tabtlr(i, 2); tabtlr(i, 3)
Next i
iMaxecart = Application.Max(tabtlr(..., 3)) 'LIGNE DOUTEUSE
Ou bien dois-je faire une comparaison à chaque boucle pour voir si la
valeur est supérieure aux précédentes et la stocker en cas de maxi ?
Merci pour l'aide
fetnat
Pour obtenir la valeur maximale d'un champ dans un tableau croisé dynamique :
PivotTables(1) : tu peux remplacer l'index 1 par le nom de ton TCD
il en va de même pour PivotItems(1) -> l'index que tu peux remplacer
par le nom du champ
With Feuil1 ' Nom de la feuille à adapter
With .PivotTables(1).DataPivotField.PivotItems(1)
Msgbox Application.Max(.DataRange)
End With
End With
"fetnat" a écrit dans le message de news:
u44U0%
Bonjour,
Dans un tableau dynamique de 30 lignes par 3 colonnes :
Puis-je obtenir le maximum d'une colonne (ici la troisième colonne) dans
un tableau dynamique ?
par un truc du genre iMaxecart = Application.Max(tabtlr(..., 3))
iPt = 30
ReDim tabtlr(1 To iPt, 1 To 3)
For i = LBound(tabtlr) To UBound(tabtlr)
tabtlr(i, 1) = Cells(i + 11, 6) ' col 1 : le prix
tabtlr(i, 2) = Range("R1") * i + Range("S1") ' col 2 : Y
tabtlr(i, 3) = Abs(tabtlr(i, 1) - tabtlr(i, 2)) ' col 3 : l'écart
Debug.Print 1; tabtlr(i, 1); tabtlr(i, 2); tabtlr(i, 3)
Next i
iMaxecart = Application.Max(tabtlr(..., 3)) 'LIGNE DOUTEUSE
Ou bien dois-je faire une comparaison à chaque boucle pour voir si la
valeur est supérieure aux précédentes et la stocker en cas de maxi ?
Merci pour l'aide
fetnat
Bonjour,
Dans un tableau dynamique de 30 lignes par 3 colonnes :
Puis-je obtenir le maximum d'une colonne (ici la troisième colonne) dans
un tableau dynamique ?
par un truc du genre iMaxecart = Application.Max(tabtlr(..., 3))
iPt = 30
ReDim tabtlr(1 To iPt, 1 To 3)
For i = LBound(tabtlr) To UBound(tabtlr)
tabtlr(i, 1) = Cells(i + 11, 6) ' col 1 : le prix
tabtlr(i, 2) = Range("R1") * i + Range("S1") ' col 2 : Y
tabtlr(i, 3) = Abs(tabtlr(i, 1) - tabtlr(i, 2)) ' col 3 : l'écart
Debug.Print 1; tabtlr(i, 1); tabtlr(i, 2); tabtlr(i, 3)
Next i
iMaxecart = Application.Max(tabtlr(..., 3)) 'LIGNE DOUTEUSE
Ou bien dois-je faire une comparaison à chaque boucle pour voir si la
valeur est supérieure aux précédentes et la stocker en cas de maxi ?
Merci pour l'aide
fetnat
Bonjour,
Dans un tableau dynamique de 30 lignes par 3 colonnes :
Puis-je obtenir le maximum d'une colonne (ici la troisième colonne) dans
un tableau dynamique ?
par un truc du genre iMaxecart = Application.Max(tabtlr(..., 3))
iPt = 30
ReDim tabtlr(1 To iPt, 1 To 3)
For i = LBound(tabtlr) To UBound(tabtlr)
tabtlr(i, 1) = Cells(i + 11, 6) ' col 1 : le prix
tabtlr(i, 2) = Range("R1") * i + Range("S1") ' col 2 : Y
tabtlr(i, 3) = Abs(tabtlr(i, 1) - tabtlr(i, 2)) ' col 3 : l'écart
Debug.Print 1; tabtlr(i, 1); tabtlr(i, 2); tabtlr(i, 3)
Next i
iMaxecart = Application.Max(tabtlr(..., 3)) 'LIGNE DOUTEUSE
Ou bien dois-je faire une comparaison à chaque boucle pour voir si la
valeur est supérieure aux précédentes et la stocker en cas de maxi ?
Merci pour l'aide
fetnat
Bonjour,
Dans un tableau dynamique de 30 lignes par 3 colonnes :
Puis-je obtenir le maximum d'une colonne (ici la troisième colonne) dans
un tableau dynamique ?
par un truc du genre iMaxecart = Application.Max(tabtlr(..., 3))
iPt = 30
ReDim tabtlr(1 To iPt, 1 To 3)
For i = LBound(tabtlr) To UBound(tabtlr)
tabtlr(i, 1) = Cells(i + 11, 6) ' col 1 : le prix
tabtlr(i, 2) = Range("R1") * i + Range("S1") ' col 2 : Y
tabtlr(i, 3) = Abs(tabtlr(i, 1) - tabtlr(i, 2)) ' col 3 : l'écart
Debug.Print 1; tabtlr(i, 1); tabtlr(i, 2); tabtlr(i, 3)
Next i
iMaxecart = Application.Max(tabtlr(..., 3)) 'LIGNE DOUTEUSE
Ou bien dois-je faire une comparaison à chaque boucle pour voir si la
valeur est supérieure aux précédentes et la stocker en cas de maxi ?
Merci pour l'aide
fetnat
Bonjour,
a = Evaluate("{1,2,3;4,5,6;7,8,9;10,11,12}") ' tableau à 2
dimensions
x = Application.Max(Application.Index(a, 2)) ' max de la 2 ligne
y = Application.Max(Application.Index(a, , 2)) ' max de la 2
colonne
JB
On 5 mar, 13:51, fetnat wrote:Bonjour,
Dans un tableau dynamique de 30 lignes par 3 colonnes :
Puis-je obtenir le maximum d'une colonne (ici la troisième colonne) da ns
un tableau dynamique ?
par un truc du genre iMaxecart = Application.Max(tabtlr(..., 3 ))
iPt = 30
ReDim tabtlr(1 To iPt, 1 To 3)
For i = LBound(tabtlr) To UBound(tabtlr)
tabtlr(i, 1) = Cells(i + 11, 6) ' col 1 : le prix
tabtlr(i, 2) = Range("R1") * i + Range("S1") ' col 2 : Y
tabtlr(i, 3) = Abs(tabtlr(i, 1) - tabtlr(i, 2)) ' col 3 : l'écart
Debug.Print 1; tabtlr(i, 1); tabtlr(i, 2); tabtlr(i, 3)
Next i
iMaxecart = Application.Max(tabtlr(..., 3)) 'LIGNE DOUTEUSE
Ou bien dois-je faire une comparaison à chaque boucle pour voir si la
valeur est supérieure aux précédentes et la stocker en cas de maxi ?
Merci pour l'aide
fetnat- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
a = Evaluate("{1,2,3;4,5,6;7,8,9;10,11,12}") ' tableau à 2
dimensions
x = Application.Max(Application.Index(a, 2)) ' max de la 2 ligne
y = Application.Max(Application.Index(a, , 2)) ' max de la 2
colonne
JB
On 5 mar, 13:51, fetnat <fet...@caramail.com> wrote:
Bonjour,
Dans un tableau dynamique de 30 lignes par 3 colonnes :
Puis-je obtenir le maximum d'une colonne (ici la troisième colonne) da ns
un tableau dynamique ?
par un truc du genre iMaxecart = Application.Max(tabtlr(..., 3 ))
iPt = 30
ReDim tabtlr(1 To iPt, 1 To 3)
For i = LBound(tabtlr) To UBound(tabtlr)
tabtlr(i, 1) = Cells(i + 11, 6) ' col 1 : le prix
tabtlr(i, 2) = Range("R1") * i + Range("S1") ' col 2 : Y
tabtlr(i, 3) = Abs(tabtlr(i, 1) - tabtlr(i, 2)) ' col 3 : l'écart
Debug.Print 1; tabtlr(i, 1); tabtlr(i, 2); tabtlr(i, 3)
Next i
iMaxecart = Application.Max(tabtlr(..., 3)) 'LIGNE DOUTEUSE
Ou bien dois-je faire une comparaison à chaque boucle pour voir si la
valeur est supérieure aux précédentes et la stocker en cas de maxi ?
Merci pour l'aide
fetnat- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
a = Evaluate("{1,2,3;4,5,6;7,8,9;10,11,12}") ' tableau à 2
dimensions
x = Application.Max(Application.Index(a, 2)) ' max de la 2 ligne
y = Application.Max(Application.Index(a, , 2)) ' max de la 2
colonne
JB
On 5 mar, 13:51, fetnat wrote:Bonjour,
Dans un tableau dynamique de 30 lignes par 3 colonnes :
Puis-je obtenir le maximum d'une colonne (ici la troisième colonne) da ns
un tableau dynamique ?
par un truc du genre iMaxecart = Application.Max(tabtlr(..., 3 ))
iPt = 30
ReDim tabtlr(1 To iPt, 1 To 3)
For i = LBound(tabtlr) To UBound(tabtlr)
tabtlr(i, 1) = Cells(i + 11, 6) ' col 1 : le prix
tabtlr(i, 2) = Range("R1") * i + Range("S1") ' col 2 : Y
tabtlr(i, 3) = Abs(tabtlr(i, 1) - tabtlr(i, 2)) ' col 3 : l'écart
Debug.Print 1; tabtlr(i, 1); tabtlr(i, 2); tabtlr(i, 3)
Next i
iMaxecart = Application.Max(tabtlr(..., 3)) 'LIGNE DOUTEUSE
Ou bien dois-je faire une comparaison à chaque boucle pour voir si la
valeur est supérieure aux précédentes et la stocker en cas de maxi ?
Merci pour l'aide
fetnat- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
a = Evaluate("{1,2,3;4,5,6;7,8,9;10,11,12}") ' tableau à 2
dimensions
b = Application.Index(a, 2) ' tableau à 1
dimension
MsgBox b(1)
c = Application.Index(a, , 2)
MsgBox c(1, 1)
JB
On 5 mar, 14:51, JB wrote:Bonjour,
a = Evaluate("{1,2,3;4,5,6;7,8,9;10,11,12}") ' tableau à 2
dimensions
x = Application.Max(Application.Index(a, 2)) ' max de la 2 ligne
y = Application.Max(Application.Index(a, , 2)) ' max de la 2
colonne
JB
On 5 mar, 13:51, fetnat wrote:Bonjour,
Dans un tableau dynamique de 30 lignes par 3 colonnes :
Puis-je obtenir le maximum d'une colonne (ici la troisième colonne) dans
un tableau dynamique ?
par un truc du genre iMaxecart = Application.Max(tabtlr(..., 3))
iPt = 30
ReDim tabtlr(1 To iPt, 1 To 3)
For i = LBound(tabtlr) To UBound(tabtlr)
tabtlr(i, 1) = Cells(i + 11, 6) ' col 1 : le prix
tabtlr(i, 2) = Range("R1") * i + Range("S1") ' col 2 : Y
tabtlr(i, 3) = Abs(tabtlr(i, 1) - tabtlr(i, 2)) ' col 3 : l'écart
Debug.Print 1; tabtlr(i, 1); tabtlr(i, 2); tabtlr(i, 3)
Next i
iMaxecart = Application.Max(tabtlr(..., 3)) 'LIGNE DOUTEUSE
Ou bien dois-je faire une comparaison à chaque boucle pour voir si la
valeur est supérieure aux précédentes et la stocker en cas de maxi ?
Merci pour l'aide
fetnat- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
a = Evaluate("{1,2,3;4,5,6;7,8,9;10,11,12}") ' tableau à 2
dimensions
b = Application.Index(a, 2) ' tableau à 1
dimension
MsgBox b(1)
c = Application.Index(a, , 2)
MsgBox c(1, 1)
JB
On 5 mar, 14:51, JB <boisgont...@hotmail.com> wrote:
Bonjour,
a = Evaluate("{1,2,3;4,5,6;7,8,9;10,11,12}") ' tableau à 2
dimensions
x = Application.Max(Application.Index(a, 2)) ' max de la 2 ligne
y = Application.Max(Application.Index(a, , 2)) ' max de la 2
colonne
JB
On 5 mar, 13:51, fetnat <fet...@caramail.com> wrote:
Bonjour,
Dans un tableau dynamique de 30 lignes par 3 colonnes :
Puis-je obtenir le maximum d'une colonne (ici la troisième colonne) dans
un tableau dynamique ?
par un truc du genre iMaxecart = Application.Max(tabtlr(..., 3))
iPt = 30
ReDim tabtlr(1 To iPt, 1 To 3)
For i = LBound(tabtlr) To UBound(tabtlr)
tabtlr(i, 1) = Cells(i + 11, 6) ' col 1 : le prix
tabtlr(i, 2) = Range("R1") * i + Range("S1") ' col 2 : Y
tabtlr(i, 3) = Abs(tabtlr(i, 1) - tabtlr(i, 2)) ' col 3 : l'écart
Debug.Print 1; tabtlr(i, 1); tabtlr(i, 2); tabtlr(i, 3)
Next i
iMaxecart = Application.Max(tabtlr(..., 3)) 'LIGNE DOUTEUSE
Ou bien dois-je faire une comparaison à chaque boucle pour voir si la
valeur est supérieure aux précédentes et la stocker en cas de maxi ?
Merci pour l'aide
fetnat- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
a = Evaluate("{1,2,3;4,5,6;7,8,9;10,11,12}") ' tableau à 2
dimensions
b = Application.Index(a, 2) ' tableau à 1
dimension
MsgBox b(1)
c = Application.Index(a, , 2)
MsgBox c(1, 1)
JB
On 5 mar, 14:51, JB wrote:Bonjour,
a = Evaluate("{1,2,3;4,5,6;7,8,9;10,11,12}") ' tableau à 2
dimensions
x = Application.Max(Application.Index(a, 2)) ' max de la 2 ligne
y = Application.Max(Application.Index(a, , 2)) ' max de la 2
colonne
JB
On 5 mar, 13:51, fetnat wrote:Bonjour,
Dans un tableau dynamique de 30 lignes par 3 colonnes :
Puis-je obtenir le maximum d'une colonne (ici la troisième colonne) dans
un tableau dynamique ?
par un truc du genre iMaxecart = Application.Max(tabtlr(..., 3))
iPt = 30
ReDim tabtlr(1 To iPt, 1 To 3)
For i = LBound(tabtlr) To UBound(tabtlr)
tabtlr(i, 1) = Cells(i + 11, 6) ' col 1 : le prix
tabtlr(i, 2) = Range("R1") * i + Range("S1") ' col 2 : Y
tabtlr(i, 3) = Abs(tabtlr(i, 1) - tabtlr(i, 2)) ' col 3 : l'écart
Debug.Print 1; tabtlr(i, 1); tabtlr(i, 2); tabtlr(i, 3)
Next i
iMaxecart = Application.Max(tabtlr(..., 3)) 'LIGNE DOUTEUSE
Ou bien dois-je faire une comparaison à chaque boucle pour voir si la
valeur est supérieure aux précédentes et la stocker en cas de maxi ?
Merci pour l'aide
fetnat- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour JB,
Il y a des choses qui ne s'invente pas ... Merci pour votre aide.
Votre premier exemple me laisse admiratif et il fonctionne bien.
Le deuxième exemple me laisse songeur.
J'essaye d'extrapoler pour mettre mon array tabtlr() dans l'evaluate
a = Evaluate(tabtlr())
Il me retourne le maxi qui se trouve en colonne 1.
les parenthèse il n'aime pas : a = Evaluate({tabtlr()}) erreur de comp il
Comment faire un evaluate d'un array defini par un nom et déjà rempli ?
Je pourrais alors utiliser application.index
Cordialement
fetnata = Evaluate("{1,2,3;4,5,6;7,8,9;10,11,12}") ' tableau à 2
dimensions
b = Application.Index(a, 2) ' tableau à 1
dimension
MsgBox b(1)
c = Application.Index(a, , 2)
MsgBox c(1, 1)
JB
On 5 mar, 14:51, JB wrote:Bonjour,
a = Evaluate("{1,2,3;4,5,6;7,8,9;10,11,12}") ' tableau à 2
dimensions
x = Application.Max(Application.Index(a, 2)) ' max de la 2 li gne
y = Application.Max(Application.Index(a, , 2)) ' max de la 2
colonne
JB
On 5 mar, 13:51, fetnat wrote:Bonjour,
Dans un tableau dynamique de 30 lignes par 3 colonnes :
Puis-je obtenir le maximum d'une colonne (ici la troisième colonne) dans
un tableau dynamique ?
par un truc du genre iMaxecart = Application.Max(tabtlr(..., 3))
iPt = 30
ReDim tabtlr(1 To iPt, 1 To 3)
For i = LBound(tabtlr) To UBound(tabtlr)
tabtlr(i, 1) = Cells(i + 11, 6) ' col 1 : le prix
tabtlr(i, 2) = Range("R1") * i + Range("S1") ' col 2 : Y
tabtlr(i, 3) = Abs(tabtlr(i, 1) - tabtlr(i, 2)) ' col 3 : l'écart
Debug.Print 1; tabtlr(i, 1); tabtlr(i, 2); tabtlr(i, 3)
Next i
iMaxecart = Application.Max(tabtlr(..., 3)) 'LIGNE DOUTEUSE
Ou bien dois-je faire une comparaison à chaque boucle pour voir si l a
valeur est supérieure aux précédentes et la stocker en cas de ma xi ?
Merci pour l'aide
fetnat- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour JB,
Il y a des choses qui ne s'invente pas ... Merci pour votre aide.
Votre premier exemple me laisse admiratif et il fonctionne bien.
Le deuxième exemple me laisse songeur.
J'essaye d'extrapoler pour mettre mon array tabtlr() dans l'evaluate
a = Evaluate(tabtlr())
Il me retourne le maxi qui se trouve en colonne 1.
les parenthèse il n'aime pas : a = Evaluate({tabtlr()}) erreur de comp il
Comment faire un evaluate d'un array defini par un nom et déjà rempli ?
Je pourrais alors utiliser application.index
Cordialement
fetnat
a = Evaluate("{1,2,3;4,5,6;7,8,9;10,11,12}") ' tableau à 2
dimensions
b = Application.Index(a, 2) ' tableau à 1
dimension
MsgBox b(1)
c = Application.Index(a, , 2)
MsgBox c(1, 1)
JB
On 5 mar, 14:51, JB <boisgont...@hotmail.com> wrote:
Bonjour,
a = Evaluate("{1,2,3;4,5,6;7,8,9;10,11,12}") ' tableau à 2
dimensions
x = Application.Max(Application.Index(a, 2)) ' max de la 2 li gne
y = Application.Max(Application.Index(a, , 2)) ' max de la 2
colonne
JB
On 5 mar, 13:51, fetnat <fet...@caramail.com> wrote:
Bonjour,
Dans un tableau dynamique de 30 lignes par 3 colonnes :
Puis-je obtenir le maximum d'une colonne (ici la troisième colonne) dans
un tableau dynamique ?
par un truc du genre iMaxecart = Application.Max(tabtlr(..., 3))
iPt = 30
ReDim tabtlr(1 To iPt, 1 To 3)
For i = LBound(tabtlr) To UBound(tabtlr)
tabtlr(i, 1) = Cells(i + 11, 6) ' col 1 : le prix
tabtlr(i, 2) = Range("R1") * i + Range("S1") ' col 2 : Y
tabtlr(i, 3) = Abs(tabtlr(i, 1) - tabtlr(i, 2)) ' col 3 : l'écart
Debug.Print 1; tabtlr(i, 1); tabtlr(i, 2); tabtlr(i, 3)
Next i
iMaxecart = Application.Max(tabtlr(..., 3)) 'LIGNE DOUTEUSE
Ou bien dois-je faire une comparaison à chaque boucle pour voir si l a
valeur est supérieure aux précédentes et la stocker en cas de ma xi ?
Merci pour l'aide
fetnat- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour JB,
Il y a des choses qui ne s'invente pas ... Merci pour votre aide.
Votre premier exemple me laisse admiratif et il fonctionne bien.
Le deuxième exemple me laisse songeur.
J'essaye d'extrapoler pour mettre mon array tabtlr() dans l'evaluate
a = Evaluate(tabtlr())
Il me retourne le maxi qui se trouve en colonne 1.
les parenthèse il n'aime pas : a = Evaluate({tabtlr()}) erreur de comp il
Comment faire un evaluate d'un array defini par un nom et déjà rempli ?
Je pourrais alors utiliser application.index
Cordialement
fetnata = Evaluate("{1,2,3;4,5,6;7,8,9;10,11,12}") ' tableau à 2
dimensions
b = Application.Index(a, 2) ' tableau à 1
dimension
MsgBox b(1)
c = Application.Index(a, , 2)
MsgBox c(1, 1)
JB
On 5 mar, 14:51, JB wrote:Bonjour,
a = Evaluate("{1,2,3;4,5,6;7,8,9;10,11,12}") ' tableau à 2
dimensions
x = Application.Max(Application.Index(a, 2)) ' max de la 2 li gne
y = Application.Max(Application.Index(a, , 2)) ' max de la 2
colonne
JB
On 5 mar, 13:51, fetnat wrote:Bonjour,
Dans un tableau dynamique de 30 lignes par 3 colonnes :
Puis-je obtenir le maximum d'une colonne (ici la troisième colonne) dans
un tableau dynamique ?
par un truc du genre iMaxecart = Application.Max(tabtlr(..., 3))
iPt = 30
ReDim tabtlr(1 To iPt, 1 To 3)
For i = LBound(tabtlr) To UBound(tabtlr)
tabtlr(i, 1) = Cells(i + 11, 6) ' col 1 : le prix
tabtlr(i, 2) = Range("R1") * i + Range("S1") ' col 2 : Y
tabtlr(i, 3) = Abs(tabtlr(i, 1) - tabtlr(i, 2)) ' col 3 : l'écart
Debug.Print 1; tabtlr(i, 1); tabtlr(i, 2); tabtlr(i, 3)
Next i
iMaxecart = Application.Max(tabtlr(..., 3)) 'LIGNE DOUTEUSE
Ou bien dois-je faire une comparaison à chaque boucle pour voir si l a
valeur est supérieure aux précédentes et la stocker en cas de ma xi ?
Merci pour l'aide
fetnat- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Sur cet exemple, Evaluate est utilisé seulement pour alimenter un
tableau a(,).
iMaxecart = Application.Max(Application.Index(tabtlr, ,3)) pour
obtenir le Max de la 3e colonne du tableau.
http://boisgontierjacques.free.fr/pages_site/tableaux.htm
JB
On 5 mar, 15:37, fetnat wrote:Bonjour JB,
Il y a des choses qui ne s'invente pas ... Merci pour votre aide.
Votre premier exemple me laisse admiratif et il fonctionne bien.
Le deuxième exemple me laisse songeur.
J'essaye d'extrapoler pour mettre mon array tabtlr() dans l'evaluate
a = Evaluate(tabtlr())
Il me retourne le maxi qui se trouve en colonne 1.
les parenthèse il n'aime pas : a = Evaluate({tabtlr()}) erreur de compil
Comment faire un evaluate d'un array defini par un nom et déjà rempli ?
Je pourrais alors utiliser application.index
Cordialement
fetnata = Evaluate("{1,2,3;4,5,6;7,8,9;10,11,12}") ' tableau à 2
dimensions
b = Application.Index(a, 2) ' tableau à 1
dimension
MsgBox b(1)
c = Application.Index(a, , 2)
MsgBox c(1, 1)
JB
On 5 mar, 14:51, JB wrote:Bonjour,
a = Evaluate("{1,2,3;4,5,6;7,8,9;10,11,12}") ' tableau à 2
dimensions
x = Application.Max(Application.Index(a, 2)) ' max de la 2 ligne
y = Application.Max(Application.Index(a, , 2)) ' max de la 2
colonne
JB
On 5 mar, 13:51, fetnat wrote:Bonjour,
Dans un tableau dynamique de 30 lignes par 3 colonnes :
Puis-je obtenir le maximum d'une colonne (ici la troisième colonne) dans
un tableau dynamique ?
par un truc du genre iMaxecart = Application.Max(tabtlr(..., 3))
iPt = 30
ReDim tabtlr(1 To iPt, 1 To 3)
For i = LBound(tabtlr) To UBound(tabtlr)
tabtlr(i, 1) = Cells(i + 11, 6) ' col 1 : le prix
tabtlr(i, 2) = Range("R1") * i + Range("S1") ' col 2 : Y
tabtlr(i, 3) = Abs(tabtlr(i, 1) - tabtlr(i, 2)) ' col 3 : l'écart
Debug.Print 1; tabtlr(i, 1); tabtlr(i, 2); tabtlr(i, 3)
Next i
iMaxecart = Application.Max(tabtlr(..., 3)) 'LIGNE DOUTEUSE
Ou bien dois-je faire une comparaison à chaque boucle pour voir si la
valeur est supérieure aux précédentes et la stocker en cas de maxi ?
Merci pour l'aide
fetnat- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Sur cet exemple, Evaluate est utilisé seulement pour alimenter un
tableau a(,).
iMaxecart = Application.Max(Application.Index(tabtlr, ,3)) pour
obtenir le Max de la 3e colonne du tableau.
http://boisgontierjacques.free.fr/pages_site/tableaux.htm
JB
On 5 mar, 15:37, fetnat <fet...@caramail.com> wrote:
Bonjour JB,
Il y a des choses qui ne s'invente pas ... Merci pour votre aide.
Votre premier exemple me laisse admiratif et il fonctionne bien.
Le deuxième exemple me laisse songeur.
J'essaye d'extrapoler pour mettre mon array tabtlr() dans l'evaluate
a = Evaluate(tabtlr())
Il me retourne le maxi qui se trouve en colonne 1.
les parenthèse il n'aime pas : a = Evaluate({tabtlr()}) erreur de compil
Comment faire un evaluate d'un array defini par un nom et déjà rempli ?
Je pourrais alors utiliser application.index
Cordialement
fetnat
a = Evaluate("{1,2,3;4,5,6;7,8,9;10,11,12}") ' tableau à 2
dimensions
b = Application.Index(a, 2) ' tableau à 1
dimension
MsgBox b(1)
c = Application.Index(a, , 2)
MsgBox c(1, 1)
JB
On 5 mar, 14:51, JB <boisgont...@hotmail.com> wrote:
Bonjour,
a = Evaluate("{1,2,3;4,5,6;7,8,9;10,11,12}") ' tableau à 2
dimensions
x = Application.Max(Application.Index(a, 2)) ' max de la 2 ligne
y = Application.Max(Application.Index(a, , 2)) ' max de la 2
colonne
JB
On 5 mar, 13:51, fetnat <fet...@caramail.com> wrote:
Bonjour,
Dans un tableau dynamique de 30 lignes par 3 colonnes :
Puis-je obtenir le maximum d'une colonne (ici la troisième colonne) dans
un tableau dynamique ?
par un truc du genre iMaxecart = Application.Max(tabtlr(..., 3))
iPt = 30
ReDim tabtlr(1 To iPt, 1 To 3)
For i = LBound(tabtlr) To UBound(tabtlr)
tabtlr(i, 1) = Cells(i + 11, 6) ' col 1 : le prix
tabtlr(i, 2) = Range("R1") * i + Range("S1") ' col 2 : Y
tabtlr(i, 3) = Abs(tabtlr(i, 1) - tabtlr(i, 2)) ' col 3 : l'écart
Debug.Print 1; tabtlr(i, 1); tabtlr(i, 2); tabtlr(i, 3)
Next i
iMaxecart = Application.Max(tabtlr(..., 3)) 'LIGNE DOUTEUSE
Ou bien dois-je faire une comparaison à chaque boucle pour voir si la
valeur est supérieure aux précédentes et la stocker en cas de maxi ?
Merci pour l'aide
fetnat- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Sur cet exemple, Evaluate est utilisé seulement pour alimenter un
tableau a(,).
iMaxecart = Application.Max(Application.Index(tabtlr, ,3)) pour
obtenir le Max de la 3e colonne du tableau.
http://boisgontierjacques.free.fr/pages_site/tableaux.htm
JB
On 5 mar, 15:37, fetnat wrote:Bonjour JB,
Il y a des choses qui ne s'invente pas ... Merci pour votre aide.
Votre premier exemple me laisse admiratif et il fonctionne bien.
Le deuxième exemple me laisse songeur.
J'essaye d'extrapoler pour mettre mon array tabtlr() dans l'evaluate
a = Evaluate(tabtlr())
Il me retourne le maxi qui se trouve en colonne 1.
les parenthèse il n'aime pas : a = Evaluate({tabtlr()}) erreur de compil
Comment faire un evaluate d'un array defini par un nom et déjà rempli ?
Je pourrais alors utiliser application.index
Cordialement
fetnata = Evaluate("{1,2,3;4,5,6;7,8,9;10,11,12}") ' tableau à 2
dimensions
b = Application.Index(a, 2) ' tableau à 1
dimension
MsgBox b(1)
c = Application.Index(a, , 2)
MsgBox c(1, 1)
JB
On 5 mar, 14:51, JB wrote:Bonjour,
a = Evaluate("{1,2,3;4,5,6;7,8,9;10,11,12}") ' tableau à 2
dimensions
x = Application.Max(Application.Index(a, 2)) ' max de la 2 ligne
y = Application.Max(Application.Index(a, , 2)) ' max de la 2
colonne
JB
On 5 mar, 13:51, fetnat wrote:Bonjour,
Dans un tableau dynamique de 30 lignes par 3 colonnes :
Puis-je obtenir le maximum d'une colonne (ici la troisième colonne) dans
un tableau dynamique ?
par un truc du genre iMaxecart = Application.Max(tabtlr(..., 3))
iPt = 30
ReDim tabtlr(1 To iPt, 1 To 3)
For i = LBound(tabtlr) To UBound(tabtlr)
tabtlr(i, 1) = Cells(i + 11, 6) ' col 1 : le prix
tabtlr(i, 2) = Range("R1") * i + Range("S1") ' col 2 : Y
tabtlr(i, 3) = Abs(tabtlr(i, 1) - tabtlr(i, 2)) ' col 3 : l'écart
Debug.Print 1; tabtlr(i, 1); tabtlr(i, 2); tabtlr(i, 3)
Next i
iMaxecart = Application.Max(tabtlr(..., 3)) 'LIGNE DOUTEUSE
Ou bien dois-je faire une comparaison à chaque boucle pour voir si la
valeur est supérieure aux précédentes et la stocker en cas de maxi ?
Merci pour l'aide
fetnat- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
J'ai lu trop vite, je pensais que tu faisais référence
à un tableau croisé dynamique par cette phrase :
| Dans un tableau dynamique de 30 lignes par 3 colonnes
J'ai lu trop vite, je pensais que tu faisais référence
à un tableau croisé dynamique par cette phrase :
| Dans un tableau dynamique de 30 lignes par 3 colonnes
J'ai lu trop vite, je pensais que tu faisais référence
à un tableau croisé dynamique par cette phrase :
| Dans un tableau dynamique de 30 lignes par 3 colonnes