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

trier par ligne un argument en vba

10 réponses
Avatar
frasax
Bonjour à tous,

J’ai un problème avec une macro que j’ai trouvé chez Isabelle.
J’aimerais faire un tri par ligne avec deux arguments.
Exemple : Si.ET = ″armoire″; ″Vendu″
La ligne est rangée sous :
A B C D
E
Genre d'article Vendu Prix Date Nombre
Réfrigérateur Vendu CHF 350.- 24.03.2008 X armoire

X chaise

X fauteuil etc.
La macro est la suivante :

Sub Macro2()
fin = Sheets("Articles_en_vente").Range("A65536").End(xlUp).Row
ActiveWorkbook.Names.Add Name:="plage", _
RefersTo:=Range("Articles_en_vente!$B$2:$A$" & fin)
Sheets("Détail_vente").Activate
Range("plage").AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Sheets("Détail_vente").Range("B2:A2"), Unique:=True
f = Range("A65536").End(xlUp).Row
Range("D2").Formula = "=CountIf(plage,a2)"
Range("D2:D" & f).FillDown
End Sub

Merci à vous de votre aide, encore bonne fête et à +

10 réponses

Avatar
LE TROLL
Bonjour,

Je ne suis pas certain d'avoir compris, et en
plus, je crois que tu utilises, car tu écris "x"
; "y"
un fichier texte de structure csv, je présume,
mais je ne sais pas ?
Tu voudrais donc, lire chaque ligne, puis si les
deux premier arguments de chaque ligne
correspondent à quelque chose de voulue, tu
récupères la ligne... le IF, tu veux ?

If x = "a" AND y = "b" then ' récupère la ligne...

--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm




------------------------------------------------------------------------------------
"frasax" a
écrit dans le message de news:

| Bonjour à tous,
|
| J'ai un problème avec une macro que j'ai trouvé
chez Isabelle.
| J'aimerais faire un tri par ligne avec deux
arguments.
| Exemple : Si.ET = ?armoire?; ?Vendu?
| La ligne est rangée sous :
| A B C
D
| E
| Genre d'article Vendu Prix
Date Nombre
| Réfrigérateur Vendu CHF 350.-
24.03.2008 X armoire
|
| X chaise
|
| X fauteuil etc.
| La macro est la suivante :
|
| Sub Macro2()
| fin =
Sheets("Articles_en_vente").Range("A65536").End(xlUp).Row
| ActiveWorkbook.Names.Add Name:="plage", _
| RefersTo:=Range("Articles_en_vente!$B$2:$A$" &
fin)
| Sheets("Détail_vente").Activate
| Range("plage").AdvancedFilter
Action:=xlFilterCopy, _
|
CopyToRange:=Sheets("Détail_vente").Range("B2:A2"),
Unique:=True
| f = Range("A65536").End(xlUp).Row
| Range("D2").Formula = "=CountIf(plage,a2)"
| Range("D2:D" & f).FillDown
| End Sub
|
| Merci à vous de votre aide, encore bonne fête et
à +
|
Avatar
frasax
Bonjour Le Troll

Merci pour la réponse, mais la macro na rien à voir avec x, y, je me suis
mal exprimé.
Ce que je veux, c’est une macro qui reprend les données de la feuille «
Articles_en_vente » puis faire un transfert sur la feuille « Détails_vente ».
En tenant compte que la ligne qui comporte le mot « armoire » + « vendu » ou
« chaise » + « vendu », soit transféré avec le prix et la date.
Ce qui veut dire que la colonne A est « armoire » ou « chaise » etc. en
colonne B « vendu » en C « le prix » en D « la date » et en E « le nombre »
trié par article.
J’espère avoir été un peu plus clair, je suis un débutant et malgré mes
recherches sur le forum, ce n’est pas toujours évident de trouver ce que l’on
veut.
Encore merci de me renseigner et à +


"LE TROLL" wrote:

Bonjour,

Je ne suis pas certain d'avoir compris, et en
plus, je crois que tu utilises, car tu écris "x"
; "y"
un fichier texte de structure csv, je présume,
mais je ne sais pas ?
Tu voudrais donc, lire chaque ligne, puis si les
deux premier arguments de chaque ligne
correspondent à quelque chose de voulue, tu
récupères la ligne... le IF, tu veux ?

If x = "a" AND y = "b" then ' récupère la ligne...

--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm




------------------------------------------------------------------------------------
"frasax" a
écrit dans le message de news:

| Bonjour à tous,
|
| J'ai un problème avec une macro que j'ai trouvé
chez Isabelle.
| J'aimerais faire un tri par ligne avec deux
arguments.
| Exemple : Si.ET = ?armoire?; ?Vendu?
| La ligne est rangée sous :
| A B C
D
| E
| Genre d'article Vendu Prix
Date Nombre
| Réfrigérateur Vendu CHF 350.-
24.03.2008 X armoire
|
| X chaise
|
| X fauteuil etc.
| La macro est la suivante :
|
| Sub Macro2()
| fin =
Sheets("Articles_en_vente").Range("A65536").End(xlUp).Row
| ActiveWorkbook.Names.Add Name:="plage", _
| RefersTo:=Range("Articles_en_vente!$B$2:$A$" &
fin)
| Sheets("Détail_vente").Activate
| Range("plage").AdvancedFilter
Action:=xlFilterCopy, _
|
CopyToRange:=Sheets("Détail_vente").Range("B2:A2"),
Unique:=True
| f = Range("A65536").End(xlUp).Row
| Range("D2").Formula = "=CountIf(plage,a2)"
| Range("D2:D" & f).FillDown
| End Sub
|
| Merci à vous de votre aide, encore bonne fête et
à +
|





Avatar
JB
Bonjour,

http://cjoint.com/?dyovjy7mIn

JB
http://boisgontierjacques.free.fr/



On 24 mar, 14:00, frasax wrote:
Bonjour Le Troll

Merci pour la réponse, mais la macro na rien à voir avec x, y, je me s uis
mal exprimé.
Ce que je veux, c'est une macro qui reprend les données de la feuille <<
Articles_en_vente >> puis faire un transfert sur la feuille << Détails_v ente >>.
En tenant compte que la ligne qui comporte le mot << armoire >> + << vendu >> ou
<< chaise >> + << vendu >>, soit transféré avec le prix et la date.
Ce qui veut dire que la colonne A est << armoire >> ou << chaise >> etc. e n
colonne B << vendu >> en C << le prix >> en D << la date >> et en E << le nombre >>
trié par article.
J'espère avoir été un peu plus clair, je suis un débutant et malgr é mes
recherches sur le forum, ce n'est pas toujours évident de trouver ce que l'on
veut.
Encore merci de me renseigner et à +



"LE TROLL" wrote:
Bonjour,

Je ne suis pas certain d'avoir compris, et en
plus, je crois que tu utilises, car tu écris "x"
; "y"
un fichier texte de structure csv, je présume,
mais je ne sais pas ?
Tu voudrais donc, lire chaque ligne, puis si les
deux premier arguments de chaque ligne
correspondent à quelque chose de voulue, tu
récupères la ligne... le IF, tu veux ?

If x = "a" AND y = "b" then ' récupère la ligne...

--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm

------------------------------------------------------------------------ -------------
"frasax" a
écrit dans le message de news:

| Bonjour à tous,
|
| J'ai un problème avec une macro que j'ai trouvé
chez Isabelle.
| J'aimerais faire un tri par ligne avec deux
arguments.
| Exemple : Si.ET = ?armoire?; ?Vendu?
| La ligne est rangée sous :
| A B C
D
| E
| Genre d'article Vendu Prix
Date Nombre
| Réfrigérateur Vendu CHF 350.-
24.03.2008 X armoire
|
| X chaise
|
| X fauteuil etc.
| La macro est la suivante :
|
| Sub Macro2()
| fin =
Sheets("Articles_en_vente").Range("A65536").End(xlUp).Row
| ActiveWorkbook.Names.Add Name:="plage", _
| RefersTo:=Range("Articles_en_vente!$B$2:$A$" &
fin)
| Sheets("Détail_vente").Activate
| Range("plage").AdvancedFilter
Action:=xlFilterCopy, _
|
CopyToRange:=Sheets("Détail_vente").Range("B2:A2"),
Unique:=True
| f = Range("A65536").End(xlUp).Row
| Range("D2").Formula = "=CountIf(plage,a2)"
| Range("D2:D" & f).FillDown
| End Sub
|
| Merci à vous de votre aide, encore bonne fête et
à +
|- Masquer le texte des messages précédents -


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



Avatar
frasax
Bonjour JB,

Merci pour la réponse, je joints mon document pour de plus amples
informations.
Encore merci et à +

http://cjoint.com/?dyo31KRhD2

"JB" wrote:

Bonjour,

http://cjoint.com/?dyovjy7mIn

JB
http://boisgontierjacques.free.fr/



On 24 mar, 14:00, frasax wrote:
Bonjour Le Troll

Merci pour la réponse, mais la macro na rien à voir avec x, y, je me suis
mal exprimé.
Ce que je veux, c'est une macro qui reprend les données de la feuille <<
Articles_en_vente >> puis faire un transfert sur la feuille << Détails_vente >>.
En tenant compte que la ligne qui comporte le mot << armoire >> + << vendu >> ou
<< chaise >> + << vendu >>, soit transféré avec le prix et la date.
Ce qui veut dire que la colonne A est << armoire >> ou << chaise >> etc. en
colonne B << vendu >> en C << le prix >> en D << la date >> et en E << le nombre >>
trié par article.
J'espère avoir été un peu plus clair, je suis un débutant et malgré mes
recherches sur le forum, ce n'est pas toujours évident de trouver ce que l'on
veut.
Encore merci de me renseigner et à +



"LE TROLL" wrote:
Bonjour,

Je ne suis pas certain d'avoir compris, et en
plus, je crois que tu utilises, car tu écris "x"
; "y"
un fichier texte de structure csv, je présume,
mais je ne sais pas ?
Tu voudrais donc, lire chaque ligne, puis si les
deux premier arguments de chaque ligne
correspondent à quelque chose de voulue, tu
récupères la ligne... le IF, tu veux ?

If x = "a" AND y = "b" then ' récupère la ligne...

--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm

-------------------------------------------------------------------------------------
"frasax" a
écrit dans le message de news:

| Bonjour à tous,
|
| J'ai un problème avec une macro que j'ai trouvé
chez Isabelle.
| J'aimerais faire un tri par ligne avec deux
arguments.
| Exemple : Si.ET = ?armoire?; ?Vendu?
| La ligne est rangée sous :
| A B C
D
| E
| Genre d'article Vendu Prix
Date Nombre
| Réfrigérateur Vendu CHF 350.-
24.03.2008 X armoire
|
| X chaise
|
| X fauteuil etc.
| La macro est la suivante :
|
| Sub Macro2()
| fin > > > Sheets("Articles_en_vente").Range("A65536").End(xlUp).Row
| ActiveWorkbook.Names.Add Name:="plage", _
| RefersTo:=Range("Articles_en_vente!$B$2:$A$" &
fin)
| Sheets("Détail_vente").Activate
| Range("plage").AdvancedFilter
Action:=xlFilterCopy, _
|
CopyToRange:=Sheets("Détail_vente").Range("B2:A2"),
Unique:=True
| f = Range("A65536").End(xlUp).Row
| Range("D2").Formula = "=CountIf(plage,a2)"
| Range("D2:D" & f).FillDown
| End Sub
|
| Merci à vous de votre aide, encore bonne fête et
à +
|- Masquer le texte des messages précédents -


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







Avatar
frasax
Re Bonjour JB,

Je viens de voir qu’il n’est pas possible de mettre le prix.
Il faut donc déplacer la colonne C en D et mettre le nombre sous la colonne D.


"JB" wrote:

Bonjour,

http://cjoint.com/?dyovjy7mIn

JB
http://boisgontierjacques.free.fr/



On 24 mar, 14:00, frasax wrote:
Bonjour Le Troll

Merci pour la réponse, mais la macro na rien à voir avec x, y, je me suis
mal exprimé.
Ce que je veux, c'est une macro qui reprend les données de la feuille <<
Articles_en_vente >> puis faire un transfert sur la feuille << Détails_vente >>.
En tenant compte que la ligne qui comporte le mot << armoire >> + << vendu >> ou
<< chaise >> + << vendu >>, soit transféré avec le prix et la date.
Ce qui veut dire que la colonne A est << armoire >> ou << chaise >> etc. en
colonne B << vendu >> en C << le prix >> en D << la date >> et en E << le nombre >>
trié par article.
J'espère avoir été un peu plus clair, je suis un débutant et malgré mes
recherches sur le forum, ce n'est pas toujours évident de trouver ce que l'on
veut.
Encore merci de me renseigner et à +



"LE TROLL" wrote:
Bonjour,

Je ne suis pas certain d'avoir compris, et en
plus, je crois que tu utilises, car tu écris "x"
; "y"
un fichier texte de structure csv, je présume,
mais je ne sais pas ?
Tu voudrais donc, lire chaque ligne, puis si les
deux premier arguments de chaque ligne
correspondent à quelque chose de voulue, tu
récupères la ligne... le IF, tu veux ?

If x = "a" AND y = "b" then ' récupère la ligne...

--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm

-------------------------------------------------------------------------------------
"frasax" a
écrit dans le message de news:

| Bonjour à tous,
|
| J'ai un problème avec une macro que j'ai trouvé
chez Isabelle.
| J'aimerais faire un tri par ligne avec deux
arguments.
| Exemple : Si.ET = ?armoire?; ?Vendu?
| La ligne est rangée sous :
| A B C
D
| E
| Genre d'article Vendu Prix
Date Nombre
| Réfrigérateur Vendu CHF 350.-
24.03.2008 X armoire
|
| X chaise
|
| X fauteuil etc.
| La macro est la suivante :
|
| Sub Macro2()
| fin > > > Sheets("Articles_en_vente").Range("A65536").End(xlUp).Row
| ActiveWorkbook.Names.Add Name:="plage", _
| RefersTo:=Range("Articles_en_vente!$B$2:$A$" &
fin)
| Sheets("Détail_vente").Activate
| Range("plage").AdvancedFilter
Action:=xlFilterCopy, _
|
CopyToRange:=Sheets("Détail_vente").Range("B2:A2"),
Unique:=True
| f = Range("A65536").End(xlUp).Row
| Range("D2").Formula = "=CountIf(plage,a2)"
| Range("D2:D" & f).FillDown
| End Sub
|
| Merci à vous de votre aide, encore bonne fête et
à +
|- Masquer le texte des messages précédents -


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







Avatar
JB
http://cjoint.com/?dyqtUPsZjO

Sub Essai_jb()
Sheets("Articles_en_vente").Select
Set mondico = CreateObject("Scripting.Dictionary")
For Each c In Range("A2", [A65000].End(xlUp))
If Not mondico.Exists(c.Value) And c.Offset(0, 1) = "vendu" Then
mondico.Add c.Value, 1
Else
temp = mondico.Item(c.Value)
mondico.Remove (c.Value)
mondico.Add c.Value, temp + 1
End If
Next c
Sheets("Détail_vente").[a2].Resize(mondico.Count, 1) =
Application.Transpose(mondico.keys)
Sheets("Détail_vente").[e2].Resize(mondico.Count, 1) =
Application.Transpose(mondico.items)
Sheets("Détail_vente").Select
End Sub

JB



On 24 mar, 15:50, frasax wrote:
Re Bonjour JB,

Je viens de voir qu'il n'est pas possible de mettre le prix.
Il faut donc déplacer la colonne C en D et mettre le nombre sous la colo nne D.



"JB" wrote:
Bonjour,

http://cjoint.com/?dyovjy7mIn

JB
http://boisgontierjacques.free.fr/

On 24 mar, 14:00, frasax wrote:
Bonjour Le Troll

Merci pour la réponse, mais la macro na rien à voir avec x, y, je me suis
mal exprimé.
Ce que je veux, c'est une macro qui reprend les données de la feuill e <<
Articles_en_vente >> puis faire un transfert sur la feuille << Détai ls_vente >>.
En tenant compte que la ligne qui comporte le mot << armoire >> + << v endu >> ou
<< chaise >> + << vendu >>, soit transféré avec le prix et la date .
Ce qui veut dire que la colonne A est << armoire >> ou << chaise >> et c. en
colonne B << vendu >> en C << le prix >> en D << la date >> et en E << le nombre >>
trié par article.
J'espère avoir été un peu plus clair, je suis un débutant et m algré mes
recherches sur le forum, ce n'est pas toujours évident de trouver ce que l'on
veut.
Encore merci de me renseigner et à +

"LE TROLL" wrote:
Bonjour,

Je ne suis pas certain d'avoir compris, et en
plus, je crois que tu utilises, car tu écris "x"
; "y"
un fichier texte de structure csv, je présume,
mais je ne sais pas ?
Tu voudrais donc, lire chaque ligne, puis si les
deux premier arguments de chaque ligne
correspondent à quelque chose de voulue, tu
récupères la ligne... le IF, tu veux ?

If x = "a" AND y = "b" then ' récupère la ligne...

--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm

-------------------------------------------------------------------- ------------------
"frasax" a
écrit dans le message de news:

| Bonjour à tous,
|
| J'ai un problème avec une macro que j'ai trouvé
chez Isabelle.
| J'aimerais faire un tri par ligne avec deux
arguments.
| Exemple : Si.ET = ?armoire?; ?Vendu?
| La ligne est rangée sous :
| A B C
D
| E
| Genre d'article Vendu Prix
Date Nombre
| Réfrigérateur Vendu CHF 350.-
24.03.2008 X armoire
|
| X chaise
|
| X fauteuil etc.
| La macro est la suivante :
|
| Sub Macro2()
| fin =
Sheets("Articles_en_vente").Range("A65536").End(xlUp).Row
| ActiveWorkbook.Names.Add Name:="plage", _
| RefersTo:=Range("Articles_en_vente!$B$2:$A$" &
fin)
| Sheets("Détail_vente").Activate
| Range("plage").AdvancedFilter
Action:=xlFilterCopy, _
|
CopyToRange:=Sheets("Détail_vente").Range("B2:A2"),
Unique:=True
| f = Range("A65536").End(xlUp).Row
| Range("D2").Formula = "=CountIf(plage,a2)"
| Range("D2:D" & f).FillDown
| End Sub
|
| Merci à vous de votre aide, encore bonne fête et
à +
|- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -



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





Avatar
frasax
Re JB,

Merci c’est super, mais y a un hic, j’aurais voulu que les articles vendus
soient associés. Par exemple Réfrigérateur, il y en a 9 dans la macro essai
jb, or, dans les Articles_en_vente, il y a que 6 Réfrigérateurs vendus.
Peut-on ajouter la couleur à vendu pour les associés ?
Je ne sais pas trop comment associer les deux arguments.
Merci de retenter un essai ?
A +


"JB" wrote:

http://cjoint.com/?dyqtUPsZjO

Sub Essai_jb()
Sheets("Articles_en_vente").Select
Set mondico = CreateObject("Scripting.Dictionary")
For Each c In Range("A2", [A65000].End(xlUp))
If Not mondico.Exists(c.Value) And c.Offset(0, 1) = "vendu" Then
mondico.Add c.Value, 1
Else
temp = mondico.Item(c.Value)
mondico.Remove (c.Value)
mondico.Add c.Value, temp + 1
End If
Next c
Sheets("Détail_vente").[a2].Resize(mondico.Count, 1) > Application.Transpose(mondico.keys)
Sheets("Détail_vente").[e2].Resize(mondico.Count, 1) > Application.Transpose(mondico.items)
Sheets("Détail_vente").Select
End Sub

JB



On 24 mar, 15:50, frasax wrote:
Re Bonjour JB,

Je viens de voir qu'il n'est pas possible de mettre le prix.
Il faut donc déplacer la colonne C en D et mettre le nombre sous la colonne D.



"JB" wrote:
Bonjour,

http://cjoint.com/?dyovjy7mIn

JB
http://boisgontierjacques.free.fr/

On 24 mar, 14:00, frasax wrote:
Bonjour Le Troll

Merci pour la réponse, mais la macro na rien à voir avec x, y, je me suis
mal exprimé.
Ce que je veux, c'est une macro qui reprend les données de la feuille <<
Articles_en_vente >> puis faire un transfert sur la feuille << Détails_vente >>.
En tenant compte que la ligne qui comporte le mot << armoire >> + << vendu >> ou
<< chaise >> + << vendu >>, soit transféré avec le prix et la date..
Ce qui veut dire que la colonne A est << armoire >> ou << chaise >> etc. en
colonne B << vendu >> en C << le prix >> en D << la date >> et en E << le nombre >>
trié par article.
J'espère avoir été un peu plus clair, je suis un débutant et malgré mes
recherches sur le forum, ce n'est pas toujours évident de trouver ce que l'on
veut.
Encore merci de me renseigner et à +

"LE TROLL" wrote:
Bonjour,

Je ne suis pas certain d'avoir compris, et en
plus, je crois que tu utilises, car tu écris "x"
; "y"
un fichier texte de structure csv, je présume,
mais je ne sais pas ?
Tu voudrais donc, lire chaque ligne, puis si les
deux premier arguments de chaque ligne
correspondent à quelque chose de voulue, tu
récupères la ligne... le IF, tu veux ?

If x = "a" AND y = "b" then ' récupère la ligne...

--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm

--------------------------------------------------------------------------------------
"frasax" a
écrit dans le message de news:

| Bonjour à tous,
|
| J'ai un problème avec une macro que j'ai trouvé
chez Isabelle.
| J'aimerais faire un tri par ligne avec deux
arguments.
| Exemple : Si.ET = ?armoire?; ?Vendu?
| La ligne est rangée sous :
| A B C
D
| E
| Genre d'article Vendu Prix
Date Nombre
| Réfrigérateur Vendu CHF 350.-
24.03.2008 X armoire
|
| X chaise
|
| X fauteuil etc.
| La macro est la suivante :
|
| Sub Macro2()
| fin > > > > > Sheets("Articles_en_vente").Range("A65536").End(xlUp).Row
| ActiveWorkbook.Names.Add Name:="plage", _
| RefersTo:=Range("Articles_en_vente!$B$2:$A$" &
fin)
| Sheets("Détail_vente").Activate
| Range("plage").AdvancedFilter
Action:=xlFilterCopy, _
|
CopyToRange:=Sheets("Détail_vente").Range("B2:A2"),
Unique:=True
| f = Range("A65536").End(xlUp).Row
| Range("D2").Formula = "=CountIf(plage,a2)"
| Range("D2:D" & f).FillDown
| End Sub
|
| Merci à vous de votre aide, encore bonne fête et
à +
|- 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 -









Avatar
JB
http://cjoint.com/?dyrEi1REgh

Peut-on ajouter la couleur à vendu pour les associés ?


Je ne comprends pas

JB



On 24 mar, 17:03, frasax wrote:
Re JB,

Merci c'est super, mais y a un hic, j'aurais voulu que les articles vendus
soient associés. Par exemple Réfrigérateur, il y en a 9 dans la macr o essai
jb, or, dans les Articles_en_vente, il y a que 6 Réfrigérateurs vendus .
Peut-on ajouter la couleur à vendu pour les associés ?
Je ne sais pas trop comment associer les deux arguments.
Merci de retenter un essai ?
A +



"JB" wrote:
http://cjoint.com/?dyqtUPsZjO

Sub Essai_jb()
Sheets("Articles_en_vente").Select
Set mondico = CreateObject("Scripting.Dictionary")
For Each c In Range("A2", [A65000].End(xlUp))
If Not mondico.Exists(c.Value) And c.Offset(0, 1) = "vendu" Then
mondico.Add c.Value, 1
Else
temp = mondico.Item(c.Value)
mondico.Remove (c.Value)
mondico.Add c.Value, temp + 1
End If
Next c
Sheets("Détail_vente").[a2].Resize(mondico.Count, 1) =
Application.Transpose(mondico.keys)
Sheets("Détail_vente").[e2].Resize(mondico.Count, 1) =
Application.Transpose(mondico.items)
Sheets("Détail_vente").Select
End Sub

JB

On 24 mar, 15:50, frasax wrote:
Re Bonjour JB,

Je viens de voir qu'il n'est pas possible de mettre le prix.
Il faut donc déplacer la colonne C en D et mettre le nombre sous la colonne D.

"JB" wrote:
Bonjour,

http://cjoint.com/?dyovjy7mIn

JB
http://boisgontierjacques.free.fr/

On 24 mar, 14:00, frasax wrote:
Bonjour Le Troll

Merci pour la réponse, mais la macro na rien à voir avec x, y, je me suis
mal exprimé.
Ce que je veux, c'est une macro qui reprend les données de la fe uille <<
Articles_en_vente >> puis faire un transfert sur la feuille << D étails_vente >>.
En tenant compte que la ligne qui comporte le mot << armoire >> + << vendu >> ou
<< chaise >> + << vendu >>, soit transféré avec le prix et la date..
Ce qui veut dire que la colonne A est << armoire >> ou << chaise > > etc. en
colonne B << vendu >> en C << le prix >> en D << la date >> et en E << le nombre >>
trié par article.
J'espère avoir été un peu plus clair, je suis un débutant et malgré mes
recherches sur le forum, ce n'est pas toujours évident de trouve r ce que l'on
veut.
Encore merci de me renseigner et à +

"LE TROLL" wrote:
Bonjour,

Je ne suis pas certain d'avoir compris, et en
plus, je crois que tu utilises, car tu écris "x"
; "y"
un fichier texte de structure csv, je présume,
mais je ne sais pas ?
Tu voudrais donc, lire chaque ligne, puis si les
deux premier arguments de chaque ligne
correspondent à quelque chose de voulue, tu
récupères la ligne... le IF, tu veux ?

If x = "a" AND y = "b" then ' récupère la ligne...

--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm

---------------------------------------------------------------- -----------------------
"frasax" a
écrit dans le message de news:

| Bonjour à tous,
|
| J'ai un problème avec une macro que j'ai trouvé
chez Isabelle.
| J'aimerais faire un tri par ligne avec deux
arguments.
| Exemple : Si.ET = ?armoire?; ?Vendu?
| La ligne est rangée sous :
| A B C
D
| E
| Genre d'article Vendu Prix
Date Nombre
| Réfrigérateur Vendu CHF 350.-
24.03.2008 X armoire
|
| X chaise
|
| X fauteuil etc.
| La macro est la suivante :
|
| Sub Macro2()
| fin =
Sheets("Articles_en_vente").Range("A65536").End(xlUp).Row
| ActiveWorkbook.Names.Add Name:="plage", _
| RefersTo:=Range("Articles_en_vente!$B$2:$A$" &
fin)
| Sheets("Détail_vente").Activate
| Range("plage").AdvancedFilter
Action:=xlFilterCopy, _
|
CopyToRange:=Sheets("Détail_vente").Range("B2:A2"),
Unique:=True
| f = Range("A65536").End(xlUp).Row
| Range("D2").Formula = "=CountIf(plage,a2)"
| Range("D2:D" & f).FillDown
| End Sub
|
| Merci à vous de votre aide, encore bonne fête et
à +
|- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -- Masquer le text e des messages précédents -



- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -



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







Avatar
JB
Avec TCD:

http://cjoint.com/?dyr6ISdGt1

JB


On 24 mar, 17:03, frasax wrote:
Re JB,

Merci c'est super, mais y a un hic, j'aurais voulu que les articles vendus
soient associés. Par exemple Réfrigérateur, il y en a 9 dans la macr o essai
jb, or, dans les Articles_en_vente, il y a que 6 Réfrigérateurs vendus .
Peut-on ajouter la couleur à vendu pour les associés ?
Je ne sais pas trop comment associer les deux arguments.
Merci de retenter un essai ?
A +



"JB" wrote:
http://cjoint.com/?dyqtUPsZjO

Sub Essai_jb()
Sheets("Articles_en_vente").Select
Set mondico = CreateObject("Scripting.Dictionary")
For Each c In Range("A2", [A65000].End(xlUp))
If Not mondico.Exists(c.Value) And c.Offset(0, 1) = "vendu" Then
mondico.Add c.Value, 1
Else
temp = mondico.Item(c.Value)
mondico.Remove (c.Value)
mondico.Add c.Value, temp + 1
End If
Next c
Sheets("Détail_vente").[a2].Resize(mondico.Count, 1) =
Application.Transpose(mondico.keys)
Sheets("Détail_vente").[e2].Resize(mondico.Count, 1) =
Application.Transpose(mondico.items)
Sheets("Détail_vente").Select
End Sub

JB

On 24 mar, 15:50, frasax wrote:
Re Bonjour JB,

Je viens de voir qu'il n'est pas possible de mettre le prix.
Il faut donc déplacer la colonne C en D et mettre le nombre sous la colonne D.

"JB" wrote:
Bonjour,

http://cjoint.com/?dyovjy7mIn

JB
http://boisgontierjacques.free.fr/

On 24 mar, 14:00, frasax wrote:
Bonjour Le Troll

Merci pour la réponse, mais la macro na rien à voir avec x, y, je me suis
mal exprimé.
Ce que je veux, c'est une macro qui reprend les données de la fe uille <<
Articles_en_vente >> puis faire un transfert sur la feuille << D étails_vente >>.
En tenant compte que la ligne qui comporte le mot << armoire >> + << vendu >> ou
<< chaise >> + << vendu >>, soit transféré avec le prix et la date..
Ce qui veut dire que la colonne A est << armoire >> ou << chaise > > etc. en
colonne B << vendu >> en C << le prix >> en D << la date >> et en E << le nombre >>
trié par article.
J'espère avoir été un peu plus clair, je suis un débutant et malgré mes
recherches sur le forum, ce n'est pas toujours évident de trouve r ce que l'on
veut.
Encore merci de me renseigner et à +

"LE TROLL" wrote:
Bonjour,

Je ne suis pas certain d'avoir compris, et en
plus, je crois que tu utilises, car tu écris "x"
; "y"
un fichier texte de structure csv, je présume,
mais je ne sais pas ?
Tu voudrais donc, lire chaque ligne, puis si les
deux premier arguments de chaque ligne
correspondent à quelque chose de voulue, tu
récupères la ligne... le IF, tu veux ?

If x = "a" AND y = "b" then ' récupère la ligne...

--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm

---------------------------------------------------------------- -----------------------
"frasax" a
écrit dans le message de news:

| Bonjour à tous,
|
| J'ai un problème avec une macro que j'ai trouvé
chez Isabelle.
| J'aimerais faire un tri par ligne avec deux
arguments.
| Exemple : Si.ET = ?armoire?; ?Vendu?
| La ligne est rangée sous :
| A B C
D
| E
| Genre d'article Vendu Prix
Date Nombre
| Réfrigérateur Vendu CHF 350.-
24.03.2008 X armoire
|
| X chaise
|
| X fauteuil etc.
| La macro est la suivante :
|
| Sub Macro2()
| fin =
Sheets("Articles_en_vente").Range("A65536").End(xlUp).Row
| ActiveWorkbook.Names.Add Name:="plage", _
| RefersTo:=Range("Articles_en_vente!$B$2:$A$" &
fin)
| Sheets("Détail_vente").Activate
| Range("plage").AdvancedFilter
Action:=xlFilterCopy, _
|
CopyToRange:=Sheets("Détail_vente").Range("B2:A2"),
Unique:=True
| f = Range("A65536").End(xlUp).Row
| Range("D2").Formula = "=CountIf(plage,a2)"
| Range("D2:D" & f).FillDown
| End Sub
|
| Merci à vous de votre aide, encore bonne fête et
à +
|- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -- Masquer le text e des messages précédents -



- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -



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







Avatar
frasax
JB,

Merci c’est super, ça fonctionne comme je voulais.
A la question, peut-on ajouter la couleur à vendu pour les associés ?
Plus rien à voir puisque la macro fonctionne sans. Le cas est résolu.
Vous êtes vraiment génial sur ce forum, vraiment Merci de votre
disponibilité et votre compréhension avec les débutants.
A une autre fois.

frasax

"JB" wrote:

http://cjoint.com/?dyrEi1REgh

Peut-on ajouter la couleur à vendu pour les associés ?


Je ne comprends pas

JB



On 24 mar, 17:03, frasax wrote:
Re JB,

Merci c'est super, mais y a un hic, j'aurais voulu que les articles vendus
soient associés. Par exemple Réfrigérateur, il y en a 9 dans la macro essai
jb, or, dans les Articles_en_vente, il y a que 6 Réfrigérateurs vendus..
Peut-on ajouter la couleur à vendu pour les associés ?
Je ne sais pas trop comment associer les deux arguments.
Merci de retenter un essai ?
A +



"JB" wrote:
http://cjoint.com/?dyqtUPsZjO

Sub Essai_jb()
Sheets("Articles_en_vente").Select
Set mondico = CreateObject("Scripting.Dictionary")
For Each c In Range("A2", [A65000].End(xlUp))
If Not mondico.Exists(c.Value) And c.Offset(0, 1) = "vendu" Then
mondico.Add c.Value, 1
Else
temp = mondico.Item(c.Value)
mondico.Remove (c.Value)
mondico.Add c.Value, temp + 1
End If
Next c
Sheets("Détail_vente").[a2].Resize(mondico.Count, 1) > > > Application.Transpose(mondico.keys)
Sheets("Détail_vente").[e2].Resize(mondico.Count, 1) > > > Application.Transpose(mondico.items)
Sheets("Détail_vente").Select
End Sub

JB

On 24 mar, 15:50, frasax wrote:
Re Bonjour JB,

Je viens de voir qu'il n'est pas possible de mettre le prix.
Il faut donc déplacer la colonne C en D et mettre le nombre sous la colonne D.

"JB" wrote:
Bonjour,

http://cjoint.com/?dyovjy7mIn

JB
http://boisgontierjacques.free.fr/

On 24 mar, 14:00, frasax wrote:
Bonjour Le Troll

Merci pour la réponse, mais la macro na rien à voir avec x, y, je me suis
mal exprimé.
Ce que je veux, c'est une macro qui reprend les données de la feuille <<
Articles_en_vente >> puis faire un transfert sur la feuille << Détails_vente >>.
En tenant compte que la ligne qui comporte le mot << armoire >> + << vendu >> ou
<< chaise >> + << vendu >>, soit transféré avec le prix et la date..
Ce qui veut dire que la colonne A est << armoire >> ou << chaise >> etc. en
colonne B << vendu >> en C << le prix >> en D << la date >> et en E << le nombre >>
trié par article.
J'espère avoir été un peu plus clair, je suis un débutant et malgré mes
recherches sur le forum, ce n'est pas toujours évident de trouver ce que l'on
veut.
Encore merci de me renseigner et à +

"LE TROLL" wrote:
Bonjour,

Je ne suis pas certain d'avoir compris, et en
plus, je crois que tu utilises, car tu écris "x"
; "y"
un fichier texte de structure csv, je présume,
mais je ne sais pas ?
Tu voudrais donc, lire chaque ligne, puis si les
deux premier arguments de chaque ligne
correspondent à quelque chose de voulue, tu
récupères la ligne... le IF, tu veux ?

If x = "a" AND y = "b" then ' récupère la ligne...

--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm

---------------------------------------------------------------------------------------
"frasax" a
écrit dans le message de news:

| Bonjour à tous,
|
| J'ai un problème avec une macro que j'ai trouvé
chez Isabelle.
| J'aimerais faire un tri par ligne avec deux
arguments.
| Exemple : Si.ET = ?armoire?; ?Vendu?
| La ligne est rangée sous :
| A B C
D
| E
| Genre d'article Vendu Prix
Date Nombre
| Réfrigérateur Vendu CHF 350.-
24.03.2008 X armoire
|
| X chaise
|
| X fauteuil etc.
| La macro est la suivante :
|
| Sub Macro2()
| fin > > > > > > > Sheets("Articles_en_vente").Range("A65536").End(xlUp).Row
| ActiveWorkbook.Names.Add Name:="plage", _
| RefersTo:=Range("Articles_en_vente!$B$2:$A$" &
fin)
| Sheets("Détail_vente").Activate
| Range("plage").AdvancedFilter
Action:=xlFilterCopy, _
|
CopyToRange:=Sheets("Détail_vente").Range("B2:A2"),
Unique:=True
| f = Range("A65536").End(xlUp).Row
| Range("D2").Formula = "=CountIf(plage,a2)"
| Range("D2:D" & f).FillDown
| End Sub
|
| Merci à vous de votre aide, encore bonne fête et
à +
|- 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 -- Masquer le texte des messages précédents -



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