Bonjour à toutes et tous.
Mes données sur une feuille "Machine" en ligne 3 à partir de la colon ne C, 1
colonne sur 2 (Zone nommée "Détenteur").
En fait, ces données sont centrées sur 2 colonnes (C3:D3, E3:F3,...)
Ce sont des noms non triés alpha, qui peuvent se répéter.
Comment, sur la feuille "Inventaire", obtenir une liste de validation tri ée,
sans vide ni doublon ?
J'ai passé une bonne partie de l'après-midi à triturer les différ ents
exemples de JB, sans y parvenir.
D'avance, merci à qui pourra me donner la solution - si elle existe !
(formule ou VBA).
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.
Bonjour à toutes et tous.
Mes données sur une feuille "Machine" en ligne 3 à partir de la colon ne C, 1
colonne sur 2 (Zone nommée "Détenteur").
En fait, ces données sont centrées sur 2 colonnes (C3:D3, E3:F3,...)
Ce sont des noms non triés alpha, qui peuvent se répéter.
Comment, sur la feuille "Inventaire", obtenir une liste de validation tri ée,
sans vide ni doublon ?
J'ai passé une bonne partie de l'après-midi à triturer les différ ents
exemples de JB, sans y parvenir.
D'avance, merci à qui pourra me donner la solution - si elle existe !
(formule ou VBA).
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.
Bonjour à toutes et tous.
Mes données sur une feuille "Machine" en ligne 3 à partir de la colon ne C, 1
colonne sur 2 (Zone nommée "Détenteur").
En fait, ces données sont centrées sur 2 colonnes (C3:D3, E3:F3,...)
Ce sont des noms non triés alpha, qui peuvent se répéter.
Comment, sur la feuille "Inventaire", obtenir une liste de validation tri ée,
sans vide ni doublon ?
J'ai passé une bonne partie de l'après-midi à triturer les différ ents
exemples de JB, sans y parvenir.
D'avance, merci à qui pourra me donner la solution - si elle existe !
(formule ou VBA).
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.
Bonjour,
http://boisgontierjacques.free.fr/pages_site/sommeprod.htm#RechercheValeursNom
JB
On 19 août, 01:46, "Patrick BASTARD"
wrote:Bonjour à toutes et tous.
Mes données sur une feuille "Machine" en ligne 3 à partir de la
colonne C, 1 colonne sur 2 (Zone nommée "Détenteur").
En fait, ces données sont centrées sur 2 colonnes (C3:D3, E3:F3,...)
Ce sont des noms non triés alpha, qui peuvent se répéter.
Comment, sur la feuille "Inventaire", obtenir une liste de
validation triée, sans vide ni doublon ?
J'ai passé une bonne partie de l'après-midi à triturer les différents
exemples de JB, sans y parvenir.
D'avance, merci à qui pourra me donner la solution - si elle existe !
(formule ou VBA).
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.
Bonjour,
http://boisgontierjacques.free.fr/pages_site/sommeprod.htm#RechercheValeursNom
JB
On 19 août, 01:46, "Patrick BASTARD"
<pasdespambasta...@freepasdespam.fr> wrote:
Bonjour à toutes et tous.
Mes données sur une feuille "Machine" en ligne 3 à partir de la
colonne C, 1 colonne sur 2 (Zone nommée "Détenteur").
En fait, ces données sont centrées sur 2 colonnes (C3:D3, E3:F3,...)
Ce sont des noms non triés alpha, qui peuvent se répéter.
Comment, sur la feuille "Inventaire", obtenir une liste de
validation triée, sans vide ni doublon ?
J'ai passé une bonne partie de l'après-midi à triturer les différents
exemples de JB, sans y parvenir.
D'avance, merci à qui pourra me donner la solution - si elle existe !
(formule ou VBA).
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.
Bonjour,
http://boisgontierjacques.free.fr/pages_site/sommeprod.htm#RechercheValeursNom
JB
On 19 août, 01:46, "Patrick BASTARD"
wrote:Bonjour à toutes et tous.
Mes données sur une feuille "Machine" en ligne 3 à partir de la
colonne C, 1 colonne sur 2 (Zone nommée "Détenteur").
En fait, ces données sont centrées sur 2 colonnes (C3:D3, E3:F3,...)
Ce sont des noms non triés alpha, qui peuvent se répéter.
Comment, sur la feuille "Inventaire", obtenir une liste de
validation triée, sans vide ni doublon ?
J'ai passé une bonne partie de l'après-midi à triturer les différents
exemples de JB, sans y parvenir.
D'avance, merci à qui pourra me donner la solution - si elle existe !
(formule ou VBA).
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.
Bonjour, *JB*
Merci pour ton exemple.
J'ai dû mal m'exprimer.
J'avais déjà réussi, grâce à un autre de tes exemples, à obte nir les numéros
de machine d'un détenteur en A1 :
=TRANSPOSE(SI(ESTNUM(PETITE.VALEUR(SI(DETENTEUR¡;NUMERO);COLONNE(IN DIRECT("1:"&COLONNES(DETENTEUR)))));PETITE.VALEUR(SI(DETENTEUR¡;NUME RO);COLONNE(INDIRECT("1:"&COLONNES(DETENTEUR))));0))
Et je prends note de ta proposition qui est plus courte :
=TRANSPOSE(INDEX(NUMERO;PETITE.VALEUR(SI(DETENTEUR¡;EQUIV(NUMERO;NU MERO;0));COLONNE(INDIRECT("1:"&COLONNES(NUMERO))))))
Maintenant, je cherche, en reprenant ton exemple, à obtenir la liste
"Charlie, Dupont, Martin, ..." pour générer une validation en A1. Le but :
extraire les machines d'un détenteur non pas en entrant son nom, mais en
choisissant celui-ci dans une liste déroulante.
L'objectif à terme étant de pouvoir, par macro, générer l'éditi on d'une
fiche d'inventaire pour chaque item de la liste située en A1.
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.Bonjour,
http://boisgontierjacques.free.fr/pages_site/sommeprod.htm#RechercheV...
JB
On 19 août, 01:46, "Patrick BASTARD"
wrote:Bonjour à toutes et tous.
Mes données sur une feuille "Machine" en ligne 3 à partir de la
colonne C, 1 colonne sur 2 (Zone nommée "Détenteur").
En fait, ces données sont centrées sur 2 colonnes (C3:D3, E3:F3,.. .)
Ce sont des noms non triés alpha, qui peuvent se répéter.
Comment, sur la feuille "Inventaire", obtenir une liste de
validation triée, sans vide ni doublon ?
J'ai passé une bonne partie de l'après-midi à triturer les diff érents
exemples de JB, sans y parvenir.
D'avance, merci à qui pourra me donner la solution - si elle existe !
(formule ou VBA).
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour, *JB*
Merci pour ton exemple.
J'ai dû mal m'exprimer.
J'avais déjà réussi, grâce à un autre de tes exemples, à obte nir les numéros
de machine d'un détenteur en A1 :
=TRANSPOSE(SI(ESTNUM(PETITE.VALEUR(SI(DETENTEUR=A1;NUMERO);COLONNE(IN DIRECT("1:"&COLONNES(DETENTEUR)))));PETITE.VALEUR(SI(DETENTEUR=A1;NUME RO);COLONNE(INDIRECT("1:"&COLONNES(DETENTEUR))));0))
Et je prends note de ta proposition qui est plus courte :
=TRANSPOSE(INDEX(NUMERO;PETITE.VALEUR(SI(DETENTEUR=A1;EQUIV(NUMERO;NU MERO;0));COLONNE(INDIRECT("1:"&COLONNES(NUMERO))))))
Maintenant, je cherche, en reprenant ton exemple, à obtenir la liste
"Charlie, Dupont, Martin, ..." pour générer une validation en A1. Le but :
extraire les machines d'un détenteur non pas en entrant son nom, mais en
choisissant celui-ci dans une liste déroulante.
L'objectif à terme étant de pouvoir, par macro, générer l'éditi on d'une
fiche d'inventaire pour chaque item de la liste située en A1.
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.
Bonjour,
http://boisgontierjacques.free.fr/pages_site/sommeprod.htm#RechercheV...
JB
On 19 août, 01:46, "Patrick BASTARD"
<pasdespambasta...@freepasdespam.fr> wrote:
Bonjour à toutes et tous.
Mes données sur une feuille "Machine" en ligne 3 à partir de la
colonne C, 1 colonne sur 2 (Zone nommée "Détenteur").
En fait, ces données sont centrées sur 2 colonnes (C3:D3, E3:F3,.. .)
Ce sont des noms non triés alpha, qui peuvent se répéter.
Comment, sur la feuille "Inventaire", obtenir une liste de
validation triée, sans vide ni doublon ?
J'ai passé une bonne partie de l'après-midi à triturer les diff érents
exemples de JB, sans y parvenir.
D'avance, merci à qui pourra me donner la solution - si elle existe !
(formule ou VBA).
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour, *JB*
Merci pour ton exemple.
J'ai dû mal m'exprimer.
J'avais déjà réussi, grâce à un autre de tes exemples, à obte nir les numéros
de machine d'un détenteur en A1 :
=TRANSPOSE(SI(ESTNUM(PETITE.VALEUR(SI(DETENTEUR¡;NUMERO);COLONNE(IN DIRECT("1:"&COLONNES(DETENTEUR)))));PETITE.VALEUR(SI(DETENTEUR¡;NUME RO);COLONNE(INDIRECT("1:"&COLONNES(DETENTEUR))));0))
Et je prends note de ta proposition qui est plus courte :
=TRANSPOSE(INDEX(NUMERO;PETITE.VALEUR(SI(DETENTEUR¡;EQUIV(NUMERO;NU MERO;0));COLONNE(INDIRECT("1:"&COLONNES(NUMERO))))))
Maintenant, je cherche, en reprenant ton exemple, à obtenir la liste
"Charlie, Dupont, Martin, ..." pour générer une validation en A1. Le but :
extraire les machines d'un détenteur non pas en entrant son nom, mais en
choisissant celui-ci dans une liste déroulante.
L'objectif à terme étant de pouvoir, par macro, générer l'éditi on d'une
fiche d'inventaire pour chaque item de la liste située en A1.
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.Bonjour,
http://boisgontierjacques.free.fr/pages_site/sommeprod.htm#RechercheV...
JB
On 19 août, 01:46, "Patrick BASTARD"
wrote:Bonjour à toutes et tous.
Mes données sur une feuille "Machine" en ligne 3 à partir de la
colonne C, 1 colonne sur 2 (Zone nommée "Détenteur").
En fait, ces données sont centrées sur 2 colonnes (C3:D3, E3:F3,.. .)
Ce sont des noms non triés alpha, qui peuvent se répéter.
Comment, sur la feuille "Inventaire", obtenir une liste de
validation triée, sans vide ni doublon ?
J'ai passé une bonne partie de l'après-midi à triturer les diff érents
exemples de JB, sans y parvenir.
D'avance, merci à qui pourra me donner la solution - si elle existe !
(formule ou VBA).
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Avec fonction perso.
http://cjoint.com/?itmlbwaTSt
Function SansDoublonsTriéLig(champ As Range)
Set MonDico = CreateObject("Scripting.Dictionary")
temp = Application.Transpose(champ)
For i = 1 To UBound(temp, 1)
If Not MonDico.Exists(temp(i, 1)) Then MonDico.Add temp(i, 1),
temp(i, 1)
Next i
a = MonDico.items
j = UBound(a)
Call tri(a, 0, j)
SansDoublonsTriéLig = Application.Transpose(a)
End Function
Sub tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
JB
On 19 août, 11:26, "Patrick BASTARD"
wrote:Bonjour, *JB*
Merci pour ton exemple.
J'ai dû mal m'exprimer.
J'avais déjà réussi, grâce à un autre de tes exemples, à obtenir les
numéros de machine d'un détenteur en A1 :
=TRANSPOSE(SI(ESTNUM(PETITE.VALEUR(SI(DETENTEUR¡;NUMERO);COLONNE(INDIRECT("1:"&COLONNES(DETENTEUR)))));PETITE.VALEUR(SI(DETENTEUR¡;NUMERO);COLONNE(INDIRECT("1:"&COLONNES(DETENTEUR))));0))
Et je prends note de ta proposition qui est plus courte :
=TRANSPOSE(INDEX(NUMERO;PETITE.VALEUR(SI(DETENTEUR¡;EQUIV(NUMERO;NUMERO;0));COLONNE(INDIRECT("1:"&COLONNES(NUMERO))))))
Maintenant, je cherche, en reprenant ton exemple, à obtenir la liste
"Charlie, Dupont, Martin, ..." pour générer une validation en A1. Le
but : extraire les machines d'un détenteur non pas en entrant son
nom, mais en choisissant celui-ci dans une liste déroulante.
L'objectif à terme étant de pouvoir, par macro, générer l'édition
d'une fiche d'inventaire pour chaque item de la liste située en A1.
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.Bonjour,
http://boisgontierjacques.free.fr/pages_site/sommeprod.htm#RechercheV...
JB
On 19 août, 01:46, "Patrick BASTARD"
wrote:Bonjour à toutes et tous.
Mes données sur une feuille "Machine" en ligne 3 à partir de la
colonne C, 1 colonne sur 2 (Zone nommée "Détenteur").
En fait, ces données sont centrées sur 2 colonnes (C3:D3,
E3:F3,...)
Ce sont des noms non triés alpha, qui peuvent se répéter.
Comment, sur la feuille "Inventaire", obtenir une liste de
validation triée, sans vide ni doublon ?
J'ai passé une bonne partie de l'après-midi à triturer les
différents
exemples de JB, sans y parvenir.
D'avance, merci à qui pourra me donner la solution - si elle
existe ! (formule ou VBA).
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.-
Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Avec fonction perso.
http://cjoint.com/?itmlbwaTSt
Function SansDoublonsTriéLig(champ As Range)
Set MonDico = CreateObject("Scripting.Dictionary")
temp = Application.Transpose(champ)
For i = 1 To UBound(temp, 1)
If Not MonDico.Exists(temp(i, 1)) Then MonDico.Add temp(i, 1),
temp(i, 1)
Next i
a = MonDico.items
j = UBound(a)
Call tri(a, 0, j)
SansDoublonsTriéLig = Application.Transpose(a)
End Function
Sub tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
JB
On 19 août, 11:26, "Patrick BASTARD"
<pasdespambasta...@freepasdespam.fr> wrote:
Bonjour, *JB*
Merci pour ton exemple.
J'ai dû mal m'exprimer.
J'avais déjà réussi, grâce à un autre de tes exemples, à obtenir les
numéros de machine d'un détenteur en A1 :
=TRANSPOSE(SI(ESTNUM(PETITE.VALEUR(SI(DETENTEUR¡;NUMERO);COLONNE(INDIRECT("1:"&COLONNES(DETENTEUR)))));PETITE.VALEUR(SI(DETENTEUR¡;NUMERO);COLONNE(INDIRECT("1:"&COLONNES(DETENTEUR))));0))
Et je prends note de ta proposition qui est plus courte :
=TRANSPOSE(INDEX(NUMERO;PETITE.VALEUR(SI(DETENTEUR¡;EQUIV(NUMERO;NUMERO;0));COLONNE(INDIRECT("1:"&COLONNES(NUMERO))))))
Maintenant, je cherche, en reprenant ton exemple, à obtenir la liste
"Charlie, Dupont, Martin, ..." pour générer une validation en A1. Le
but : extraire les machines d'un détenteur non pas en entrant son
nom, mais en choisissant celui-ci dans une liste déroulante.
L'objectif à terme étant de pouvoir, par macro, générer l'édition
d'une fiche d'inventaire pour chaque item de la liste située en A1.
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.
Bonjour,
http://boisgontierjacques.free.fr/pages_site/sommeprod.htm#RechercheV...
JB
On 19 août, 01:46, "Patrick BASTARD"
<pasdespambasta...@freepasdespam.fr> wrote:
Bonjour à toutes et tous.
Mes données sur une feuille "Machine" en ligne 3 à partir de la
colonne C, 1 colonne sur 2 (Zone nommée "Détenteur").
En fait, ces données sont centrées sur 2 colonnes (C3:D3,
E3:F3,...)
Ce sont des noms non triés alpha, qui peuvent se répéter.
Comment, sur la feuille "Inventaire", obtenir une liste de
validation triée, sans vide ni doublon ?
J'ai passé une bonne partie de l'après-midi à triturer les
différents
exemples de JB, sans y parvenir.
D'avance, merci à qui pourra me donner la solution - si elle
existe ! (formule ou VBA).
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.-
Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Avec fonction perso.
http://cjoint.com/?itmlbwaTSt
Function SansDoublonsTriéLig(champ As Range)
Set MonDico = CreateObject("Scripting.Dictionary")
temp = Application.Transpose(champ)
For i = 1 To UBound(temp, 1)
If Not MonDico.Exists(temp(i, 1)) Then MonDico.Add temp(i, 1),
temp(i, 1)
Next i
a = MonDico.items
j = UBound(a)
Call tri(a, 0, j)
SansDoublonsTriéLig = Application.Transpose(a)
End Function
Sub tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
JB
On 19 août, 11:26, "Patrick BASTARD"
wrote:Bonjour, *JB*
Merci pour ton exemple.
J'ai dû mal m'exprimer.
J'avais déjà réussi, grâce à un autre de tes exemples, à obtenir les
numéros de machine d'un détenteur en A1 :
=TRANSPOSE(SI(ESTNUM(PETITE.VALEUR(SI(DETENTEUR¡;NUMERO);COLONNE(INDIRECT("1:"&COLONNES(DETENTEUR)))));PETITE.VALEUR(SI(DETENTEUR¡;NUMERO);COLONNE(INDIRECT("1:"&COLONNES(DETENTEUR))));0))
Et je prends note de ta proposition qui est plus courte :
=TRANSPOSE(INDEX(NUMERO;PETITE.VALEUR(SI(DETENTEUR¡;EQUIV(NUMERO;NUMERO;0));COLONNE(INDIRECT("1:"&COLONNES(NUMERO))))))
Maintenant, je cherche, en reprenant ton exemple, à obtenir la liste
"Charlie, Dupont, Martin, ..." pour générer une validation en A1. Le
but : extraire les machines d'un détenteur non pas en entrant son
nom, mais en choisissant celui-ci dans une liste déroulante.
L'objectif à terme étant de pouvoir, par macro, générer l'édition
d'une fiche d'inventaire pour chaque item de la liste située en A1.
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.Bonjour,
http://boisgontierjacques.free.fr/pages_site/sommeprod.htm#RechercheV...
JB
On 19 août, 01:46, "Patrick BASTARD"
wrote:Bonjour à toutes et tous.
Mes données sur une feuille "Machine" en ligne 3 à partir de la
colonne C, 1 colonne sur 2 (Zone nommée "Détenteur").
En fait, ces données sont centrées sur 2 colonnes (C3:D3,
E3:F3,...)
Ce sont des noms non triés alpha, qui peuvent se répéter.
Comment, sur la feuille "Inventaire", obtenir une liste de
validation triée, sans vide ni doublon ?
J'ai passé une bonne partie de l'après-midi à triturer les
différents
exemples de JB, sans y parvenir.
D'avance, merci à qui pourra me donner la solution - si elle
existe ! (formule ou VBA).
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.-
Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour, *Jacques*
Mille mercis.
Pile poil ce que je cherchais.
Impressionnant !!!
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.Avec fonction perso.
http://cjoint.com/?itmlbwaTSt
Function SansDoublonsTriéLig(champ As Range)
Set MonDico = CreateObject("Scripting.Dictionary")
temp = Application.Transpose(champ)
For i = 1 To UBound(temp, 1)
If Not MonDico.Exists(temp(i, 1)) Then MonDico.Add temp(i, 1),
temp(i, 1)
Next i
a = MonDico.items
j = UBound(a)
Call tri(a, 0, j)
SansDoublonsTriéLig = Application.Transpose(a)
End Function
Sub tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
JB
On 19 août, 11:26, "Patrick BASTARD"
wrote:Bonjour, *JB*
Merci pour ton exemple.
J'ai dû mal m'exprimer.
J'avais déjà réussi, grâce à un autre de tes exemples, à o btenir les
numéros de machine d'un détenteur en A1 :
=TRANSPOSE(SI(ESTNUM(PETITE.VALEUR(SI(DETENTEUR¡;NUMERO);COLONNE (INDIRECT("1:"&COLONNES(DETENTEUR)))));PETITE.VALEUR(SI(DETENTEUR=A 1;NUMERO);COLONNE(INDIRECT("1:"&COLONNES(DETENTEUR))));0))
Et je prends note de ta proposition qui est plus courte :
=TRANSPOSE(INDEX(NUMERO;PETITE.VALEUR(SI(DETENTEUR¡;EQUIV(NUMERO ;NUMERO;0));COLONNE(INDIRECT("1:"&COLONNES(NUMERO))))))
Maintenant, je cherche, en reprenant ton exemple, à obtenir la liste
"Charlie, Dupont, Martin, ..." pour générer une validation en A1. Le
but : extraire les machines d'un détenteur non pas en entrant son
nom, mais en choisissant celui-ci dans une liste déroulante.
L'objectif à terme étant de pouvoir, par macro, générer l'éd ition
d'une fiche d'inventaire pour chaque item de la liste située en A1.
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.Bonjour,
http://boisgontierjacques.free.fr/pages_site/sommeprod.htm#RechercheV. ..
JB
On 19 août, 01:46, "Patrick BASTARD"
wrote:Bonjour à toutes et tous.
Mes données sur une feuille "Machine" en ligne 3 à partir de la
colonne C, 1 colonne sur 2 (Zone nommée "Détenteur").
En fait, ces données sont centrées sur 2 colonnes (C3:D3,
E3:F3,...)
Ce sont des noms non triés alpha, qui peuvent se répéter.
Comment, sur la feuille "Inventaire", obtenir une liste de
validation triée, sans vide ni doublon ?
J'ai passé une bonne partie de l'après-midi à triturer les
différents
exemples de JB, sans y parvenir.
D'avance, merci à qui pourra me donner la solution - si elle
existe ! (formule ou VBA).
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.-
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 -
Bonjour, *Jacques*
Mille mercis.
Pile poil ce que je cherchais.
Impressionnant !!!
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.
Avec fonction perso.
http://cjoint.com/?itmlbwaTSt
Function SansDoublonsTriéLig(champ As Range)
Set MonDico = CreateObject("Scripting.Dictionary")
temp = Application.Transpose(champ)
For i = 1 To UBound(temp, 1)
If Not MonDico.Exists(temp(i, 1)) Then MonDico.Add temp(i, 1),
temp(i, 1)
Next i
a = MonDico.items
j = UBound(a)
Call tri(a, 0, j)
SansDoublonsTriéLig = Application.Transpose(a)
End Function
Sub tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
JB
On 19 août, 11:26, "Patrick BASTARD"
<pasdespambasta...@freepasdespam.fr> wrote:
Bonjour, *JB*
Merci pour ton exemple.
J'ai dû mal m'exprimer.
J'avais déjà réussi, grâce à un autre de tes exemples, à o btenir les
numéros de machine d'un détenteur en A1 :
=TRANSPOSE(SI(ESTNUM(PETITE.VALEUR(SI(DETENTEUR=A1;NUMERO);COLONNE (INDIRECT("1:"&COLONNES(DETENTEUR)))));PETITE.VALEUR(SI(DETENTEUR=A 1;NUMERO);COLONNE(INDIRECT("1:"&COLONNES(DETENTEUR))));0))
Et je prends note de ta proposition qui est plus courte :
=TRANSPOSE(INDEX(NUMERO;PETITE.VALEUR(SI(DETENTEUR=A1;EQUIV(NUMERO ;NUMERO;0));COLONNE(INDIRECT("1:"&COLONNES(NUMERO))))))
Maintenant, je cherche, en reprenant ton exemple, à obtenir la liste
"Charlie, Dupont, Martin, ..." pour générer une validation en A1. Le
but : extraire les machines d'un détenteur non pas en entrant son
nom, mais en choisissant celui-ci dans une liste déroulante.
L'objectif à terme étant de pouvoir, par macro, générer l'éd ition
d'une fiche d'inventaire pour chaque item de la liste située en A1.
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.
Bonjour,
http://boisgontierjacques.free.fr/pages_site/sommeprod.htm#RechercheV. ..
JB
On 19 août, 01:46, "Patrick BASTARD"
<pasdespambasta...@freepasdespam.fr> wrote:
Bonjour à toutes et tous.
Mes données sur une feuille "Machine" en ligne 3 à partir de la
colonne C, 1 colonne sur 2 (Zone nommée "Détenteur").
En fait, ces données sont centrées sur 2 colonnes (C3:D3,
E3:F3,...)
Ce sont des noms non triés alpha, qui peuvent se répéter.
Comment, sur la feuille "Inventaire", obtenir une liste de
validation triée, sans vide ni doublon ?
J'ai passé une bonne partie de l'après-midi à triturer les
différents
exemples de JB, sans y parvenir.
D'avance, merci à qui pourra me donner la solution - si elle
existe ! (formule ou VBA).
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.-
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 -
Bonjour, *Jacques*
Mille mercis.
Pile poil ce que je cherchais.
Impressionnant !!!
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.Avec fonction perso.
http://cjoint.com/?itmlbwaTSt
Function SansDoublonsTriéLig(champ As Range)
Set MonDico = CreateObject("Scripting.Dictionary")
temp = Application.Transpose(champ)
For i = 1 To UBound(temp, 1)
If Not MonDico.Exists(temp(i, 1)) Then MonDico.Add temp(i, 1),
temp(i, 1)
Next i
a = MonDico.items
j = UBound(a)
Call tri(a, 0, j)
SansDoublonsTriéLig = Application.Transpose(a)
End Function
Sub tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
JB
On 19 août, 11:26, "Patrick BASTARD"
wrote:Bonjour, *JB*
Merci pour ton exemple.
J'ai dû mal m'exprimer.
J'avais déjà réussi, grâce à un autre de tes exemples, à o btenir les
numéros de machine d'un détenteur en A1 :
=TRANSPOSE(SI(ESTNUM(PETITE.VALEUR(SI(DETENTEUR¡;NUMERO);COLONNE (INDIRECT("1:"&COLONNES(DETENTEUR)))));PETITE.VALEUR(SI(DETENTEUR=A 1;NUMERO);COLONNE(INDIRECT("1:"&COLONNES(DETENTEUR))));0))
Et je prends note de ta proposition qui est plus courte :
=TRANSPOSE(INDEX(NUMERO;PETITE.VALEUR(SI(DETENTEUR¡;EQUIV(NUMERO ;NUMERO;0));COLONNE(INDIRECT("1:"&COLONNES(NUMERO))))))
Maintenant, je cherche, en reprenant ton exemple, à obtenir la liste
"Charlie, Dupont, Martin, ..." pour générer une validation en A1. Le
but : extraire les machines d'un détenteur non pas en entrant son
nom, mais en choisissant celui-ci dans une liste déroulante.
L'objectif à terme étant de pouvoir, par macro, générer l'éd ition
d'une fiche d'inventaire pour chaque item de la liste située en A1.
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.Bonjour,
http://boisgontierjacques.free.fr/pages_site/sommeprod.htm#RechercheV. ..
JB
On 19 août, 01:46, "Patrick BASTARD"
wrote:Bonjour à toutes et tous.
Mes données sur une feuille "Machine" en ligne 3 à partir de la
colonne C, 1 colonne sur 2 (Zone nommée "Détenteur").
En fait, ces données sont centrées sur 2 colonnes (C3:D3,
E3:F3,...)
Ce sont des noms non triés alpha, qui peuvent se répéter.
Comment, sur la feuille "Inventaire", obtenir une liste de
validation triée, sans vide ni doublon ?
J'ai passé une bonne partie de l'après-midi à triturer les
différents
exemples de JB, sans y parvenir.
D'avance, merci à qui pourra me donner la solution - si elle
existe ! (formule ou VBA).
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.-
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 -
Une petite modif si nom vide dans le champ
http://cjoint.com/?itnriNFnuk
JB
On 19 août, 12:26, "Patrick BASTARD"
wrote:Bonjour, *Jacques*
Mille mercis.
Pile poil ce que je cherchais.
Impressionnant !!!
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.Avec fonction perso.
http://cjoint.com/?itmlbwaTSt
Function SansDoublonsTriéLig(champ As Range)
Set MonDico = CreateObject("Scripting.Dictionary")
temp = Application.Transpose(champ)
For i = 1 To UBound(temp, 1)
If Not MonDico.Exists(temp(i, 1)) Then MonDico.Add temp(i, 1),
temp(i, 1)
Next i
a = MonDico.items
j = UBound(a)
Call tri(a, 0, j)
SansDoublonsTriéLig = Application.Transpose(a)
End Function
Sub tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
JB
On 19 août, 11:26, "Patrick BASTARD"
wrote:Bonjour, *JB*
Merci pour ton exemple.
J'ai dû mal m'exprimer.
J'avais déjà réussi, grâce à un autre de tes exemples, à obtenir
les
numéros de machine d'un détenteur en A1 :
=TRANSPOSE(SI(ESTNUM(PETITE.VALEUR(SI(DETENTEUR¡;NUMERO);COLONNE(INDIRECT("1:"&COLONNES(DETENTEUR)))));PETITE.VALEUR(SI(DETENTEUR¡;NUMERO);COLONNE(INDIRECT("1:"&COLONNES(DETENTEUR))));0))
Et je prends note de ta proposition qui est plus courte :
=TRANSPOSE(INDEX(NUMERO;PETITE.VALEUR(SI(DETENTEUR¡;EQUIV(NUMERO;NUMERO;0));COLONNE(INDIRECT("1:"&COLONNES(NUMERO))))))
Maintenant, je cherche, en reprenant ton exemple, à obtenir la
liste "Charlie, Dupont, Martin, ..." pour générer une validation
en A1. Le
but : extraire les machines d'un détenteur non pas en entrant son
nom, mais en choisissant celui-ci dans une liste déroulante.
L'objectif à terme étant de pouvoir, par macro, générer l'édition
d'une fiche d'inventaire pour chaque item de la liste située en A1.
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.Bonjour,
http://boisgontierjacques.free.fr/pages_site/sommeprod.htm#RechercheV...
JB
On 19 août, 01:46, "Patrick BASTARD"
wrote:Bonjour à toutes et tous.
Mes données sur une feuille "Machine" en ligne 3 à partir de la
colonne C, 1 colonne sur 2 (Zone nommée "Détenteur").
En fait, ces données sont centrées sur 2 colonnes (C3:D3,
E3:F3,...)
Ce sont des noms non triés alpha, qui peuvent se répéter.
Comment, sur la feuille "Inventaire", obtenir une liste de
validation triée, sans vide ni doublon ?
J'ai passé une bonne partie de l'après-midi à triturer les
différents
exemples de JB, sans y parvenir.
D'avance, merci à qui pourra me donner la solution - si elle
existe ! (formule ou VBA).
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.-
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 -
Une petite modif si nom vide dans le champ
http://cjoint.com/?itnriNFnuk
JB
On 19 août, 12:26, "Patrick BASTARD"
<pasdespambasta...@freepasdespam.fr> wrote:
Bonjour, *Jacques*
Mille mercis.
Pile poil ce que je cherchais.
Impressionnant !!!
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.
Avec fonction perso.
http://cjoint.com/?itmlbwaTSt
Function SansDoublonsTriéLig(champ As Range)
Set MonDico = CreateObject("Scripting.Dictionary")
temp = Application.Transpose(champ)
For i = 1 To UBound(temp, 1)
If Not MonDico.Exists(temp(i, 1)) Then MonDico.Add temp(i, 1),
temp(i, 1)
Next i
a = MonDico.items
j = UBound(a)
Call tri(a, 0, j)
SansDoublonsTriéLig = Application.Transpose(a)
End Function
Sub tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
JB
On 19 août, 11:26, "Patrick BASTARD"
<pasdespambasta...@freepasdespam.fr> wrote:
Bonjour, *JB*
Merci pour ton exemple.
J'ai dû mal m'exprimer.
J'avais déjà réussi, grâce à un autre de tes exemples, à obtenir
les
numéros de machine d'un détenteur en A1 :
=TRANSPOSE(SI(ESTNUM(PETITE.VALEUR(SI(DETENTEUR¡;NUMERO);COLONNE(INDIRECT("1:"&COLONNES(DETENTEUR)))));PETITE.VALEUR(SI(DETENTEUR¡;NUMERO);COLONNE(INDIRECT("1:"&COLONNES(DETENTEUR))));0))
Et je prends note de ta proposition qui est plus courte :
=TRANSPOSE(INDEX(NUMERO;PETITE.VALEUR(SI(DETENTEUR¡;EQUIV(NUMERO;NUMERO;0));COLONNE(INDIRECT("1:"&COLONNES(NUMERO))))))
Maintenant, je cherche, en reprenant ton exemple, à obtenir la
liste "Charlie, Dupont, Martin, ..." pour générer une validation
en A1. Le
but : extraire les machines d'un détenteur non pas en entrant son
nom, mais en choisissant celui-ci dans une liste déroulante.
L'objectif à terme étant de pouvoir, par macro, générer l'édition
d'une fiche d'inventaire pour chaque item de la liste située en A1.
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.
Bonjour,
http://boisgontierjacques.free.fr/pages_site/sommeprod.htm#RechercheV...
JB
On 19 août, 01:46, "Patrick BASTARD"
<pasdespambasta...@freepasdespam.fr> wrote:
Bonjour à toutes et tous.
Mes données sur une feuille "Machine" en ligne 3 à partir de la
colonne C, 1 colonne sur 2 (Zone nommée "Détenteur").
En fait, ces données sont centrées sur 2 colonnes (C3:D3,
E3:F3,...)
Ce sont des noms non triés alpha, qui peuvent se répéter.
Comment, sur la feuille "Inventaire", obtenir une liste de
validation triée, sans vide ni doublon ?
J'ai passé une bonne partie de l'après-midi à triturer les
différents
exemples de JB, sans y parvenir.
D'avance, merci à qui pourra me donner la solution - si elle
existe ! (formule ou VBA).
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.-
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 -
Une petite modif si nom vide dans le champ
http://cjoint.com/?itnriNFnuk
JB
On 19 août, 12:26, "Patrick BASTARD"
wrote:Bonjour, *Jacques*
Mille mercis.
Pile poil ce que je cherchais.
Impressionnant !!!
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.Avec fonction perso.
http://cjoint.com/?itmlbwaTSt
Function SansDoublonsTriéLig(champ As Range)
Set MonDico = CreateObject("Scripting.Dictionary")
temp = Application.Transpose(champ)
For i = 1 To UBound(temp, 1)
If Not MonDico.Exists(temp(i, 1)) Then MonDico.Add temp(i, 1),
temp(i, 1)
Next i
a = MonDico.items
j = UBound(a)
Call tri(a, 0, j)
SansDoublonsTriéLig = Application.Transpose(a)
End Function
Sub tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
JB
On 19 août, 11:26, "Patrick BASTARD"
wrote:Bonjour, *JB*
Merci pour ton exemple.
J'ai dû mal m'exprimer.
J'avais déjà réussi, grâce à un autre de tes exemples, à obtenir
les
numéros de machine d'un détenteur en A1 :
=TRANSPOSE(SI(ESTNUM(PETITE.VALEUR(SI(DETENTEUR¡;NUMERO);COLONNE(INDIRECT("1:"&COLONNES(DETENTEUR)))));PETITE.VALEUR(SI(DETENTEUR¡;NUMERO);COLONNE(INDIRECT("1:"&COLONNES(DETENTEUR))));0))
Et je prends note de ta proposition qui est plus courte :
=TRANSPOSE(INDEX(NUMERO;PETITE.VALEUR(SI(DETENTEUR¡;EQUIV(NUMERO;NUMERO;0));COLONNE(INDIRECT("1:"&COLONNES(NUMERO))))))
Maintenant, je cherche, en reprenant ton exemple, à obtenir la
liste "Charlie, Dupont, Martin, ..." pour générer une validation
en A1. Le
but : extraire les machines d'un détenteur non pas en entrant son
nom, mais en choisissant celui-ci dans une liste déroulante.
L'objectif à terme étant de pouvoir, par macro, générer l'édition
d'une fiche d'inventaire pour chaque item de la liste située en A1.
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.Bonjour,
http://boisgontierjacques.free.fr/pages_site/sommeprod.htm#RechercheV...
JB
On 19 août, 01:46, "Patrick BASTARD"
wrote:Bonjour à toutes et tous.
Mes données sur une feuille "Machine" en ligne 3 à partir de la
colonne C, 1 colonne sur 2 (Zone nommée "Détenteur").
En fait, ces données sont centrées sur 2 colonnes (C3:D3,
E3:F3,...)
Ce sont des noms non triés alpha, qui peuvent se répéter.
Comment, sur la feuille "Inventaire", obtenir une liste de
validation triée, sans vide ni doublon ?
J'ai passé une bonne partie de l'après-midi à triturer les
différents
exemples de JB, sans y parvenir.
D'avance, merci à qui pourra me donner la solution - si elle
existe ! (formule ou VBA).
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.-
Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte
des messages précédents -
- Afficher le texte des messages précédents -
Bonjour, *Jacques*
Merci pour ce complément.
J'avais pour ma part résolu le cas des cellules vides au niveau de la
validation :
ÞCALER(PremDet;1;;NB.SI(ListeDetenteurs;"<>#N/A")-1)
PremDet = 1° ligne de la matrice, ListeDetenteurs= matrice
en voyant que les cellules vides renvoyaient en 1° position la valeur 0.
Je reviens vers toi pour te demander, si ce n'est pas abuser, de m'expliq uer
le code de cette macro (aucune urgence, mais j'aime bien comprendre, et
impossible de l'exécuter en pas à pas détaillé pour voir l'évol ution des
variables) :
Sub tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.Une petite modif si nom vide dans le champ
http://cjoint.com/?itnriNFnuk
JB
On 19 août, 12:26, "Patrick BASTARD"
wrote:Bonjour, *Jacques*
Mille mercis.
Pile poil ce que je cherchais.
Impressionnant !!!
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.Avec fonction perso.
http://cjoint.com/?itmlbwaTSt
Function SansDoublonsTriéLig(champ As Range)
Set MonDico = CreateObject("Scripting.Dictionary")
temp = Application.Transpose(champ)
For i = 1 To UBound(temp, 1)
If Not MonDico.Exists(temp(i, 1)) Then MonDico.Add temp(i, 1),
temp(i, 1)
Next i
a = MonDico.items
j = UBound(a)
Call tri(a, 0, j)
SansDoublonsTriéLig = Application.Transpose(a)
End Function
Sub tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
JB
On 19 août, 11:26, "Patrick BASTARD"
wrote:Bonjour, *JB*
Merci pour ton exemple.
J'ai dû mal m'exprimer.
J'avais déjà réussi, grâce à un autre de tes exemples, à obtenir
les
numéros de machine d'un détenteur en A1 :
=TRANSPOSE(SI(ESTNUM(PETITE.VALEUR(SI(DETENTEUR¡;NUMERO);COLON NE(INDIRECT("1:"&COLONNES(DETENTEUR)))));PETITE.VALEUR(SI(DETENTEU R¡;NUMERO);COLONNE(INDIRECT("1:"&COLONNES(DETENTEUR))));0))
Et je prends note de ta proposition qui est plus courte :
=TRANSPOSE(INDEX(NUMERO;PETITE.VALEUR(SI(DETENTEUR¡;EQUIV(NUME RO;NUMERO;0));COLONNE(INDIRECT("1:"&COLONNES(NUMERO))))))
Maintenant, je cherche, en reprenant ton exemple, à obtenir la
liste "Charlie, Dupont, Martin, ..." pour générer une validation
en A1. Le
but : extraire les machines d'un détenteur non pas en entrant son
nom, mais en choisissant celui-ci dans une liste déroulante.
L'objectif à terme étant de pouvoir, par macro, générer l' édition
d'une fiche d'inventaire pour chaque item de la liste située en A1.
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.Bonjour,
http://boisgontierjacques.free.fr/pages_site/sommeprod.htm#Recherche V...
JB
On 19 août, 01:46, "Patrick BASTARD"
wrote:Bonjour à toutes et tous.
Mes données sur une feuille "Machine" en ligne 3 à partir de la
colonne C, 1 colonne sur 2 (Zone nommée "Détenteur").
En fait, ces données sont centrées sur 2 colonnes (C3:D3,
E3:F3,...)
Ce sont des noms non triés alpha, qui peuvent se répéter.
Comment, sur la feuille "Inventaire", obtenir une liste de
validation triée, sans vide ni doublon ?
J'ai passé une bonne partie de l'après-midi à triturer les
différents
exemples de JB, sans y parvenir.
D'avance, merci à qui pourra me donner la solution - si elle
existe ! (formule ou VBA).
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.-
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 de s messages précédents -
- Afficher le texte des messages précédents -
Bonjour, *Jacques*
Merci pour ce complément.
J'avais pour ma part résolu le cas des cellules vides au niveau de la
validation :
=DECALER(PremDet;1;;NB.SI(ListeDetenteurs;"<>#N/A")-1)
PremDet = 1° ligne de la matrice, ListeDetenteurs= matrice
en voyant que les cellules vides renvoyaient en 1° position la valeur 0.
Je reviens vers toi pour te demander, si ce n'est pas abuser, de m'expliq uer
le code de cette macro (aucune urgence, mais j'aime bien comprendre, et
impossible de l'exécuter en pas à pas détaillé pour voir l'évol ution des
variables) :
Sub tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.
Une petite modif si nom vide dans le champ
http://cjoint.com/?itnriNFnuk
JB
On 19 août, 12:26, "Patrick BASTARD"
<pasdespambasta...@freepasdespam.fr> wrote:
Bonjour, *Jacques*
Mille mercis.
Pile poil ce que je cherchais.
Impressionnant !!!
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.
Avec fonction perso.
http://cjoint.com/?itmlbwaTSt
Function SansDoublonsTriéLig(champ As Range)
Set MonDico = CreateObject("Scripting.Dictionary")
temp = Application.Transpose(champ)
For i = 1 To UBound(temp, 1)
If Not MonDico.Exists(temp(i, 1)) Then MonDico.Add temp(i, 1),
temp(i, 1)
Next i
a = MonDico.items
j = UBound(a)
Call tri(a, 0, j)
SansDoublonsTriéLig = Application.Transpose(a)
End Function
Sub tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
JB
On 19 août, 11:26, "Patrick BASTARD"
<pasdespambasta...@freepasdespam.fr> wrote:
Bonjour, *JB*
Merci pour ton exemple.
J'ai dû mal m'exprimer.
J'avais déjà réussi, grâce à un autre de tes exemples, à obtenir
les
numéros de machine d'un détenteur en A1 :
=TRANSPOSE(SI(ESTNUM(PETITE.VALEUR(SI(DETENTEUR=A1;NUMERO);COLON NE(INDIRECT("1:"&COLONNES(DETENTEUR)))));PETITE.VALEUR(SI(DETENTEU R=A1;NUMERO);COLONNE(INDIRECT("1:"&COLONNES(DETENTEUR))));0))
Et je prends note de ta proposition qui est plus courte :
=TRANSPOSE(INDEX(NUMERO;PETITE.VALEUR(SI(DETENTEUR=A1;EQUIV(NUME RO;NUMERO;0));COLONNE(INDIRECT("1:"&COLONNES(NUMERO))))))
Maintenant, je cherche, en reprenant ton exemple, à obtenir la
liste "Charlie, Dupont, Martin, ..." pour générer une validation
en A1. Le
but : extraire les machines d'un détenteur non pas en entrant son
nom, mais en choisissant celui-ci dans une liste déroulante.
L'objectif à terme étant de pouvoir, par macro, générer l' édition
d'une fiche d'inventaire pour chaque item de la liste située en A1.
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.
Bonjour,
http://boisgontierjacques.free.fr/pages_site/sommeprod.htm#Recherche V...
JB
On 19 août, 01:46, "Patrick BASTARD"
<pasdespambasta...@freepasdespam.fr> wrote:
Bonjour à toutes et tous.
Mes données sur une feuille "Machine" en ligne 3 à partir de la
colonne C, 1 colonne sur 2 (Zone nommée "Détenteur").
En fait, ces données sont centrées sur 2 colonnes (C3:D3,
E3:F3,...)
Ce sont des noms non triés alpha, qui peuvent se répéter.
Comment, sur la feuille "Inventaire", obtenir une liste de
validation triée, sans vide ni doublon ?
J'ai passé une bonne partie de l'après-midi à triturer les
différents
exemples de JB, sans y parvenir.
D'avance, merci à qui pourra me donner la solution - si elle
existe ! (formule ou VBA).
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.-
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 de s messages précédents -
- Afficher le texte des messages précédents -
Bonjour, *Jacques*
Merci pour ce complément.
J'avais pour ma part résolu le cas des cellules vides au niveau de la
validation :
ÞCALER(PremDet;1;;NB.SI(ListeDetenteurs;"<>#N/A")-1)
PremDet = 1° ligne de la matrice, ListeDetenteurs= matrice
en voyant que les cellules vides renvoyaient en 1° position la valeur 0.
Je reviens vers toi pour te demander, si ce n'est pas abuser, de m'expliq uer
le code de cette macro (aucune urgence, mais j'aime bien comprendre, et
impossible de l'exécuter en pas à pas détaillé pour voir l'évol ution des
variables) :
Sub tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.Une petite modif si nom vide dans le champ
http://cjoint.com/?itnriNFnuk
JB
On 19 août, 12:26, "Patrick BASTARD"
wrote:Bonjour, *Jacques*
Mille mercis.
Pile poil ce que je cherchais.
Impressionnant !!!
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.Avec fonction perso.
http://cjoint.com/?itmlbwaTSt
Function SansDoublonsTriéLig(champ As Range)
Set MonDico = CreateObject("Scripting.Dictionary")
temp = Application.Transpose(champ)
For i = 1 To UBound(temp, 1)
If Not MonDico.Exists(temp(i, 1)) Then MonDico.Add temp(i, 1),
temp(i, 1)
Next i
a = MonDico.items
j = UBound(a)
Call tri(a, 0, j)
SansDoublonsTriéLig = Application.Transpose(a)
End Function
Sub tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
JB
On 19 août, 11:26, "Patrick BASTARD"
wrote:Bonjour, *JB*
Merci pour ton exemple.
J'ai dû mal m'exprimer.
J'avais déjà réussi, grâce à un autre de tes exemples, à obtenir
les
numéros de machine d'un détenteur en A1 :
=TRANSPOSE(SI(ESTNUM(PETITE.VALEUR(SI(DETENTEUR¡;NUMERO);COLON NE(INDIRECT("1:"&COLONNES(DETENTEUR)))));PETITE.VALEUR(SI(DETENTEU R¡;NUMERO);COLONNE(INDIRECT("1:"&COLONNES(DETENTEUR))));0))
Et je prends note de ta proposition qui est plus courte :
=TRANSPOSE(INDEX(NUMERO;PETITE.VALEUR(SI(DETENTEUR¡;EQUIV(NUME RO;NUMERO;0));COLONNE(INDIRECT("1:"&COLONNES(NUMERO))))))
Maintenant, je cherche, en reprenant ton exemple, à obtenir la
liste "Charlie, Dupont, Martin, ..." pour générer une validation
en A1. Le
but : extraire les machines d'un détenteur non pas en entrant son
nom, mais en choisissant celui-ci dans une liste déroulante.
L'objectif à terme étant de pouvoir, par macro, générer l' édition
d'une fiche d'inventaire pour chaque item de la liste située en A1.
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.Bonjour,
http://boisgontierjacques.free.fr/pages_site/sommeprod.htm#Recherche V...
JB
On 19 août, 01:46, "Patrick BASTARD"
wrote:Bonjour à toutes et tous.
Mes données sur une feuille "Machine" en ligne 3 à partir de la
colonne C, 1 colonne sur 2 (Zone nommée "Détenteur").
En fait, ces données sont centrées sur 2 colonnes (C3:D3,
E3:F3,...)
Ce sont des noms non triés alpha, qui peuvent se répéter.
Comment, sur la feuille "Inventaire", obtenir une liste de
validation triée, sans vide ni doublon ?
J'ai passé une bonne partie de l'après-midi à triturer les
différents
exemples de JB, sans y parvenir.
D'avance, merci à qui pourra me donner la solution - si elle
existe ! (formule ou VBA).
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.-
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 de s messages précédents -
- Afficher le texte des messages précédents -
http://boisgontierjacques.free.fr/pages_site/TriQuickSort.htm
JB
On 19 août, 16:05, "Patrick BASTARD"
wrote:Bonjour, *Jacques*
Merci pour ce complément.
J'avais pour ma part résolu le cas des cellules vides au niveau de la
validation :
ÞCALER(PremDet;1;;NB.SI(ListeDetenteurs;"<>#N/A")-1)
PremDet = 1° ligne de la matrice, ListeDetenteurs= matrice
en voyant que les cellules vides renvoyaient en 1° position la
valeur 0.
Je reviens vers toi pour te demander, si ce n'est pas abuser, de
m'expliquer le code de cette macro (aucune urgence, mais j'aime bien
comprendre, et impossible de l'exécuter en pas à pas détaillé pour
voir l'évolution des variables) :
Sub tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.Une petite modif si nom vide dans le champ
http://cjoint.com/?itnriNFnuk
JB
On 19 août, 12:26, "Patrick BASTARD"
wrote:Bonjour, *Jacques*
Mille mercis.
Pile poil ce que je cherchais.
Impressionnant !!!
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.Avec fonction perso.
http://cjoint.com/?itmlbwaTSt
Function SansDoublonsTriéLig(champ As Range)
Set MonDico = CreateObject("Scripting.Dictionary")
temp = Application.Transpose(champ)
For i = 1 To UBound(temp, 1)
If Not MonDico.Exists(temp(i, 1)) Then MonDico.Add temp(i, 1),
temp(i, 1)
Next i
a = MonDico.items
j = UBound(a)
Call tri(a, 0, j)
SansDoublonsTriéLig = Application.Transpose(a)
End Function
Sub tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
JB
On 19 août, 11:26, "Patrick BASTARD"
wrote:Bonjour, *JB*
Merci pour ton exemple.
J'ai dû mal m'exprimer.
J'avais déjà réussi, grâce à un autre de tes exemples, à obtenir
les
numéros de machine d'un détenteur en A1 :
=TRANSPOSE(SI(ESTNUM(PETITE.VALEUR(SI(DETENTEUR¡;NUMERO);COLONNE(INDIRECT("1:"&COLONNES(DETENTEUR)))));PETITE.VALEUR(SI(DETENTEUR¡;NUMERO);COLONNE(INDIRECT("1:"&COLONNES(DETENTEUR))));0))
Et je prends note de ta proposition qui est plus courte :
=TRANSPOSE(INDEX(NUMERO;PETITE.VALEUR(SI(DETENTEUR¡;EQUIV(NUMERO;NUMERO;0));COLONNE(INDIRECT("1:"&COLONNES(NUMERO))))))
Maintenant, je cherche, en reprenant ton exemple, à obtenir la
liste "Charlie, Dupont, Martin, ..." pour générer une validation
en A1. Le
but : extraire les machines d'un détenteur non pas en entrant son
nom, mais en choisissant celui-ci dans une liste déroulante.
L'objectif à terme étant de pouvoir, par macro, générer l'édition
d'une fiche d'inventaire pour chaque item de la liste située en
A1.
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.Bonjour,
http://boisgontierjacques.free.fr/pages_site/sommeprod.htm#RechercheV...
JB
On 19 août, 01:46, "Patrick BASTARD"
wrote:Bonjour à toutes et tous.
Mes données sur une feuille "Machine" en ligne 3 à partir de la
colonne C, 1 colonne sur 2 (Zone nommée "Détenteur").
En fait, ces données sont centrées sur 2 colonnes (C3:D3,
E3:F3,...)
Ce sont des noms non triés alpha, qui peuvent se répéter.
Comment, sur la feuille "Inventaire", obtenir une liste de
validation triée, sans vide ni doublon ?
J'ai passé une bonne partie de l'après-midi à triturer les
différents
exemples de JB, sans y parvenir.
D'avance, merci à qui pourra me donner la solution - si elle
existe ! (formule ou VBA).
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.-
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 -
http://boisgontierjacques.free.fr/pages_site/TriQuickSort.htm
JB
On 19 août, 16:05, "Patrick BASTARD"
<pasdespambasta...@freepasdespam.fr> wrote:
Bonjour, *Jacques*
Merci pour ce complément.
J'avais pour ma part résolu le cas des cellules vides au niveau de la
validation :
ÞCALER(PremDet;1;;NB.SI(ListeDetenteurs;"<>#N/A")-1)
PremDet = 1° ligne de la matrice, ListeDetenteurs= matrice
en voyant que les cellules vides renvoyaient en 1° position la
valeur 0.
Je reviens vers toi pour te demander, si ce n'est pas abuser, de
m'expliquer le code de cette macro (aucune urgence, mais j'aime bien
comprendre, et impossible de l'exécuter en pas à pas détaillé pour
voir l'évolution des variables) :
Sub tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.
Une petite modif si nom vide dans le champ
http://cjoint.com/?itnriNFnuk
JB
On 19 août, 12:26, "Patrick BASTARD"
<pasdespambasta...@freepasdespam.fr> wrote:
Bonjour, *Jacques*
Mille mercis.
Pile poil ce que je cherchais.
Impressionnant !!!
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.
Avec fonction perso.
http://cjoint.com/?itmlbwaTSt
Function SansDoublonsTriéLig(champ As Range)
Set MonDico = CreateObject("Scripting.Dictionary")
temp = Application.Transpose(champ)
For i = 1 To UBound(temp, 1)
If Not MonDico.Exists(temp(i, 1)) Then MonDico.Add temp(i, 1),
temp(i, 1)
Next i
a = MonDico.items
j = UBound(a)
Call tri(a, 0, j)
SansDoublonsTriéLig = Application.Transpose(a)
End Function
Sub tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
JB
On 19 août, 11:26, "Patrick BASTARD"
<pasdespambasta...@freepasdespam.fr> wrote:
Bonjour, *JB*
Merci pour ton exemple.
J'ai dû mal m'exprimer.
J'avais déjà réussi, grâce à un autre de tes exemples, à obtenir
les
numéros de machine d'un détenteur en A1 :
=TRANSPOSE(SI(ESTNUM(PETITE.VALEUR(SI(DETENTEUR¡;NUMERO);COLONNE(INDIRECT("1:"&COLONNES(DETENTEUR)))));PETITE.VALEUR(SI(DETENTEUR¡;NUMERO);COLONNE(INDIRECT("1:"&COLONNES(DETENTEUR))));0))
Et je prends note de ta proposition qui est plus courte :
=TRANSPOSE(INDEX(NUMERO;PETITE.VALEUR(SI(DETENTEUR¡;EQUIV(NUMERO;NUMERO;0));COLONNE(INDIRECT("1:"&COLONNES(NUMERO))))))
Maintenant, je cherche, en reprenant ton exemple, à obtenir la
liste "Charlie, Dupont, Martin, ..." pour générer une validation
en A1. Le
but : extraire les machines d'un détenteur non pas en entrant son
nom, mais en choisissant celui-ci dans une liste déroulante.
L'objectif à terme étant de pouvoir, par macro, générer l'édition
d'une fiche d'inventaire pour chaque item de la liste située en
A1.
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.
Bonjour,
http://boisgontierjacques.free.fr/pages_site/sommeprod.htm#RechercheV...
JB
On 19 août, 01:46, "Patrick BASTARD"
<pasdespambasta...@freepasdespam.fr> wrote:
Bonjour à toutes et tous.
Mes données sur une feuille "Machine" en ligne 3 à partir de la
colonne C, 1 colonne sur 2 (Zone nommée "Détenteur").
En fait, ces données sont centrées sur 2 colonnes (C3:D3,
E3:F3,...)
Ce sont des noms non triés alpha, qui peuvent se répéter.
Comment, sur la feuille "Inventaire", obtenir une liste de
validation triée, sans vide ni doublon ?
J'ai passé une bonne partie de l'après-midi à triturer les
différents
exemples de JB, sans y parvenir.
D'avance, merci à qui pourra me donner la solution - si elle
existe ! (formule ou VBA).
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.-
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 -
http://boisgontierjacques.free.fr/pages_site/TriQuickSort.htm
JB
On 19 août, 16:05, "Patrick BASTARD"
wrote:Bonjour, *Jacques*
Merci pour ce complément.
J'avais pour ma part résolu le cas des cellules vides au niveau de la
validation :
ÞCALER(PremDet;1;;NB.SI(ListeDetenteurs;"<>#N/A")-1)
PremDet = 1° ligne de la matrice, ListeDetenteurs= matrice
en voyant que les cellules vides renvoyaient en 1° position la
valeur 0.
Je reviens vers toi pour te demander, si ce n'est pas abuser, de
m'expliquer le code de cette macro (aucune urgence, mais j'aime bien
comprendre, et impossible de l'exécuter en pas à pas détaillé pour
voir l'évolution des variables) :
Sub tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.Une petite modif si nom vide dans le champ
http://cjoint.com/?itnriNFnuk
JB
On 19 août, 12:26, "Patrick BASTARD"
wrote:Bonjour, *Jacques*
Mille mercis.
Pile poil ce que je cherchais.
Impressionnant !!!
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.Avec fonction perso.
http://cjoint.com/?itmlbwaTSt
Function SansDoublonsTriéLig(champ As Range)
Set MonDico = CreateObject("Scripting.Dictionary")
temp = Application.Transpose(champ)
For i = 1 To UBound(temp, 1)
If Not MonDico.Exists(temp(i, 1)) Then MonDico.Add temp(i, 1),
temp(i, 1)
Next i
a = MonDico.items
j = UBound(a)
Call tri(a, 0, j)
SansDoublonsTriéLig = Application.Transpose(a)
End Function
Sub tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
JB
On 19 août, 11:26, "Patrick BASTARD"
wrote:Bonjour, *JB*
Merci pour ton exemple.
J'ai dû mal m'exprimer.
J'avais déjà réussi, grâce à un autre de tes exemples, à obtenir
les
numéros de machine d'un détenteur en A1 :
=TRANSPOSE(SI(ESTNUM(PETITE.VALEUR(SI(DETENTEUR¡;NUMERO);COLONNE(INDIRECT("1:"&COLONNES(DETENTEUR)))));PETITE.VALEUR(SI(DETENTEUR¡;NUMERO);COLONNE(INDIRECT("1:"&COLONNES(DETENTEUR))));0))
Et je prends note de ta proposition qui est plus courte :
=TRANSPOSE(INDEX(NUMERO;PETITE.VALEUR(SI(DETENTEUR¡;EQUIV(NUMERO;NUMERO;0));COLONNE(INDIRECT("1:"&COLONNES(NUMERO))))))
Maintenant, je cherche, en reprenant ton exemple, à obtenir la
liste "Charlie, Dupont, Martin, ..." pour générer une validation
en A1. Le
but : extraire les machines d'un détenteur non pas en entrant son
nom, mais en choisissant celui-ci dans une liste déroulante.
L'objectif à terme étant de pouvoir, par macro, générer l'édition
d'une fiche d'inventaire pour chaque item de la liste située en
A1.
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.Bonjour,
http://boisgontierjacques.free.fr/pages_site/sommeprod.htm#RechercheV...
JB
On 19 août, 01:46, "Patrick BASTARD"
wrote:Bonjour à toutes et tous.
Mes données sur une feuille "Machine" en ligne 3 à partir de la
colonne C, 1 colonne sur 2 (Zone nommée "Détenteur").
En fait, ces données sont centrées sur 2 colonnes (C3:D3,
E3:F3,...)
Ce sont des noms non triés alpha, qui peuvent se répéter.
Comment, sur la feuille "Inventaire", obtenir une liste de
validation triée, sans vide ni doublon ?
J'ai passé une bonne partie de l'après-midi à triturer les
différents
exemples de JB, sans y parvenir.
D'avance, merci à qui pourra me donner la solution - si elle
existe ! (formule ou VBA).
--
Bien amicordialement,
P. Bastard
Avant d'imprimer ce mail, ayez une pensée pour les arbres.-
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 -