OVH Cloud OVH Cloud

formules matricielle et petit souci

16 réponses
Avatar
JEAN
Bonjour,

J'ai cette formule:
=INDEX(Feuil1!L15:L250;EQUIV($B$13&$B$14;Feuill1!$H$15:$H$250&Feuil1!$I$15:$I$250;0))

suivant les valeurs que prennent B13 et B14 dans ma feuille 2,j'irai
chercher dans ma feuille 1 les memes valeurs que prennent B13 et B14 et
afficher sur ma cellules la valeur correspondant de la colonne L de la
feuille 1

cela marche très bien pour une ligne, mais quand je tire mes lignes.j'ai un
petit souci

Supposons que dans ma colonne H et I j'ai plusieurs fois,des codes
identiques c'est a dire:
en feuille 1:
ligne15: 10 en H15 20 en I15 500 en L15
Ligne 16: 10 en H16 20 en I16 800 en L16
Ligne 17: 0 en H17 20 en I17 100 en L17
Ligne 18: 10 en H18 20 en I18 900 en L18

tout ce la est dans la feuille 1
si dans ma feuille 2 je rentre en B13 la valeur 10 et en B14 la valeur 20
suivant ma formule que je met dans une colonne(par exemple la colonne D de
la feuille 2)
je voudrai Avoir:
en D15: 500
en D16: 800
en D17: 900
ces valeurs corresponde bien au code rentré.

je n'aurai pas 100 car il correspond pas au code
merci de votre aide.

6 réponses

1 2
Avatar
JEAN
ok desolé je n'ai pas etait assez claire.
au fait ce que tu ma envoyé c'est OK

mais dans la colonne L de la feuille 1 j'ai des valeurs
exemple
colonne L: colonne M: colonne N:
200 123 50
700 768 100
200 876 200
400 100 200

a



Bonjour Jean,

Écoute, je te l'ai dit... quand tu formules une question, c'est à toi de t'assurer qu'elle est complète et qu'elle
reflète bien ce que tu veux.

Ce que tu dis : " j'aurai aussi des valeurs dans la colonne M N O P S T de ma feuille 1 " cela ne faisait pas parti de
la question... il n'est pas surprenant que la réponse n'en tienne pas compte ....

Deuxièmement : qu'est-ce que les valeurs de la colonne M N O P S T de ma feuille 1 ont à voir avec la question originale
? Qu'est-ce que tu veux faire avec les données de ces colonnes ? Dans quelles circonstances ? où les copier ? Je ne
peux écrire la question à ta place !

"comment devient le programme du coup" Bien, il faut d'abord que tu fasses un petit effort pour comprendre les
procédures que je t'ai envoyées...et dans un deuxième temps que tu définisses clairement ce que tu veux d'abord dans ta
tête, et que tu reposes une question qui soit précise et complète ! Attention, peu de personnes ne sont vraiment
intéressés à modifier leur réponse initiale si que tu modifies constamment la donne de ton problème. D'où l'importance
de définir tes besoins de façon spécifique.


Salutations !



"JEAN" a écrit dans le message de news:

merci pour le lien , voila je voix mieux, mais en feuille 1
j'aurai pas seulement que des valeurs dans la colonnes L de la feuille 1
j'aurai aussi des valeurs dans la colonne M N O P S T de ma feuille 1 que je
recupere en feuille 2 suivant mes conditions.

comment devient le programme du coup.

merci



Bonjour Jean,

Tu peux télécharger l'exemple simple que je t'ai fait, les explications sommaires sont dans le classeur.

"je n'ai pas compris ton code" Il va falloir que tu y mettes quand même plus de 5 minutes ...cela m'a quand même pris
plus de 5 minutes moi-même pour l'écrire !

clique sur ce lien pour télécharger le classeur !

http://cjoint.com/?mmqyQketRn


Salutations!


"JEAN" a écrit dans le message de news:

je n'ai pas compris ton code, d'ailleur je l'ai essayé et cela ne fonctionne
pas.

A savoir que si je met en critere B13 et B14 de ma feuille 2
je doit pouvoir recuperer tout les valeurs des 10 colonnes que j'ai dans ma
feuille 1 correspondant a ces conditions.

Je peux avoir les meme conditions plusieurs fois.


merci


"michdenis" wrote:

Bonjour Jean,

Essaie ceci :

Tu colles le code dans le module Feuille de la Feuil2 de ton application. Si les adresses que tu as données, cela
devrait fonctionner sans retouches !

Si tu as déjà du code dans cet événement de la feuille, la section "Déclaration des variables" va dans le haut de la
procédure et tu insères ceci à la fin des procédure déjà existante. Assure-toi, que tu n'as pas déjà des variables
dans
la procédure qui possèdent déjà le nom des variables que j'utilise dans ce code.

'-------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

'Déclaration des variables:
Dim Etat As Integer
Dim R As Range, R1 As Range

If Not Intersect(Target, Range("B13:B14")) Is Nothing Then
Application.EnableEvents = False
Etat = Application.Calculation
Application.Calculation = xlCalculationManual
On Error Resume Next
With Worksheets("Feuil1")
With .Range("H14:L250")
.AutoFilter field:=1, Criteria1:=Range("B13")
.AutoFilter field:=2, Criteria2:=Range("B14")
Set R = .Offset(1, 4).Resize(, .Columns.Count - 4)
Set R1 = R.SpecialCells(xlCellTypeVisible)
On Error GoTo 0
Range("L15:L250").Clear
R1.Copy Range("L15")
.AutoFilter
End With
End With
Application.EnableEvents = True
Application.Calculation = Etat
Set R = Nothing: Set R1 = Nothing
End If

End Sub
'-------------------------------------


Salutations!




"JEAN" a écrit dans le message de news:

oui mais du coup ca me classe mes valeurs, et comme j'ai plusieurs valeurs de
differentes colonne à recuperer.
ca les classe pas comme dans la feuille 1
je voudrai pas utilisé la fontion petite valeur.
je veux seulement recuperer mes valeurs suivant la condition qui satisfait.

si jutilise petite valeur

et que j'ai par exemple dans ma feuille 1 dans une colonne

123
190
101
23
189

je veux que ca recupere de cette facon
et pas comme ceci:
23
101
123
189
190
sinon ma recuperation est pas bonne

merci
"michdenis" wrote:

Bonsoir Jean,



Remplace K dans la formule par Ligne(A1) et tu tires ta formule vers le bas


Salutations!



"JEAN" a écrit dans le message de news:

ca repond pas tout a fait à ma questions,

quelle est le rapport avec petite valeur et la lettre K

c'est juste qu'avec cette formule
=INDEX(Feuil1!L15:L250;EQUIV($B$13&$B$14;Feuill1!$H$15:$H$250&Feuil1!$I$15:$I$250;0))

je voudrai recuperer chaque valeur dans la colonne de ma feuille 2 les
differentes valeurs que prennent la colonne L suivont la conditions de B13 et
B14

je comprend pas trop pourquoi petite valeur et K

merci


"Starwing" wrote:

Bonjour JEAN,

Cette formule ferait-elle ton affaire?

Pour trouver la K ième plus petite valeur répondant à une
série de conditions...

En D15:
Matricielle:
Validation par Ctrl + Shift + Entrée
=PETITE.VALEUR(SI(($B$13þuil1!$H$15:$H$250)*
($B$14þuil1!$I$15:$I$250);Feuil1!$L$15:$L$250);K)

k prend la valeur de 1 en D15
k prend la valeur de 2 en D16
etc...

Starwing

























Avatar
JEAN
je reprend ma question desolé:

ok desolé je n'ai pas etait assez claire.
au fait ce que tu ma envoyé c'est OK

mais dans la colonne L de la feuille 1 j'ai des valeurs
exemple
colonne L: colonne M: colonne N:
200 123 50
700 768 100
200 876 200
400 100 200

tout cela sera dans la feuille 1 et au fait, je voudrai récuperer suivant
les deux condition de b13 et B14 les valeurs de la colonnes L mais aussi
celle en M et N et quelques autre colonnes suivant les deux conditions.
C'est le meme principe de ce que tu as fait mais en rajoutant M, N,et
quelques autre colonnes que je choisirai pour recuperer, des infos la dessus.

au fait c'est une restitution du tableau de ma feuille 1 en feuille 2
suivant la valeur de B13 et B14

j'espère que tu voie mieux
encore desolé

merci d e ton aide.


Bonjour Jean,

Écoute, je te l'ai dit... quand tu formules une question, c'est à toi de t'assurer qu'elle est complète et qu'elle
reflète bien ce que tu veux.

Ce que tu dis : " j'aurai aussi des valeurs dans la colonne M N O P S T de ma feuille 1 " cela ne faisait pas parti de
la question... il n'est pas surprenant que la réponse n'en tienne pas compte ....

Deuxièmement : qu'est-ce que les valeurs de la colonne M N O P S T de ma feuille 1 ont à voir avec la question originale
? Qu'est-ce que tu veux faire avec les données de ces colonnes ? Dans quelles circonstances ? où les copier ? Je ne
peux écrire la question à ta place !

"comment devient le programme du coup" Bien, il faut d'abord que tu fasses un petit effort pour comprendre les
procédures que je t'ai envoyées...et dans un deuxième temps que tu définisses clairement ce que tu veux d'abord dans ta
tête, et que tu reposes une question qui soit précise et complète ! Attention, peu de personnes ne sont vraiment
intéressés à modifier leur réponse initiale si que tu modifies constamment la donne de ton problème. D'où l'importance
de définir tes besoins de façon spécifique.


Salutations !



"JEAN" a écrit dans le message de news:

merci pour le lien , voila je voix mieux, mais en feuille 1
j'aurai pas seulement que des valeurs dans la colonnes L de la feuille 1
j'aurai aussi des valeurs dans la colonne M N O P S T de ma feuille 1 que je
recupere en feuille 2 suivant mes conditions.

comment devient le programme du coup.

merci



Bonjour Jean,

Tu peux télécharger l'exemple simple que je t'ai fait, les explications sommaires sont dans le classeur.

"je n'ai pas compris ton code" Il va falloir que tu y mettes quand même plus de 5 minutes ...cela m'a quand même pris
plus de 5 minutes moi-même pour l'écrire !

clique sur ce lien pour télécharger le classeur !

http://cjoint.com/?mmqyQketRn


Salutations!


"JEAN" a écrit dans le message de news:

je n'ai pas compris ton code, d'ailleur je l'ai essayé et cela ne fonctionne
pas.

A savoir que si je met en critere B13 et B14 de ma feuille 2
je doit pouvoir recuperer tout les valeurs des 10 colonnes que j'ai dans ma
feuille 1 correspondant a ces conditions.

Je peux avoir les meme conditions plusieurs fois.


merci


"michdenis" wrote:

Bonjour Jean,

Essaie ceci :

Tu colles le code dans le module Feuille de la Feuil2 de ton application. Si les adresses que tu as données, cela
devrait fonctionner sans retouches !

Si tu as déjà du code dans cet événement de la feuille, la section "Déclaration des variables" va dans le haut de la
procédure et tu insères ceci à la fin des procédure déjà existante. Assure-toi, que tu n'as pas déjà des variables
dans
la procédure qui possèdent déjà le nom des variables que j'utilise dans ce code.

'-------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

'Déclaration des variables:
Dim Etat As Integer
Dim R As Range, R1 As Range

If Not Intersect(Target, Range("B13:B14")) Is Nothing Then
Application.EnableEvents = False
Etat = Application.Calculation
Application.Calculation = xlCalculationManual
On Error Resume Next
With Worksheets("Feuil1")
With .Range("H14:L250")
.AutoFilter field:=1, Criteria1:=Range("B13")
.AutoFilter field:=2, Criteria2:=Range("B14")
Set R = .Offset(1, 4).Resize(, .Columns.Count - 4)
Set R1 = R.SpecialCells(xlCellTypeVisible)
On Error GoTo 0
Range("L15:L250").Clear
R1.Copy Range("L15")
.AutoFilter
End With
End With
Application.EnableEvents = True
Application.Calculation = Etat
Set R = Nothing: Set R1 = Nothing
End If

End Sub
'-------------------------------------


Salutations!




"JEAN" a écrit dans le message de news:

oui mais du coup ca me classe mes valeurs, et comme j'ai plusieurs valeurs de
differentes colonne à recuperer.
ca les classe pas comme dans la feuille 1
je voudrai pas utilisé la fontion petite valeur.
je veux seulement recuperer mes valeurs suivant la condition qui satisfait.

si jutilise petite valeur

et que j'ai par exemple dans ma feuille 1 dans une colonne

123
190
101
23
189

je veux que ca recupere de cette facon
et pas comme ceci:
23
101
123
189
190
sinon ma recuperation est pas bonne

merci
"michdenis" wrote:

Bonsoir Jean,



Remplace K dans la formule par Ligne(A1) et tu tires ta formule vers le bas


Salutations!



"JEAN" a écrit dans le message de news:

ca repond pas tout a fait à ma questions,

quelle est le rapport avec petite valeur et la lettre K

c'est juste qu'avec cette formule
=INDEX(Feuil1!L15:L250;EQUIV($B$13&$B$14;Feuill1!$H$15:$H$250&Feuil1!$I$15:$I$250;0))

je voudrai recuperer chaque valeur dans la colonne de ma feuille 2 les
differentes valeurs que prennent la colonne L suivont la conditions de B13 et
B14

je comprend pas trop pourquoi petite valeur et K

merci


"Starwing" wrote:

Bonjour JEAN,

Cette formule ferait-elle ton affaire?

Pour trouver la K ième plus petite valeur répondant à une
série de conditions...

En D15:
Matricielle:
Validation par Ctrl + Shift + Entrée
=PETITE.VALEUR(SI(($B$13þuil1!$H$15:$H$250)*
($B$14þuil1!$I$15:$I$250);Feuil1!$L$15:$L$250);K)

k prend la valeur de 1 en D15
k prend la valeur de 2 en D16
etc...

Starwing

























Avatar
michdenis
Bonjour Jean,


Dans le fichier exemple que je t'ai envoyé, remplace la procédure du module par celle-ci :

Selon les valeurs des cellules B13 et B14, la procédure recopie les colonnes L, M, N de la feuil1 et les recopie dans
les colonnes L, M, N de la feuil2 ....


Salutations!


'------------------------------------
Sub ExtraireLesDonnées()

'Déclaration des variables:
Dim Etat As Integer
Dim R As Range, R1 As Range

Application.EnableEvents = False
Etat = Application.Calculation
Application.Calculation = xlCalculationManual
On Error Resume Next
With Worksheets("Feuil1")
With .Range("H14:N250")
.AutoFilter field:=1, Criteria1:=Range("B13")
.AutoFilter field:=2, Criteria2:=Range("B14")
Set R = .Offset(1, 4).Resize(, .Columns.Count - 4)
Set R1 = R.SpecialCells(xlCellTypeVisible)
On Error GoTo 0
Range("L15:N250").Clear
R1.Copy Range("L15")
.AutoFilter
End With
End With
Application.EnableEvents = True
Application.Calculation = Etat
Set R = Nothing: Set R1 = Nothing

End Sub
'------------------------------------


Salutations!



"JEAN" a écrit dans le message de news:

je reprend ma question desolé:

ok desolé je n'ai pas etait assez claire.
au fait ce que tu ma envoyé c'est OK

mais dans la colonne L de la feuille 1 j'ai des valeurs
exemple
colonne L: colonne M: colonne N:
200 123 50
700 768 100
200 876 200
400 100 200

tout cela sera dans la feuille 1 et au fait, je voudrai récuperer suivant
les deux condition de b13 et B14 les valeurs de la colonnes L mais aussi
celle en M et N et quelques autre colonnes suivant les deux conditions.
C'est le meme principe de ce que tu as fait mais en rajoutant M, N,et
quelques autre colonnes que je choisirai pour recuperer, des infos la dessus.

au fait c'est une restitution du tableau de ma feuille 1 en feuille 2
suivant la valeur de B13 et B14

j'espère que tu voie mieux
encore desolé

merci d e ton aide.


Bonjour Jean,

Écoute, je te l'ai dit... quand tu formules une question, c'est à toi de t'assurer qu'elle est complète et qu'elle
reflète bien ce que tu veux.

Ce que tu dis : " j'aurai aussi des valeurs dans la colonne M N O P S T de ma feuille 1 " cela ne faisait pas parti de
la question... il n'est pas surprenant que la réponse n'en tienne pas compte ....

Deuxièmement : qu'est-ce que les valeurs de la colonne M N O P S T de ma feuille 1 ont à voir avec la question
originale
? Qu'est-ce que tu veux faire avec les données de ces colonnes ? Dans quelles circonstances ? où les copier ? Je ne
peux écrire la question à ta place !

"comment devient le programme du coup" Bien, il faut d'abord que tu fasses un petit effort pour comprendre les
procédures que je t'ai envoyées...et dans un deuxième temps que tu définisses clairement ce que tu veux d'abord dans
ta
tête, et que tu reposes une question qui soit précise et complète ! Attention, peu de personnes ne sont vraiment
intéressés à modifier leur réponse initiale si que tu modifies constamment la donne de ton problème. D'où l'importance
de définir tes besoins de façon spécifique.


Salutations !



"JEAN" a écrit dans le message de news:

merci pour le lien , voila je voix mieux, mais en feuille 1
j'aurai pas seulement que des valeurs dans la colonnes L de la feuille 1
j'aurai aussi des valeurs dans la colonne M N O P S T de ma feuille 1 que je
recupere en feuille 2 suivant mes conditions.

comment devient le programme du coup.

merci



Bonjour Jean,

Tu peux télécharger l'exemple simple que je t'ai fait, les explications sommaires sont dans le classeur.

"je n'ai pas compris ton code" Il va falloir que tu y mettes quand même plus de 5 minutes ...cela m'a quand même
pris
plus de 5 minutes moi-même pour l'écrire !

clique sur ce lien pour télécharger le classeur !

http://cjoint.com/?mmqyQketRn


Salutations!


"JEAN" a écrit dans le message de news:

je n'ai pas compris ton code, d'ailleur je l'ai essayé et cela ne fonctionne
pas.

A savoir que si je met en critere B13 et B14 de ma feuille 2
je doit pouvoir recuperer tout les valeurs des 10 colonnes que j'ai dans ma
feuille 1 correspondant a ces conditions.

Je peux avoir les meme conditions plusieurs fois.


merci


"michdenis" wrote:

Bonjour Jean,

Essaie ceci :

Tu colles le code dans le module Feuille de la Feuil2 de ton application. Si les adresses que tu as données, cela
devrait fonctionner sans retouches !

Si tu as déjà du code dans cet événement de la feuille, la section "Déclaration des variables" va dans le haut de
la
procédure et tu insères ceci à la fin des procédure déjà existante. Assure-toi, que tu n'as pas déjà des variables
dans
la procédure qui possèdent déjà le nom des variables que j'utilise dans ce code.

'-------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

'Déclaration des variables:
Dim Etat As Integer
Dim R As Range, R1 As Range

If Not Intersect(Target, Range("B13:B14")) Is Nothing Then
Application.EnableEvents = False
Etat = Application.Calculation
Application.Calculation = xlCalculationManual
On Error Resume Next
With Worksheets("Feuil1")
With .Range("H14:L250")
.AutoFilter field:=1, Criteria1:=Range("B13")
.AutoFilter field:=2, Criteria2:=Range("B14")
Set R = .Offset(1, 4).Resize(, .Columns.Count - 4)
Set R1 = R.SpecialCells(xlCellTypeVisible)
On Error GoTo 0
Range("L15:L250").Clear
R1.Copy Range("L15")
.AutoFilter
End With
End With
Application.EnableEvents = True
Application.Calculation = Etat
Set R = Nothing: Set R1 = Nothing
End If

End Sub
'-------------------------------------


Salutations!




"JEAN" a écrit dans le message de news:

oui mais du coup ca me classe mes valeurs, et comme j'ai plusieurs valeurs de
differentes colonne à recuperer.
ca les classe pas comme dans la feuille 1
je voudrai pas utilisé la fontion petite valeur.
je veux seulement recuperer mes valeurs suivant la condition qui satisfait.

si jutilise petite valeur

et que j'ai par exemple dans ma feuille 1 dans une colonne

123
190
101
23
189

je veux que ca recupere de cette facon
et pas comme ceci:
23
101
123
189
190
sinon ma recuperation est pas bonne

merci
"michdenis" wrote:

Bonsoir Jean,



Remplace K dans la formule par Ligne(A1) et tu tires ta formule vers le bas


Salutations!



"JEAN" a écrit dans le message de news:

ca repond pas tout a fait à ma questions,

quelle est le rapport avec petite valeur et la lettre K

c'est juste qu'avec cette formule
=INDEX(Feuil1!L15:L250;EQUIV($B$13&$B$14;Feuill1!$H$15:$H$250&Feuil1!$I$15:$I$250;0))

je voudrai recuperer chaque valeur dans la colonne de ma feuille 2 les
differentes valeurs que prennent la colonne L suivont la conditions de B13 et
B14

je comprend pas trop pourquoi petite valeur et K

merci


"Starwing" wrote:

Bonjour JEAN,

Cette formule ferait-elle ton affaire?

Pour trouver la K ième plus petite valeur répondant à une
série de conditions...

En D15:
Matricielle:
Validation par Ctrl + Shift + Entrée
=PETITE.VALEUR(SI(($B$13þuil1!$H$15:$H$250)*
($B$14þuil1!$I$15:$I$250);Feuil1!$L$15:$L$250);K)

k prend la valeur de 1 en D15
k prend la valeur de 2 en D16
etc...

Starwing

























Avatar
JEAN
merci denis

mais juste une chose

je voudrai copier les valeurs que j'ai dans les colonnes M et N de la
feuille 1 dans la colonne E F de la feuille 2 , le programme s'ecrit comment
du coup.

et aussi a la place d'avoir un fond jaune je voudrai avoir un cadre en gras
qui encadre toutes mes valeurs.

je te remercie beaucoup.

Bonjour Jean,


Dans le fichier exemple que je t'ai envoyé, remplace la procédure du module par celle-ci :

Selon les valeurs des cellules B13 et B14, la procédure recopie les colonnes L, M, N de la feuil1 et les recopie dans
les colonnes L, M, N de la feuil2 ....


Salutations!


'------------------------------------
Sub ExtraireLesDonnées()

'Déclaration des variables:
Dim Etat As Integer
Dim R As Range, R1 As Range

Application.EnableEvents = False
Etat = Application.Calculation
Application.Calculation = xlCalculationManual
On Error Resume Next
With Worksheets("Feuil1")
With .Range("H14:N250")
.AutoFilter field:=1, Criteria1:=Range("B13")
.AutoFilter field:=2, Criteria2:=Range("B14")
Set R = .Offset(1, 4).Resize(, .Columns.Count - 4)
Set R1 = R.SpecialCells(xlCellTypeVisible)
On Error GoTo 0
Range("L15:N250").Clear
R1.Copy Range("L15")
.AutoFilter
End With
End With
Application.EnableEvents = True
Application.Calculation = Etat
Set R = Nothing: Set R1 = Nothing

End Sub
'------------------------------------


Salutations!



"JEAN" a écrit dans le message de news:

je reprend ma question desolé:

ok desolé je n'ai pas etait assez claire.
au fait ce que tu ma envoyé c'est OK

mais dans la colonne L de la feuille 1 j'ai des valeurs
exemple
colonne L: colonne M: colonne N:
200 123 50
700 768 100
200 876 200
400 100 200

tout cela sera dans la feuille 1 et au fait, je voudrai récuperer suivant
les deux condition de b13 et B14 les valeurs de la colonnes L mais aussi
celle en M et N et quelques autre colonnes suivant les deux conditions.
C'est le meme principe de ce que tu as fait mais en rajoutant M, N,et
quelques autre colonnes que je choisirai pour recuperer, des infos la dessus.

au fait c'est une restitution du tableau de ma feuille 1 en feuille 2
suivant la valeur de B13 et B14

j'espère que tu voie mieux
encore desolé

merci d e ton aide.


Bonjour Jean,

Écoute, je te l'ai dit... quand tu formules une question, c'est à toi de t'assurer qu'elle est complète et qu'elle
reflète bien ce que tu veux.

Ce que tu dis : " j'aurai aussi des valeurs dans la colonne M N O P S T de ma feuille 1 " cela ne faisait pas parti de
la question... il n'est pas surprenant que la réponse n'en tienne pas compte ....

Deuxièmement : qu'est-ce que les valeurs de la colonne M N O P S T de ma feuille 1 ont à voir avec la question
originale
? Qu'est-ce que tu veux faire avec les données de ces colonnes ? Dans quelles circonstances ? où les copier ? Je ne
peux écrire la question à ta place !

"comment devient le programme du coup" Bien, il faut d'abord que tu fasses un petit effort pour comprendre les
procédures que je t'ai envoyées...et dans un deuxième temps que tu définisses clairement ce que tu veux d'abord dans
ta
tête, et que tu reposes une question qui soit précise et complète ! Attention, peu de personnes ne sont vraiment
intéressés à modifier leur réponse initiale si que tu modifies constamment la donne de ton problème. D'où l'importance
de définir tes besoins de façon spécifique.


Salutations !



"JEAN" a écrit dans le message de news:

merci pour le lien , voila je voix mieux, mais en feuille 1
j'aurai pas seulement que des valeurs dans la colonnes L de la feuille 1
j'aurai aussi des valeurs dans la colonne M N O P S T de ma feuille 1 que je
recupere en feuille 2 suivant mes conditions.

comment devient le programme du coup.

merci



Bonjour Jean,

Tu peux télécharger l'exemple simple que je t'ai fait, les explications sommaires sont dans le classeur.

"je n'ai pas compris ton code" Il va falloir que tu y mettes quand même plus de 5 minutes ...cela m'a quand même
pris
plus de 5 minutes moi-même pour l'écrire !

clique sur ce lien pour télécharger le classeur !

http://cjoint.com/?mmqyQketRn


Salutations!


"JEAN" a écrit dans le message de news:

je n'ai pas compris ton code, d'ailleur je l'ai essayé et cela ne fonctionne
pas.

A savoir que si je met en critere B13 et B14 de ma feuille 2
je doit pouvoir recuperer tout les valeurs des 10 colonnes que j'ai dans ma
feuille 1 correspondant a ces conditions.

Je peux avoir les meme conditions plusieurs fois.


merci


"michdenis" wrote:

Bonjour Jean,

Essaie ceci :

Tu colles le code dans le module Feuille de la Feuil2 de ton application. Si les adresses que tu as données, cela
devrait fonctionner sans retouches !

Si tu as déjà du code dans cet événement de la feuille, la section "Déclaration des variables" va dans le haut de
la
procédure et tu insères ceci à la fin des procédure déjà existante. Assure-toi, que tu n'as pas déjà des variables
dans
la procédure qui possèdent déjà le nom des variables que j'utilise dans ce code.

'-------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

'Déclaration des variables:
Dim Etat As Integer
Dim R As Range, R1 As Range

If Not Intersect(Target, Range("B13:B14")) Is Nothing Then
Application.EnableEvents = False
Etat = Application.Calculation
Application.Calculation = xlCalculationManual
On Error Resume Next
With Worksheets("Feuil1")
With .Range("H14:L250")
.AutoFilter field:=1, Criteria1:=Range("B13")
.AutoFilter field:=2, Criteria2:=Range("B14")
Set R = .Offset(1, 4).Resize(, .Columns.Count - 4)
Set R1 = R.SpecialCells(xlCellTypeVisible)
On Error GoTo 0
Range("L15:L250").Clear
R1.Copy Range("L15")
.AutoFilter
End With
End With
Application.EnableEvents = True
Application.Calculation = Etat
Set R = Nothing: Set R1 = Nothing
End If

End Sub
'-------------------------------------


Salutations!




"JEAN" a écrit dans le message de news:

oui mais du coup ca me classe mes valeurs, et comme j'ai plusieurs valeurs de
differentes colonne à recuperer.
ca les classe pas comme dans la feuille 1
je voudrai pas utilisé la fontion petite valeur.
je veux seulement recuperer mes valeurs suivant la condition qui satisfait.

si jutilise petite valeur

et que j'ai par exemple dans ma feuille 1 dans une colonne

123
190
101
23
189

je veux que ca recupere de cette facon
et pas comme ceci:
23
101
123
189
190
sinon ma recuperation est pas bonne

merci
"michdenis" wrote:

Bonsoir Jean,



Remplace K dans la formule par Ligne(A1) et tu tires ta formule vers le bas


Salutations!



"JEAN" a écrit dans le message de news:

ca repond pas tout a fait à ma questions,

quelle est le rapport avec petite valeur et la lettre K

c'est juste qu'avec cette formule
=INDEX(Feuil1!L15:L250;EQUIV($B$13&$B$14;Feuill1!$H$15:$H$250&Feuil1!$I$15:$I$250;0))

je voudrai recuperer chaque valeur dans la colonne de ma feuille 2 les
differentes valeurs que prennent la colonne L suivont la conditions de B13 et
B14

je comprend pas trop pourquoi petite valeur et K

merci


"Starwing" wrote:

Bonjour JEAN,

Cette formule ferait-elle ton affaire?

Pour trouver la K ième plus petite valeur répondant à une
série de conditions...

En D15:
Matricielle:
Validation par Ctrl + Shift + Entrée
=PETITE.VALEUR(SI(($B$13þuil1!$H$15:$H$250)*
($B$14þuil1!$I$15:$I$250);Feuil1!$L$15:$L$250);K)

k prend la valeur de 1 en D15
k prend la valeur de 2 en D16
etc...

Starwing






























Avatar
michdenis
Bonjour Jean,

Dans le fichier exemple, remplace la procédure par celle-ci :

'-----------------------------------
Sub ExtraireLesDonnées()

'Déclaration des variables:
Dim Etat As Integer
Dim R As Range, R1 As Range
Dim Sh As Worksheet, Sh1 As Worksheet
Set Sh = Worksheets("Feuil1")
Set Sh1 = Worksheets("Feuil2")

Application.EnableEvents = False
Etat = Application.Calculation
Application.Calculation = xlCalculationManual
With Sh
With .Range("H14:N250")
.AutoFilter field:=1, Criteria1:=Sh1.Range("B13")
.AutoFilter field:=2, Criteria1:=Sh1.Range("B14")
Set R = .Offset(1, 4).Resize(, .Columns.Count - 6)
Set R1 = .Offset(1, 6).Resize(, .Columns.Count - 4)

Sh1.Range("E15:F250").Clear
Sh1.Range("L15:L250").Clear
R.SpecialCells(xlCellTypeVisible).Copy Sh1.Range("L15")
R1.SpecialCells(xlCellTypeVisible).Copy Sh1.Range("E15")
.AutoFilter
End With
End With
Application.EnableEvents = True
Application.Calculation = Etat
Set R = Nothing: Set R1 = Nothing
Set Sh = Nothing: Set Sh1 = Nothing
End Sub
'-----------------------------------


Salutations!



"JEAN" a écrit dans le message de news:

merci denis

mais juste une chose

je voudrai copier les valeurs que j'ai dans les colonnes M et N de la
feuille 1 dans la colonne E F de la feuille 2 , le programme s'ecrit comment
du coup.

et aussi a la place d'avoir un fond jaune je voudrai avoir un cadre en gras
qui encadre toutes mes valeurs.

je te remercie beaucoup.

Bonjour Jean,


Dans le fichier exemple que je t'ai envoyé, remplace la procédure du module par celle-ci :

Selon les valeurs des cellules B13 et B14, la procédure recopie les colonnes L, M, N de la feuil1 et les recopie dans
les colonnes L, M, N de la feuil2 ....


Salutations!


'------------------------------------
Sub ExtraireLesDonnées()

'Déclaration des variables:
Dim Etat As Integer
Dim R As Range, R1 As Range

Application.EnableEvents = False
Etat = Application.Calculation
Application.Calculation = xlCalculationManual
On Error Resume Next
With Worksheets("Feuil1")
With .Range("H14:N250")
.AutoFilter field:=1, Criteria1:=Range("B13")
.AutoFilter field:=2, Criteria2:=Range("B14")
Set R = .Offset(1, 4).Resize(, .Columns.Count - 4)
Set R1 = R.SpecialCells(xlCellTypeVisible)
On Error GoTo 0
Range("L15:N250").Clear
R1.Copy Range("L15")
.AutoFilter
End With
End With
Application.EnableEvents = True
Application.Calculation = Etat
Set R = Nothing: Set R1 = Nothing

End Sub
'------------------------------------


Salutations!



"JEAN" a écrit dans le message de news:

je reprend ma question desolé:

ok desolé je n'ai pas etait assez claire.
au fait ce que tu ma envoyé c'est OK

mais dans la colonne L de la feuille 1 j'ai des valeurs
exemple
colonne L: colonne M: colonne N:
200 123 50
700 768 100
200 876 200
400 100 200

tout cela sera dans la feuille 1 et au fait, je voudrai récuperer suivant
les deux condition de b13 et B14 les valeurs de la colonnes L mais aussi
celle en M et N et quelques autre colonnes suivant les deux conditions.
C'est le meme principe de ce que tu as fait mais en rajoutant M, N,et
quelques autre colonnes que je choisirai pour recuperer, des infos la dessus.

au fait c'est une restitution du tableau de ma feuille 1 en feuille 2
suivant la valeur de B13 et B14

j'espère que tu voie mieux
encore desolé

merci d e ton aide.


Bonjour Jean,

Écoute, je te l'ai dit... quand tu formules une question, c'est à toi de t'assurer qu'elle est complète et qu'elle
reflète bien ce que tu veux.

Ce que tu dis : " j'aurai aussi des valeurs dans la colonne M N O P S T de ma feuille 1 " cela ne faisait pas parti
de
la question... il n'est pas surprenant que la réponse n'en tienne pas compte ....

Deuxièmement : qu'est-ce que les valeurs de la colonne M N O P S T de ma feuille 1 ont à voir avec la question
originale
? Qu'est-ce que tu veux faire avec les données de ces colonnes ? Dans quelles circonstances ? où les copier ? Je ne
peux écrire la question à ta place !

"comment devient le programme du coup" Bien, il faut d'abord que tu fasses un petit effort pour comprendre les
procédures que je t'ai envoyées...et dans un deuxième temps que tu définisses clairement ce que tu veux d'abord dans
ta
tête, et que tu reposes une question qui soit précise et complète ! Attention, peu de personnes ne sont vraiment
intéressés à modifier leur réponse initiale si que tu modifies constamment la donne de ton problème. D'où
l'importance
de définir tes besoins de façon spécifique.


Salutations !



"JEAN" a écrit dans le message de news:

merci pour le lien , voila je voix mieux, mais en feuille 1
j'aurai pas seulement que des valeurs dans la colonnes L de la feuille 1
j'aurai aussi des valeurs dans la colonne M N O P S T de ma feuille 1 que je
recupere en feuille 2 suivant mes conditions.

comment devient le programme du coup.

merci



Bonjour Jean,

Tu peux télécharger l'exemple simple que je t'ai fait, les explications sommaires sont dans le classeur.

"je n'ai pas compris ton code" Il va falloir que tu y mettes quand même plus de 5 minutes ...cela m'a quand même
pris
plus de 5 minutes moi-même pour l'écrire !

clique sur ce lien pour télécharger le classeur !

http://cjoint.com/?mmqyQketRn


Salutations!


"JEAN" a écrit dans le message de news:

je n'ai pas compris ton code, d'ailleur je l'ai essayé et cela ne fonctionne
pas.

A savoir que si je met en critere B13 et B14 de ma feuille 2
je doit pouvoir recuperer tout les valeurs des 10 colonnes que j'ai dans ma
feuille 1 correspondant a ces conditions.

Je peux avoir les meme conditions plusieurs fois.


merci


"michdenis" wrote:

Bonjour Jean,

Essaie ceci :

Tu colles le code dans le module Feuille de la Feuil2 de ton application. Si les adresses que tu as données,
cela
devrait fonctionner sans retouches !

Si tu as déjà du code dans cet événement de la feuille, la section "Déclaration des variables" va dans le haut
de
la
procédure et tu insères ceci à la fin des procédure déjà existante. Assure-toi, que tu n'as pas déjà des
variables
dans
la procédure qui possèdent déjà le nom des variables que j'utilise dans ce code.

'-------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

'Déclaration des variables:
Dim Etat As Integer
Dim R As Range, R1 As Range

If Not Intersect(Target, Range("B13:B14")) Is Nothing Then
Application.EnableEvents = False
Etat = Application.Calculation
Application.Calculation = xlCalculationManual
On Error Resume Next
With Worksheets("Feuil1")
With .Range("H14:L250")
.AutoFilter field:=1, Criteria1:=Range("B13")
.AutoFilter field:=2, Criteria2:=Range("B14")
Set R = .Offset(1, 4).Resize(, .Columns.Count - 4)
Set R1 = R.SpecialCells(xlCellTypeVisible)
On Error GoTo 0
Range("L15:L250").Clear
R1.Copy Range("L15")
.AutoFilter
End With
End With
Application.EnableEvents = True
Application.Calculation = Etat
Set R = Nothing: Set R1 = Nothing
End If

End Sub
'-------------------------------------


Salutations!




"JEAN" a écrit dans le message de news:

oui mais du coup ca me classe mes valeurs, et comme j'ai plusieurs valeurs de
differentes colonne à recuperer.
ca les classe pas comme dans la feuille 1
je voudrai pas utilisé la fontion petite valeur.
je veux seulement recuperer mes valeurs suivant la condition qui satisfait.

si jutilise petite valeur

et que j'ai par exemple dans ma feuille 1 dans une colonne

123
190
101
23
189

je veux que ca recupere de cette facon
et pas comme ceci:
23
101
123
189
190
sinon ma recuperation est pas bonne

merci
"michdenis" wrote:

Bonsoir Jean,



Remplace K dans la formule par Ligne(A1) et tu tires ta formule vers le bas


Salutations!



"JEAN" a écrit dans le message de news:

ca repond pas tout a fait à ma questions,

quelle est le rapport avec petite valeur et la lettre K

c'est juste qu'avec cette formule
=INDEX(Feuil1!L15:L250;EQUIV($B$13&$B$14;Feuill1!$H$15:$H$250&Feuil1!$I$15:$I$250;0))

je voudrai recuperer chaque valeur dans la colonne de ma feuille 2 les
differentes valeurs que prennent la colonne L suivont la conditions de B13 et
B14

je comprend pas trop pourquoi petite valeur et K

merci


"Starwing" wrote:

Bonjour JEAN,

Cette formule ferait-elle ton affaire?

Pour trouver la K ième plus petite valeur répondant à une
série de conditions...

En D15:
Matricielle:
Validation par Ctrl + Shift + Entrée
=PETITE.VALEUR(SI(($B$13þuil1!$H$15:$H$250)*
($B$14þuil1!$I$15:$I$250);Feuil1!$L$15:$L$250);K)

k prend la valeur de 1 en D15
k prend la valeur de 2 en D16
etc...

Starwing






























Avatar
JEAN
ca me genere quelque bug dans mon applications.

au fait regarde, ce que j'ai dit dans une autre fenetre du newgroups,
concernant la formule matricielle.

j'ai mit excactement ce que ca me fait avec la formule que j'utilise.
je pense qu'avec une formule cela suffit.

dit moi car je bug toujours sur ma formule

merci de ton aide.



"michdenis" wrote:

Bonjour Jean,

Dans le fichier exemple, remplace la procédure par celle-ci :

'-----------------------------------
Sub ExtraireLesDonnées()

'Déclaration des variables:
Dim Etat As Integer
Dim R As Range, R1 As Range
Dim Sh As Worksheet, Sh1 As Worksheet
Set Sh = Worksheets("Feuil1")
Set Sh1 = Worksheets("Feuil2")

Application.EnableEvents = False
Etat = Application.Calculation
Application.Calculation = xlCalculationManual
With Sh
With .Range("H14:N250")
.AutoFilter field:=1, Criteria1:=Sh1.Range("B13")
.AutoFilter field:=2, Criteria1:=Sh1.Range("B14")
Set R = .Offset(1, 4).Resize(, .Columns.Count - 6)
Set R1 = .Offset(1, 6).Resize(, .Columns.Count - 4)

Sh1.Range("E15:F250").Clear
Sh1.Range("L15:L250").Clear
R.SpecialCells(xlCellTypeVisible).Copy Sh1.Range("L15")
R1.SpecialCells(xlCellTypeVisible).Copy Sh1.Range("E15")
.AutoFilter
End With
End With
Application.EnableEvents = True
Application.Calculation = Etat
Set R = Nothing: Set R1 = Nothing
Set Sh = Nothing: Set Sh1 = Nothing
End Sub
'-----------------------------------


Salutations!



"JEAN" a écrit dans le message de news:

merci denis

mais juste une chose

je voudrai copier les valeurs que j'ai dans les colonnes M et N de la
feuille 1 dans la colonne E F de la feuille 2 , le programme s'ecrit comment
du coup.

et aussi a la place d'avoir un fond jaune je voudrai avoir un cadre en gras
qui encadre toutes mes valeurs.

je te remercie beaucoup.

Bonjour Jean,


Dans le fichier exemple que je t'ai envoyé, remplace la procédure du module par celle-ci :

Selon les valeurs des cellules B13 et B14, la procédure recopie les colonnes L, M, N de la feuil1 et les recopie dans
les colonnes L, M, N de la feuil2 ....


Salutations!


'------------------------------------
Sub ExtraireLesDonnées()

'Déclaration des variables:
Dim Etat As Integer
Dim R As Range, R1 As Range

Application.EnableEvents = False
Etat = Application.Calculation
Application.Calculation = xlCalculationManual
On Error Resume Next
With Worksheets("Feuil1")
With .Range("H14:N250")
.AutoFilter field:=1, Criteria1:=Range("B13")
.AutoFilter field:=2, Criteria2:=Range("B14")
Set R = .Offset(1, 4).Resize(, .Columns.Count - 4)
Set R1 = R.SpecialCells(xlCellTypeVisible)
On Error GoTo 0
Range("L15:N250").Clear
R1.Copy Range("L15")
.AutoFilter
End With
End With
Application.EnableEvents = True
Application.Calculation = Etat
Set R = Nothing: Set R1 = Nothing

End Sub
'------------------------------------


Salutations!



"JEAN" a écrit dans le message de news:

je reprend ma question desolé:

ok desolé je n'ai pas etait assez claire.
au fait ce que tu ma envoyé c'est OK

mais dans la colonne L de la feuille 1 j'ai des valeurs
exemple
colonne L: colonne M: colonne N:
200 123 50
700 768 100
200 876 200
400 100 200

tout cela sera dans la feuille 1 et au fait, je voudrai récuperer suivant
les deux condition de b13 et B14 les valeurs de la colonnes L mais aussi
celle en M et N et quelques autre colonnes suivant les deux conditions.
C'est le meme principe de ce que tu as fait mais en rajoutant M, N,et
quelques autre colonnes que je choisirai pour recuperer, des infos la dessus.

au fait c'est une restitution du tableau de ma feuille 1 en feuille 2
suivant la valeur de B13 et B14

j'espère que tu voie mieux
encore desolé

merci d e ton aide.


Bonjour Jean,

Écoute, je te l'ai dit... quand tu formules une question, c'est à toi de t'assurer qu'elle est complète et qu'elle
reflète bien ce que tu veux.

Ce que tu dis : " j'aurai aussi des valeurs dans la colonne M N O P S T de ma feuille 1 " cela ne faisait pas parti
de
la question... il n'est pas surprenant que la réponse n'en tienne pas compte ....

Deuxièmement : qu'est-ce que les valeurs de la colonne M N O P S T de ma feuille 1 ont à voir avec la question
originale
? Qu'est-ce que tu veux faire avec les données de ces colonnes ? Dans quelles circonstances ? où les copier ? Je ne
peux écrire la question à ta place !

"comment devient le programme du coup" Bien, il faut d'abord que tu fasses un petit effort pour comprendre les
procédures que je t'ai envoyées...et dans un deuxième temps que tu définisses clairement ce que tu veux d'abord dans
ta
tête, et que tu reposes une question qui soit précise et complète ! Attention, peu de personnes ne sont vraiment
intéressés à modifier leur réponse initiale si que tu modifies constamment la donne de ton problème. D'où
l'importance
de définir tes besoins de façon spécifique.


Salutations !



"JEAN" a écrit dans le message de news:

merci pour le lien , voila je voix mieux, mais en feuille 1
j'aurai pas seulement que des valeurs dans la colonnes L de la feuille 1
j'aurai aussi des valeurs dans la colonne M N O P S T de ma feuille 1 que je
recupere en feuille 2 suivant mes conditions.

comment devient le programme du coup.

merci



Bonjour Jean,

Tu peux télécharger l'exemple simple que je t'ai fait, les explications sommaires sont dans le classeur.

"je n'ai pas compris ton code" Il va falloir que tu y mettes quand même plus de 5 minutes ...cela m'a quand même
pris
plus de 5 minutes moi-même pour l'écrire !

clique sur ce lien pour télécharger le classeur !

http://cjoint.com/?mmqyQketRn


Salutations!


"JEAN" a écrit dans le message de news:

je n'ai pas compris ton code, d'ailleur je l'ai essayé et cela ne fonctionne
pas.

A savoir que si je met en critere B13 et B14 de ma feuille 2
je doit pouvoir recuperer tout les valeurs des 10 colonnes que j'ai dans ma
feuille 1 correspondant a ces conditions.

Je peux avoir les meme conditions plusieurs fois.


merci


"michdenis" wrote:

Bonjour Jean,

Essaie ceci :

Tu colles le code dans le module Feuille de la Feuil2 de ton application. Si les adresses que tu as données,
cela
devrait fonctionner sans retouches !

Si tu as déjà du code dans cet événement de la feuille, la section "Déclaration des variables" va dans le haut
de
la
procédure et tu insères ceci à la fin des procédure déjà existante. Assure-toi, que tu n'as pas déjà des
variables
dans
la procédure qui possèdent déjà le nom des variables que j'utilise dans ce code.

'-------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

'Déclaration des variables:
Dim Etat As Integer
Dim R As Range, R1 As Range

If Not Intersect(Target, Range("B13:B14")) Is Nothing Then
Application.EnableEvents = False
Etat = Application.Calculation
Application.Calculation = xlCalculationManual
On Error Resume Next
With Worksheets("Feuil1")
With .Range("H14:L250")
.AutoFilter field:=1, Criteria1:=Range("B13")
.AutoFilter field:=2, Criteria2:=Range("B14")
Set R = .Offset(1, 4).Resize(, .Columns.Count - 4)
Set R1 = R.SpecialCells(xlCellTypeVisible)
On Error GoTo 0
Range("L15:L250").Clear
R1.Copy Range("L15")
.AutoFilter
End With
End With
Application.EnableEvents = True
Application.Calculation = Etat
Set R = Nothing: Set R1 = Nothing
End If

End Sub
'-------------------------------------


Salutations!




"JEAN" a écrit dans le message de news:

oui mais du coup ca me classe mes valeurs, et comme j'ai plusieurs valeurs de
differentes colonne à recuperer.
ca les classe pas comme dans la feuille 1
je voudrai pas utilisé la fontion petite valeur.
je veux seulement recuperer mes valeurs suivant la condition qui satisfait.

si jutilise petite valeur

et que j'ai par exemple dans ma feuille 1 dans une colonne

123
190
101
23
189

je veux que ca recupere de cette facon
et pas comme ceci:
23
101
123
189
190
sinon ma recuperation est pas bonne

merci
"michdenis" wrote:

Bonsoir Jean,



Remplace K dans la formule par Ligne(A1) et tu tires ta formule vers le bas


Salutations!



"JEAN" a écrit dans le message de news:

ca repond pas tout a fait à ma questions,

quelle est le rapport avec petite valeur et la lettre K

c'est juste qu'avec cette formule
=INDEX(Feuil1!L15:L250;EQUIV($B$13&$B$14;Feuill1!$H$15:$H$250&Feuil1!$I$15:$I$250;0))

je voudrai recuperer chaque valeur dans la colonne de ma feuille 2 les
differentes valeurs que prennent la colonne L suivont la conditions de B13 et
B14

je comprend pas trop pourquoi petite valeur et K

merci


"Starwing" wrote:

Bonjour JEAN,

Cette formule ferait-elle ton affaire?

Pour trouver la K ième plus petite valeur répondant à une
série de conditions...

En D15:
Matricielle:
Validation par Ctrl + Shift + Entrée
=PETITE.VALEUR(SI(($B$13þuil1!$H$15:$H$250)*
($B$14þuil1!$I$15:$I$250);Feuil1!$L$15:$L$250);K)

k prend la valeur de 1 en D15
k prend la valeur de 2 en D16
etc...

Starwing



































1 2