Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

extraction

9 réponses
Avatar
tylerguile
Bonjour,

Voilà j'ai un classeur avec une feuille A et une feuille B
Dans la feuille A, j'ai un tableau à 2 colonnes:
Une colonne NOM et une colonne DETTE
Je souhaiterais savoir comment faire pour avoir une extraction du type:

Si DETTE >0 alors copier le nom de la meme ligne vers la feuille B (colonneA).
Par ailleurs, je souhaiterais que cette extraction soit "dynamique" de telle
sorte que si dans la feuille A, la DETTE devient 0, alors le nom disparait de
la feuille B.

J'espere m'etre bien exprimé...

Merci d'avance pour votre aide!

9 réponses

Avatar
Jacky
Bonsoir,
Une feuille avec les données nommée "BD" et une feuille nommée "recap"
avec le resultat
'-----------
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Sheets("recap").[a:b].ClearContents
[a1:b1].Copy Sheets("recap").[a1]
For Each C In Range("b2:b" & [a65536].End(3).Row)
If C <> 0 Then Range("a" & C.Row & ":b" & C.Row).Copy
Sheets("recap").Range("a" & Sheets("recap").[a65536].End(3).Row + 1)
Next
Application.EnableEvents = True
End Sub
'----------------
Exemple ici
http://cjoint.com/?iuw1ZkvnVV

--
Salutations
JJ


"tylerguile" a écrit dans le message
de news:
Bonjour,

Voilà j'ai un classeur avec une feuille A et une feuille B
Dans la feuille A, j'ai un tableau à 2 colonnes:
Une colonne NOM et une colonne DETTE
Je souhaiterais savoir comment faire pour avoir une extraction du type:

Si DETTE >0 alors copier le nom de la meme ligne vers la feuille B
(colonneA).
Par ailleurs, je souhaiterais que cette extraction soit "dynamique" de
telle
sorte que si dans la feuille A, la DETTE devient 0, alors le nom disparait
de
la feuille B.

J'espere m'etre bien exprimé...

Merci d'avance pour votre aide!


Avatar
JB
Bonsoir,

Avec Filtre élaboré.

Extraction automatique
On veut une liste triée sans doublons des noms de la feuille BD pour
lesquels dette>0

Private Sub Worksheet_Activate()
Sheets("bd").[A1:B1000].AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sheets("result").[D1:D2], CopyToRange:=[A1],
unique:=True
End Sub

http://cjoint.com/?iuxe7eCbG6

http://boisgontierjacques.free.fr/pages_site/FiltreElabore.htm#ExtractionAu to

JB
http://boisgontierjacques.free.fr/


On 20 août, 22:55, "Jacky" wrote:
Bonsoir,
Une feuille avec les données nommée "BD" et une feuille nommée " recap"
avec le resultat
'-----------
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Sheets("recap").[a:b].ClearContents
[a1:b1].Copy Sheets("recap").[a1]
For Each C In Range("b2:b" & [a65536].End(3).Row)
If C <> 0 Then Range("a" & C.Row & ":b" & C.Row).Copy
Sheets("recap").Range("a" & Sheets("recap").[a65536].End(3).Row + 1)
Next
Application.EnableEvents = True
End Sub
'----------------
Exemple icihttp://cjoint.com/?iuw1ZkvnVV

--
Salutations
JJ

"tylerguile" a écrit dans le mes sage
denews: 1552F59A-4420-4A71-ABC7-78339B26C__BEGIN_MASK_n#9g02mG7!__...__EN D_MASK_i?a63jfAD$



Bonjour,

Voilà j'ai un classeur avec une feuille A et une feuille B
Dans la feuille A, j'ai un tableau à 2 colonnes:
Une colonne NOM et une colonne DETTE
Je souhaiterais savoir comment faire pour avoir une extraction du type:

Si DETTE >0 alors copier le nom de la meme ligne vers la feuille B
(colonneA).
Par ailleurs, je souhaiterais que cette extraction soit "dynamique" de
telle
sorte que si dans la feuille A, la DETTE devient 0, alors le nom dispar ait
de
la feuille B.

J'espere m'etre bien exprimé...

Merci d'avance pour votre aide!- Masquer le texte des messages préc édents -


- Afficher le texte des messages précédents -



Avatar
JB
Bonsoir,

Faire l'extraction à chaque saisie n'est pas utile puisque le résultat
est sur un autre onglet (que l'on ne voit pas).
Il est + économique de faire l'extraction seulement lorsque l'on
sélectionne l'onglet résultat.

JB
On 20 août, 22:55, "Jacky" wrote:
Bonsoir,
Une feuille avec les données nommée "BD" et une feuille nommée " recap"
avec le resultat
'-----------
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Sheets("recap").[a:b].ClearContents
[a1:b1].Copy Sheets("recap").[a1]
For Each C In Range("b2:b" & [a65536].End(3).Row)
If C <> 0 Then Range("a" & C.Row & ":b" & C.Row).Copy
Sheets("recap").Range("a" & Sheets("recap").[a65536].End(3).Row + 1)
Next
Application.EnableEvents = True
End Sub
'----------------
Exemple icihttp://cjoint.com/?iuw1ZkvnVV

--
Salutations
JJ

"tylerguile" a écrit dans le mes sage
denews: 1552F59A-4420-4A71-ABC7-78339B26C__BEGIN_MASK_n#9g02mG7!__...__EN D_MASK_i?a63jfAD$



Bonjour,

Voilà j'ai un classeur avec une feuille A et une feuille B
Dans la feuille A, j'ai un tableau à 2 colonnes:
Une colonne NOM et une colonne DETTE
Je souhaiterais savoir comment faire pour avoir une extraction du type:

Si DETTE >0 alors copier le nom de la meme ligne vers la feuille B
(colonneA).
Par ailleurs, je souhaiterais que cette extraction soit "dynamique" de
telle
sorte que si dans la feuille A, la DETTE devient 0, alors le nom dispar ait
de
la feuille B.

J'espere m'etre bien exprimé...

Merci d'avance pour votre aide!- Masquer le texte des messages préc édents -


- Afficher le texte des messages précédents -



Avatar
tylerguile
Merci Jacky!
Ceci à répondu à ma question à une chose près...
C'est que les valeurs ne changent pas de manière automatique comme pour une
formule...
Est-ce que c'est moi qui suis nul ou j'ai zappé qqch?

Merci encore!!!


Bonsoir,
Une feuille avec les données nommée "BD" et une feuille nommée "recap"
avec le resultat
'-----------
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Sheets("recap").[a:b].ClearContents
[a1:b1].Copy Sheets("recap").[a1]
For Each C In Range("b2:b" & [a65536].End(3).Row)
If C <> 0 Then Range("a" & C.Row & ":b" & C.Row).Copy
Sheets("recap").Range("a" & Sheets("recap").[a65536].End(3).Row + 1)
Next
Application.EnableEvents = True
End Sub
'----------------
Exemple ici
http://cjoint.com/?iuw1ZkvnVV

--
Salutations
JJ


"tylerguile" a écrit dans le message
de news:
Bonjour,

Voilà j'ai un classeur avec une feuille A et une feuille B
Dans la feuille A, j'ai un tableau à 2 colonnes:
Une colonne NOM et une colonne DETTE
Je souhaiterais savoir comment faire pour avoir une extraction du type:

Si DETTE >0 alors copier le nom de la meme ligne vers la feuille B
(colonneA).
Par ailleurs, je souhaiterais que cette extraction soit "dynamique" de
telle
sorte que si dans la feuille A, la DETTE devient 0, alors le nom disparait
de
la feuille B.

J'espere m'etre bien exprimé...

Merci d'avance pour votre aide!







Avatar
Jacky
Re...
C'est que les valeurs ne changent pas de manière automatique
Dans mon exemple la feuille recap est mis à jour à chaque modif de la

feuille BD

Regarde aussi la solution de JB avec un filtre élaboré, qui avec des données
importantes est beaucoup plus rapide.
--
Salutations
JJ


"tylerguile" a écrit dans le message
de news:
Merci Jacky!
Ceci à répondu à ma question à une chose près...
C'est que les valeurs ne changent pas de manière automatique comme pour
une
formule...
Est-ce que c'est moi qui suis nul ou j'ai zappé qqch?

Merci encore!!!


Bonsoir,
Une feuille avec les données nommée "BD" et une feuille nommée "recap"
avec le resultat
'-----------
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Sheets("recap").[a:b].ClearContents
[a1:b1].Copy Sheets("recap").[a1]
For Each C In Range("b2:b" & [a65536].End(3).Row)
If C <> 0 Then Range("a" & C.Row & ":b" & C.Row).Copy
Sheets("recap").Range("a" & Sheets("recap").[a65536].End(3).Row + 1)
Next
Application.EnableEvents = True
End Sub
'----------------
Exemple ici
http://cjoint.com/?iuw1ZkvnVV

--
Salutations
JJ


"tylerguile" a écrit dans le
message
de news:
Bonjour,

Voilà j'ai un classeur avec une feuille A et une feuille B
Dans la feuille A, j'ai un tableau à 2 colonnes:
Une colonne NOM et une colonne DETTE
Je souhaiterais savoir comment faire pour avoir une extraction du type:

Si DETTE >0 alors copier le nom de la meme ligne vers la feuille B
(colonneA).
Par ailleurs, je souhaiterais que cette extraction soit "dynamique" de
telle
sorte que si dans la feuille A, la DETTE devient 0, alors le nom
disparait
de
la feuille B.

J'espere m'etre bien exprimé...

Merci d'avance pour votre aide!









Avatar
JB
Avec formule matricielle:

=SI(ESTNUM(PETITE.VALEUR(SI(dette>0;EQUIV(Noms;Noms;
0));LIGNE(INDIRECT("1:"&LIGNES(Noms)))));INDEX(Noms;PETITE.VALEUR(SI(dette> 0;EQUIV(Noms;Noms;
0));LIGNE(INDIRECT("1:"&LIGNES(Noms)))));"")

http://cjoint.com/?iuxJOgAheo

JB


On 20 août, 23:12, tylerguile
wrote:
Merci Jacky!
Ceci à répondu à ma question à une chose près...
C'est que les valeurs ne changent pas de manière automatique comme pour une
formule...
Est-ce que c'est moi qui suis nul ou j'ai zappé qqch?

Merci encore!!!




Bonsoir,
Une feuille avec les données nommée "BD" et une feuille nommée "recap"
avec le resultat
'-----------
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Sheets("recap").[a:b].ClearContents
[a1:b1].Copy Sheets("recap").[a1]
For Each C In Range("b2:b" & [a65536].End(3).Row)
If C <> 0 Then Range("a" & C.Row & ":b" & C.Row).Copy
Sheets("recap").Range("a" & Sheets("recap").[a65536].End(3).Row + 1)
Next
Application.EnableEvents = True
End Sub
'----------------
Exemple ici
http://cjoint.com/?iuw1ZkvnVV

--
Salutations
JJ

"tylerguile" a écrit dans le m essage
denews: 1552F59A-4420-4A71-ABC7-78339B26C__BEGIN_MASK_n#9g02mG7!__...__ END_MASK_i?a63jfAD$
Bonjour,

Voilà j'ai un classeur avec une feuille A et une feuille B
Dans la feuille A, j'ai un tableau à 2 colonnes:
Une colonne NOM et une colonne DETTE
Je souhaiterais savoir comment faire pour avoir une extraction du typ e:

Si DETTE >0 alors copier le nom de la meme ligne vers la feuille B
(colonneA).
Par ailleurs, je souhaiterais que cette extraction soit "dynamique" de
telle
sorte que si dans la feuille A, la DETTE devient 0, alors le nom disp arait
de
la feuille B.

J'espere m'etre bien exprimé...

Merci d'avance pour votre aide!- Masquer le texte des messages préc édents -



- Afficher le texte des messages précédents -




Avatar
Jacky
Bonsoir JB
Il est + économique de faire l'extraction seulement lorsque l'on
sélectionne l'onglet résultat.
Oui, remarque tout à fait justifiée et je t'en remercie,

Si tylerguile opte pour ce code cela donnerai ceci
'------------
Private Sub Worksheet_Activate()
Application.EnableEvents = False
[a:b].ClearContents
Sheets("bd").[a1:b1].Copy [a1]
For Each C In Sheets("bd").Range("b2:b" &
Sheets("bd").[a65536].End(3).Row)
If C > 0 Then Sheets("bd").Range("a" & C.Row & ":b" & C.Row).Copy
Range("a" & [a65536].End(3).Row + 1)
Next
Application.EnableEvents = True
End Sub
'------------------
A placer dans le module de la feuille recap
--
Salutations
JJ


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

Bonsoir,

Faire l'extraction à chaque saisie n'est pas utile puisque le résultat
est sur un autre onglet (que l'on ne voit pas).
Il est + économique de faire l'extraction seulement lorsque l'on
sélectionne l'onglet résultat.

JB
On 20 août, 22:55, "Jacky" wrote:
Bonsoir,
Une feuille avec les données nommée "BD" et une feuille nommée "recap"
avec le resultat
'-----------
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Sheets("recap").[a:b].ClearContents
[a1:b1].Copy Sheets("recap").[a1]
For Each C In Range("b2:b" & [a65536].End(3).Row)
If C <> 0 Then Range("a" & C.Row & ":b" & C.Row).Copy
Sheets("recap").Range("a" & Sheets("recap").[a65536].End(3).Row + 1)
Next
Application.EnableEvents = True
End Sub
'----------------
Exemple icihttp://cjoint.com/?iuw1ZkvnVV

--
Salutations
JJ

"tylerguile" a écrit dans le
message
denews:
1552F59A-4420-4A71-ABC7-78339B26C__BEGIN_MASK_n#9g02mG7!__...__END_MASK_i?a63jfAD$



Bonjour,

Voilà j'ai un classeur avec une feuille A et une feuille B
Dans la feuille A, j'ai un tableau à 2 colonnes:
Une colonne NOM et une colonne DETTE
Je souhaiterais savoir comment faire pour avoir une extraction du type:

Si DETTE >0 alors copier le nom de la meme ligne vers la feuille B
(colonneA).
Par ailleurs, je souhaiterais que cette extraction soit "dynamique" de
telle
sorte que si dans la feuille A, la DETTE devient 0, alors le nom
disparait
de
la feuille B.

J'espere m'etre bien exprimé...

Merci d'avance pour votre aide!- Masquer le texte des messages
précédents -


- Afficher le texte des messages précédents -



Avatar
Jacky
Re....
Attention toutefois, ce code contient l'instruction "
Application.EnableEvents = False"
Si pendant tes essais tu as eu un plantage, il faudra fermer xl, pour
réactivé les fonctionnalités de cette instruction
C'est sans doute à cause de cela que..............
C'est que les valeurs ne changent pas de manière automatique comme pour
une formule...



--
Salutations
JJ


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

Re...
C'est que les valeurs ne changent pas de manière automatique
Dans mon exemple la feuille recap est mis à jour à chaque modif de la

feuille BD

Regarde aussi la solution de JB avec un filtre élaboré, qui avec des
données importantes est beaucoup plus rapide.
--
Salutations
JJ


"tylerguile" a écrit dans le
message de news:
Merci Jacky!
Ceci à répondu à ma question à une chose près...
C'est que les valeurs ne changent pas de manière automatique comme pour
une
formule...
Est-ce que c'est moi qui suis nul ou j'ai zappé qqch?

Merci encore!!!


Bonsoir,
Une feuille avec les données nommée "BD" et une feuille nommée
"recap"
avec le resultat
'-----------
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Sheets("recap").[a:b].ClearContents
[a1:b1].Copy Sheets("recap").[a1]
For Each C In Range("b2:b" & [a65536].End(3).Row)
If C <> 0 Then Range("a" & C.Row & ":b" & C.Row).Copy
Sheets("recap").Range("a" & Sheets("recap").[a65536].End(3).Row + 1)
Next
Application.EnableEvents = True
End Sub
'----------------
Exemple ici
http://cjoint.com/?iuw1ZkvnVV

--
Salutations
JJ


"tylerguile" a écrit dans le
message
de news:
Bonjour,

Voilà j'ai un classeur avec une feuille A et une feuille B
Dans la feuille A, j'ai un tableau à 2 colonnes:
Une colonne NOM et une colonne DETTE
Je souhaiterais savoir comment faire pour avoir une extraction du
type:

Si DETTE >0 alors copier le nom de la meme ligne vers la feuille B
(colonneA).
Par ailleurs, je souhaiterais que cette extraction soit "dynamique" de
telle
sorte que si dans la feuille A, la DETTE devient 0, alors le nom
disparait
de
la feuille B.

J'espere m'etre bien exprimé...

Merci d'avance pour votre aide!













Avatar
Jacky
Re...
Joliiiiiie
:-))
--
Salutations
JJ


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

Avec formule matricielle:

=SI(ESTNUM(PETITE.VALEUR(SI(dette>0;EQUIV(Noms;Noms;
0));LIGNE(INDIRECT("1:"&LIGNES(Noms)))));INDEX(Noms;PETITE.VALEUR(SI(dette>0;EQUIV(Noms;Noms;
0));LIGNE(INDIRECT("1:"&LIGNES(Noms)))));"")

http://cjoint.com/?iuxJOgAheo

JB


On 20 août, 23:12, tylerguile
wrote:
Merci Jacky!
Ceci à répondu à ma question à une chose près...
C'est que les valeurs ne changent pas de manière automatique comme pour
une
formule...
Est-ce que c'est moi qui suis nul ou j'ai zappé qqch?

Merci encore!!!




Bonsoir,
Une feuille avec les données nommée "BD" et une feuille nommée
"recap"
avec le resultat
'-----------
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Sheets("recap").[a:b].ClearContents
[a1:b1].Copy Sheets("recap").[a1]
For Each C In Range("b2:b" & [a65536].End(3).Row)
If C <> 0 Then Range("a" & C.Row & ":b" & C.Row).Copy
Sheets("recap").Range("a" & Sheets("recap").[a65536].End(3).Row + 1)
Next
Application.EnableEvents = True
End Sub
'----------------
Exemple ici
http://cjoint.com/?iuw1ZkvnVV

--
Salutations
JJ

"tylerguile" a écrit dans le
message
denews:
1552F59A-4420-4A71-ABC7-78339B26C__BEGIN_MASK_n#9g02mG7!__...__END_MASK_i?a63jfAD$
Bonjour,

Voilà j'ai un classeur avec une feuille A et une feuille B
Dans la feuille A, j'ai un tableau à 2 colonnes:
Une colonne NOM et une colonne DETTE
Je souhaiterais savoir comment faire pour avoir une extraction du
type:

Si DETTE >0 alors copier le nom de la meme ligne vers la feuille B
(colonneA).
Par ailleurs, je souhaiterais que cette extraction soit "dynamique" de
telle
sorte que si dans la feuille A, la DETTE devient 0, alors le nom
disparait
de
la feuille B.

J'espere m'etre bien exprimé...

Merci d'avance pour votre aide!- Masquer le texte des messages
précédents -



- Afficher le texte des messages précédents -