OVH Cloud OVH Cloud

Doublons, le contraire

9 réponses
Avatar
Jacquouille
Bonjour
Deux listes avec la même ossature, les noms en col A, prénoms en colB .....
Une liste reprend le travail à faire et l'autre le travail effectué
aujourd'hui..
Le prob du chef, c'est de connaître le travail effectué, donc liste
"àfaire" - liste"fait".
Je pensais copier "fait" sous"àfaire", puis ôter les doublons, mais le
résultat n'est pas bon.
En fait, il faut supprimer de "àfaire" toutes les lignes qui sont dans
"fait" et forcément, il ne restera plus que le travail effectué.
J'ai regardé chez Flo, mais je ne vois que des solutions pour les
doublons....
Si on se résume, on pourrait dire:"Comment lister les lignes d'une liste qui
ne sont pas dans une autre liste?"
Exemple:
àfaire, A1:A3=Albert , Jean et Marcel
reste à faire: A1 Albert et A2 Jean.
Je cherche Marcel.
http://cjoint.com/?gmsMeWD7Di
Un grand merci
---
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.

9 réponses

Avatar
JLuc
*Bonjour Jacquouille*,
Peut etre avec quelque chose du style :

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A:C")) Is Nothing Then Exit Sub
Dim flag As Boolean
Dim x As Integer
Dim y As Integer
Range("I2:K65536").ClearContents
For x = 2 To [A65536].End(xlUp).Row
flag = False
For y = 2 To [E65536].End(xlUp).Row
If Range("E" & y) = Range("A" & x) Then
flag = True
End If
Next y
If Not flag Then
Range("A" & x).Resize(, 3).Copy Range("I" &
Range("I65536").End(xlUp).Row + 1).Resize(, 3)
End If
Next x
End Sub

Revoili ton file : http://cjoint.com/?gmtetZhnN0

Bonjour
Deux listes avec la même ossature, les noms en col A, prénoms en colB .....
Une liste reprend le travail à faire et l'autre le travail effectué
aujourd'hui..
Le prob du chef, c'est de connaître le travail effectué, donc liste "àfaire"
- liste"fait".
Je pensais copier "fait" sous"àfaire", puis ôter les doublons, mais le
résultat n'est pas bon.
En fait, il faut supprimer de "àfaire" toutes les lignes qui sont dans "fait"
et forcément, il ne restera plus que le travail effectué.
J'ai regardé chez Flo, mais je ne vois que des solutions pour les
doublons....
Si on se résume, on pourrait dire:"Comment lister les lignes d'une liste qui
ne sont pas dans une autre liste?"
Exemple:
àfaire, A1:A3=Albert , Jean et Marcel
reste à faire: A1 Albert et A2 Jean.
Je cherche Marcel.
http://cjoint.com/?gmsMeWD7Di
Un grand merci
---
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Avatar
nicolas S
bonjour,
peut être ceci ( je suis très borde.......que)
C'est un bricolage que j'ai réalisé pour extraire une liste sans doublons
d'une première liste :


A1:A5 B1:B5
Albert Jean
Jean Albert
Marcel Paul
Didier =A_FAIRE(A1:A5;$B$1:B3)
Paul =A_FAIRE(A1:A5;$B$1:B3)

avec le code ci dessous

Public Function A_FAIRE(bd_ori As Range, bd_comp As Range)

Dim ori, comp, aa, bb As Variant
For Each ori In bd_ori
If ori = "" Then GoTo fin0
deb:
For Each comp In bd_comp

If ori = comp Then


GoTo present

End If

Next
If ori = "" Then GoTo deb
A_FAIRE = ori
GoTo fin

present:

Next
fin0:
fin:

End Function


Normalement, la fonction doit ressortir toutes les valeurs de la première
liste non comprise dans la deuxième.








"Jacquouille" a écrit dans le message de
news:
Bonjour
Deux listes avec la même ossature, les noms en col A, prénoms en colB
.....
Une liste reprend le travail à faire et l'autre le travail effectué
aujourd'hui..
Le prob du chef, c'est de connaître le travail effectué, donc liste
"àfaire" - liste"fait".
Je pensais copier "fait" sous"àfaire", puis ôter les doublons, mais le
résultat n'est pas bon.
En fait, il faut supprimer de "àfaire" toutes les lignes qui sont dans
"fait" et forcément, il ne restera plus que le travail effectué.
J'ai regardé chez Flo, mais je ne vois que des solutions pour les
doublons....
Si on se résume, on pourrait dire:"Comment lister les lignes d'une liste
qui ne sont pas dans une autre liste?"
Exemple:
àfaire, A1:A3=Albert , Jean et Marcel
reste à faire: A1 Albert et A2 Jean.
Je cherche Marcel.
http://cjoint.com/?gmsMeWD7Di
Un grand merci
---
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.




Avatar
JLuc
*Bonjour nicolas S*,
C'est pas tres bon d'utiliser des branchements "sauvages" :/
Ca ne veut pas dire que ca ne marche pas.... :')

bonjour,
peut être ceci ( je suis très borde.......que)
C'est un bricolage que j'ai réalisé pour extraire une liste sans doublons
d'une première liste :


A1:A5 B1:B5
Albert Jean
Jean Albert
Marcel Paul
Didier =A_FAIRE(A1:A5;$B$1:B3)
Paul =A_FAIRE(A1:A5;$B$1:B3)

avec le code ci dessous

Public Function A_FAIRE(bd_ori As Range, bd_comp As Range)

Dim ori, comp, aa, bb As Variant
For Each ori In bd_ori
If ori = "" Then GoTo fin0
deb:
For Each comp In bd_comp

If ori = comp Then


GoTo present

End If

Next
If ori = "" Then GoTo deb
A_FAIRE = ori
GoTo fin

present:

Next
fin0:
fin:

End Function


Normalement, la fonction doit ressortir toutes les valeurs de la première
liste non comprise dans la deuxième.








"Jacquouille" a écrit dans le message de
news:
Bonjour
Deux listes avec la même ossature, les noms en col A, prénoms en colB .....
Une liste reprend le travail à faire et l'autre le travail effectué
aujourd'hui..
Le prob du chef, c'est de connaître le travail effectué, donc liste
"àfaire" - liste"fait".
Je pensais copier "fait" sous"àfaire", puis ôter les doublons, mais le
résultat n'est pas bon.
En fait, il faut supprimer de "àfaire" toutes les lignes qui sont dans
"fait" et forcément, il ne restera plus que le travail effectué.
J'ai regardé chez Flo, mais je ne vois que des solutions pour les
doublons....
Si on se résume, on pourrait dire:"Comment lister les lignes d'une liste
qui ne sont pas dans une autre liste?"
Exemple:
àfaire, A1:A3=Albert , Jean et Marcel
reste à faire: A1 Albert et A2 Jean.
Je cherche Marcel.
http://cjoint.com/?gmsMeWD7Di
Un grand merci
---
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.





--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O


Avatar
Jacquouille
Bonsoir
Et bien, c'est pile poil ce qu'il me fallait.
Mais, pourquoi une private sub et non une sub tout court?
Un tout grand merci et bonne fin de soirée

--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.

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

*Bonjour Jacquouille*,
Peut etre avec quelque chose du style :

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A:C")) Is Nothing Then Exit Sub
Dim flag As Boolean
Dim x As Integer
Dim y As Integer
Range("I2:K65536").ClearContents
For x = 2 To [A65536].End(xlUp).Row
flag = False
For y = 2 To [E65536].End(xlUp).Row
If Range("E" & y) = Range("A" & x) Then
flag = True
End If
Next y
If Not flag Then
Range("A" & x).Resize(, 3).Copy Range("I" &
Range("I65536").End(xlUp).Row + 1).Resize(, 3)
End If
Next x
End Sub

Revoili ton file : http://cjoint.com/?gmtetZhnN0

Bonjour
Deux listes avec la même ossature, les noms en col A, prénoms en colB
.....
Une liste reprend le travail à faire et l'autre le travail effectué
aujourd'hui..
Le prob du chef, c'est de connaître le travail effectué, donc liste
"àfaire" - liste"fait".
Je pensais copier "fait" sous"àfaire", puis ôter les doublons, mais le
résultat n'est pas bon.
En fait, il faut supprimer de "àfaire" toutes les lignes qui sont dans
"fait" et forcément, il ne restera plus que le travail effectué.
J'ai regardé chez Flo, mais je ne vois que des solutions pour les
doublons....
Si on se résume, on pourrait dire:"Comment lister les lignes d'une liste
qui ne sont pas dans une autre liste?"
Exemple:
àfaire, A1:A3=Albert , Jean et Marcel
reste à faire: A1 Albert et A2 Jean.
Je cherche Marcel.
http://cjoint.com/?gmsMeWD7Di
Un grand merci
---
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O





Avatar
Jacquouille
Bonsoir Nicolas
Je ne suis pas habitué aux sub tilités de ce que JLuc appelle les
branchements (: etc)
C'est pourquoi j'ai un peu peur de mettre cela dans la bécane car je ne
comprends pas bien le déroulement de ta macro.
Cependant, un grand merci à toi aussi car tu as pris la peine de me répondre
et de te pencher sur ce problème.
Je te souhaite une bonne soirée

--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.

"nicolas S" a écrit dans le message de news:
e6k8vl$7sf$
bonjour,
peut être ceci ( je suis très borde.......que)
C'est un bricolage que j'ai réalisé pour extraire une liste sans doublons
d'une première liste :


A1:A5 B1:B5
Albert Jean
Jean Albert
Marcel Paul
Didier =A_FAIRE(A1:A5;$B$1:B3)
Paul =A_FAIRE(A1:A5;$B$1:B3)

avec le code ci dessous

Public Function A_FAIRE(bd_ori As Range, bd_comp As Range)

Dim ori, comp, aa, bb As Variant
For Each ori In bd_ori
If ori = "" Then GoTo fin0
deb:
For Each comp In bd_comp

If ori = comp Then


GoTo present

End If

Next
If ori = "" Then GoTo deb
A_FAIRE = ori
GoTo fin

present:

Next
fin0:
fin:

End Function


Normalement, la fonction doit ressortir toutes les valeurs de la première
liste non comprise dans la deuxième.








"Jacquouille" a écrit dans le message de
news:
Bonjour
Deux listes avec la même ossature, les noms en col A, prénoms en colB
.....
Une liste reprend le travail à faire et l'autre le travail effectué
aujourd'hui..
Le prob du chef, c'est de connaître le travail effectué, donc liste
"àfaire" - liste"fait".
Je pensais copier "fait" sous"àfaire", puis ôter les doublons, mais le
résultat n'est pas bon.
En fait, il faut supprimer de "àfaire" toutes les lignes qui sont dans
"fait" et forcément, il ne restera plus que le travail effectué.
J'ai regardé chez Flo, mais je ne vois que des solutions pour les
doublons....
Si on se résume, on pourrait dire:"Comment lister les lignes d'une liste
qui ne sont pas dans une autre liste?"
Exemple:
àfaire, A1:A3=Albert , Jean et Marcel
reste à faire: A1 Albert et A2 Jean.
Je cherche Marcel.
http://cjoint.com/?gmsMeWD7Di
Un grand merci
---
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.








Avatar
JLuc
*Bonjour Jacquouille*,
Je l'ai mis dans l'evenement change de la feuille, comme ca, a chaque
fois que tu fais une modif dans ta feuille, ta liste se refais

Bonsoir
Et bien, c'est pile poil ce qu'il me fallait.
Mais, pourquoi une private sub et non une sub tout court?
Un tout grand merci et bonne fin de soirée

--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.

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

*Bonjour Jacquouille*,
Peut etre avec quelque chose du style :

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A:C")) Is Nothing Then Exit Sub
Dim flag As Boolean
Dim x As Integer
Dim y As Integer
Range("I2:K65536").ClearContents
For x = 2 To [A65536].End(xlUp).Row
flag = False
For y = 2 To [E65536].End(xlUp).Row
If Range("E" & y) = Range("A" & x) Then
flag = True
End If
Next y
If Not flag Then
Range("A" & x).Resize(, 3).Copy Range("I" &
Range("I65536").End(xlUp).Row + 1).Resize(, 3)
End If
Next x
End Sub

Revoili ton file : http://cjoint.com/?gmtetZhnN0

Bonjour
Deux listes avec la même ossature, les noms en col A, prénoms en colB
.....
Une liste reprend le travail à faire et l'autre le travail effectué
aujourd'hui..
Le prob du chef, c'est de connaître le travail effectué, donc liste
"àfaire" - liste"fait".
Je pensais copier "fait" sous"àfaire", puis ôter les doublons, mais le
résultat n'est pas bon.
En fait, il faut supprimer de "àfaire" toutes les lignes qui sont dans
"fait" et forcément, il ne restera plus que le travail effectué.
J'ai regardé chez Flo, mais je ne vois que des solutions pour les
doublons....
Si on se résume, on pourrait dire:"Comment lister les lignes d'une liste
qui ne sont pas dans une autre liste?"
Exemple:
àfaire, A1:A3=Albert , Jean et Marcel
reste à faire: A1 Albert et A2 Jean.
Je cherche Marcel.
http://cjoint.com/?gmsMeWD7Di
Un grand merci
---
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.


-- ____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O





--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O



Avatar
nicolas S
"JLuc" a écrit dans le message de news:

*Bonjour nicolas S*,
C'est pas tres bon d'utiliser des branchements "sauvages" :/


un branchement sauvage????? comme pour mon instalation electrique ;-))

Ca ne veut pas dire que ca ne marche pas.... :')




bonjour,
peut être ceci ( je suis très borde.......que)
C'est un bricolage que j'ai réalisé pour extraire une liste sans doublons
d'une première liste :


A1:A5 B1:B5
Albert Jean
Jean Albert
Marcel Paul
Didier =A_FAIRE(A1:A5;$B$1:B3)
Paul =A_FAIRE(A1:A5;$B$1:B3)

avec le code ci dessous

Public Function A_FAIRE(bd_ori As Range, bd_comp As Range)

Dim ori, comp, aa, bb As Variant
For Each ori In bd_ori
If ori = "" Then GoTo fin0
deb:
For Each comp In bd_comp

If ori = comp Then


GoTo present

End If

Next
If ori = "" Then GoTo deb
A_FAIRE = ori
GoTo fin

present:

Next
fin0:
fin:

End Function


Normalement, la fonction doit ressortir toutes les valeurs de la première
liste non comprise dans la deuxième.








"Jacquouille" a écrit dans le message de
news:
Bonjour
Deux listes avec la même ossature, les noms en col A, prénoms en colB
.....
Une liste reprend le travail à faire et l'autre le travail effectué
aujourd'hui..
Le prob du chef, c'est de connaître le travail effectué, donc liste
"àfaire" - liste"fait".
Je pensais copier "fait" sous"àfaire", puis ôter les doublons, mais le
résultat n'est pas bon.
En fait, il faut supprimer de "àfaire" toutes les lignes qui sont dans
"fait" et forcément, il ne restera plus que le travail effectué.
J'ai regardé chez Flo, mais je ne vois que des solutions pour les
doublons....
Si on se résume, on pourrait dire:"Comment lister les lignes d'une liste
qui ne sont pas dans une autre liste?"
Exemple:
àfaire, A1:A3=Albert , Jean et Marcel
reste à faire: A1 Albert et A2 Jean.
Je cherche Marcel.
http://cjoint.com/?gmsMeWD7Di
Un grand merci
---
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.





--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O






Avatar
nicolas S
Bonjour JLuc,

peut tu me dire quel est le risque à faire des "branchements sauvages".
J'ai créé plusieurs fonctions de ce genre qui fonctionnent sans problème.
Si il y a un risque mercis de m'en informer.
Nicolas

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

*Bonjour nicolas S*,
C'est pas tres bon d'utiliser des branchements "sauvages" :/
Ca ne veut pas dire que ca ne marche pas.... :')

bonjour,
peut être ceci ( je suis très borde.......que)
C'est un bricolage que j'ai réalisé pour extraire une liste sans doublons
d'une première liste :


A1:A5 B1:B5
Albert Jean
Jean Albert
Marcel Paul
Didier =A_FAIRE(A1:A5;$B$1:B3)
Paul =A_FAIRE(A1:A5;$B$1:B3)

avec le code ci dessous

Public Function A_FAIRE(bd_ori As Range, bd_comp As Range)

Dim ori, comp, aa, bb As Variant
For Each ori In bd_ori
If ori = "" Then GoTo fin0
deb:
For Each comp In bd_comp

If ori = comp Then


GoTo present

End If

Next
If ori = "" Then GoTo deb
A_FAIRE = ori
GoTo fin

present:

Next
fin0:
fin:

End Function


Normalement, la fonction doit ressortir toutes les valeurs de la première
liste non comprise dans la deuxième.








"Jacquouille" a écrit dans le message de
news:
Bonjour
Deux listes avec la même ossature, les noms en col A, prénoms en colB
.....
Une liste reprend le travail à faire et l'autre le travail effectué
aujourd'hui..
Le prob du chef, c'est de connaître le travail effectué, donc liste
"àfaire" - liste"fait".
Je pensais copier "fait" sous"àfaire", puis ôter les doublons, mais le
résultat n'est pas bon.
En fait, il faut supprimer de "àfaire" toutes les lignes qui sont dans
"fait" et forcément, il ne restera plus que le travail effectué.
J'ai regardé chez Flo, mais je ne vois que des solutions pour les
doublons....
Si on se résume, on pourrait dire:"Comment lister les lignes d'une liste
qui ne sont pas dans une autre liste?"
Exemple:
àfaire, A1:A3=Albert , Jean et Marcel
reste à faire: A1 Albert et A2 Jean.
Je cherche Marcel.
http://cjoint.com/?gmsMeWD7Di
Un grand merci
---
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.





--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O






Avatar
JLuc
Bonjour JLuc,

peut tu me dire quel est le risque à faire des "branchements sauvages".
J'ai créé plusieurs fonctions de ce genre qui fonctionnent sans problème.
Si il y a un risque mercis de m'en informer.
Nicolas


Il n'y a aucuns risques a proprement parler, si ce n'est que le code
est plus dificile a deverminer, surtout dans le cas d'une procedure un
peu longue.
Le deuxieme inconvenient est qu'il est beaucoup plus dur de se remettre
dans ce genre de code au bout d'un temps un peu long pour apporter une
amelioration ou tout simplement un rajout :oÞ

--
JLuc