Alimentation listbox par code

Le
Patrick BASTARD
Bonsoir à tous.

Je pars de 3 colonnes :
LR : alphanumérique exemple : L21401
CAISSE : alphanumérique exemple C12
REFER : alphanumérique exemple : %123456789

http://cjoint.com/?cvaAJLrr56

Je cherche à alimenter une listbox à 2 colonnes sur un userform avec :
En titre le titre des colonnes : LR - CAISSE et NOMBRE (je ne sais pas faire
!)
1° colonne : liste sans doublons de la concaténation de LR et CAISSE :
J'ai pû l'obtenir sur ma feuille avec la fonction de JB "sansdoublonstrié"
(en insérant, hélas!) une colonne supplémentaire.
2° colonne : nombre de REFER correspondants.
=SOMMEPROD(--(F$6:F$20=G6);1+0*(D$6:D$20)) m'a permis de l'obtenir.

La propriété rowsource ne me convient pas, car les zones seront dynamiques
( insertion de lignes sous le titre des colonnes).
Est-il possible par VBA d'alimenter automatiquement le listbox de manière
plus élégante (sans les colonnes intermédiaires, et si possible sans les N/A
et 0).

Et je ne sais pas encore manipuler les tableaux.

Merci d'avance pour vos suggestions.
--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
francois.forcet
Le #5242701
On 21 fév, 00:28, "Patrick BASTARD"
 Bonsoir à tous.

Je pars de 3 colonnes :
LR : alphanumérique exemple : L21401
CAISSE : alphanumérique exemple C12
REFER : alphanumérique exemple : %123456789

http://cjoint.com/?cvaAJLrr56

Je cherche à alimenter une listbox à 2 colonnes sur un userform avec :
En titre le titre des colonnes : LR - CAISSE et NOMBRE (je ne sais pas fai re
!)
1° colonne : liste sans doublons de la concaténation de LR et CAISSE :
J'ai pû l'obtenir sur ma feuille avec la fonction de JB "sansdoublonstri é"
(en insérant, hélas!) une colonne supplémentaire.
2° colonne : nombre de REFER correspondants.
=SOMMEPROD(--(F$6:F$20=G6);1+0*(D$6:D$20)) m'a permis de l'obtenir.

La propriété rowsource ne me convient pas, car les zones seront dynami ques
( insertion de lignes sous le titre des colonnes).
Est-il possible par VBA d'alimenter automatiquement le listbox de manièr e
plus élégante (sans les colonnes intermédiaires, et si possible sans les N/A
et 0).

Et je ne sais pas encore manipuler les tableaux.

Merci d'avance pour vos suggestions.
--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.


Salut Patrick

Je te propose ce code :

Do While Range("B6").Offset(i, 0).Address <>
Range("B65535").End(xlUp).Address
If Range("B6").Offset(i, 0) & "-" & Range("B6").Offset(i, 1) <>
Range("F65535").End(xlUp) Then
Range("F65535").End(xlUp).Offset(1, 0) = Range("B6").Offset(i, 0) &
"-" & Range("B6").Offset(i, 1)
End If
i = i + 1
Loop

En lieu et place de tes formules

Sur ce lien ton fichier modifié :

http://www.cijoint.fr/cjlink.php?file=cj200802/cij6786613235142.xls.

Active la macro "Traitement" et dis moi !!!!

Je pense que celà devrait te convenir

francois.forcet
Le #5242691
On 21 fév, 00:28, "Patrick BASTARD"
 Bonsoir à tous.

Je pars de 3 colonnes :
LR : alphanumérique exemple : L21401
CAISSE : alphanumérique exemple C12
REFER : alphanumérique exemple : %123456789

http://cjoint.com/?cvaAJLrr56

Je cherche à alimenter une listbox à 2 colonnes sur un userform avec :
En titre le titre des colonnes : LR - CAISSE et NOMBRE (je ne sais pas fai re
!)
1° colonne : liste sans doublons de la concaténation de LR et CAISSE :
J'ai pû l'obtenir sur ma feuille avec la fonction de JB "sansdoublonstri é"
(en insérant, hélas!) une colonne supplémentaire.
2° colonne : nombre de REFER correspondants.
=SOMMEPROD(--(F$6:F$20=G6);1+0*(D$6:D$20)) m'a permis de l'obtenir.

La propriété rowsource ne me convient pas, car les zones seront dynami ques
( insertion de lignes sous le titre des colonnes).
Est-il possible par VBA d'alimenter automatiquement le listbox de manièr e
plus élégante (sans les colonnes intermédiaires, et si possible sans les N/A
et 0).

Et je ne sais pas encore manipuler les tableaux.

Merci d'avance pour vos suggestions.
--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.


Rebonjours Patrick
Ci-joint une version avec le nombre de REFER correspondants

http://www.cijoint.fr/cjlink.php?file=cj200802/cij523111745119.xls.

Certainement mieux

Dis moi !!!

JB
Le #5242681
Bonjour,

http://cjoint.com/?cvi1f84owv


JB

On 21 fév, 00:28, "Patrick BASTARD"
 Bonsoir à tous.

Je pars de 3 colonnes :
LR : alphanumérique exemple : L21401
CAISSE : alphanumérique exemple C12
REFER : alphanumérique exemple : %123456789

http://cjoint.com/?cvaAJLrr56

Je cherche à alimenter une listbox à 2 colonnes sur un userform avec :
En titre le titre des colonnes : LR - CAISSE et NOMBRE (je ne sais pas fai re
!)
1° colonne : liste sans doublons de la concaténation de LR et CAISSE :
J'ai pû l'obtenir sur ma feuille avec la fonction de JB "sansdoublonstri é"
(en insérant, hélas!) une colonne supplémentaire.
2° colonne : nombre de REFER correspondants.
=SOMMEPROD(--(F$6:F$20=G6);1+0*(D$6:D$20)) m'a permis de l'obtenir.

La propriété rowsource ne me convient pas, car les zones seront dynami ques
( insertion de lignes sous le titre des colonnes).
Est-il possible par VBA d'alimenter automatiquement le listbox de manièr e
plus élégante (sans les colonnes intermédiaires, et si possible sans les N/A
et 0).

Et je ne sais pas encore manipuler les tableaux.

Merci d'avance pour vos suggestions.
--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.


francois.forcet
Le #5242671
On 21 fév, 00:28, "Patrick BASTARD"
 Bonsoir à tous.

Je pars de 3 colonnes :
LR : alphanumérique exemple : L21401
CAISSE : alphanumérique exemple C12
REFER : alphanumérique exemple : %123456789

http://cjoint.com/?cvaAJLrr56

Je cherche à alimenter une listbox à 2 colonnes sur un userform avec :
En titre le titre des colonnes : LR - CAISSE et NOMBRE (je ne sais pas fai re
!)
1° colonne : liste sans doublons de la concaténation de LR et CAISSE :
J'ai pû l'obtenir sur ma feuille avec la fonction de JB "sansdoublonstri é"
(en insérant, hélas!) une colonne supplémentaire.
2° colonne : nombre de REFER correspondants.
=SOMMEPROD(--(F$6:F$20=G6);1+0*(D$6:D$20)) m'a permis de l'obtenir.

La propriété rowsource ne me convient pas, car les zones seront dynami ques
( insertion de lignes sous le titre des colonnes).
Est-il possible par VBA d'alimenter automatiquement le listbox de manièr e
plus élégante (sans les colonnes intermédiaires, et si possible sans les N/A
et 0).

Et je ne sais pas encore manipuler les tableaux.

Merci d'avance pour vos suggestions.
--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.


Rebonjours Patrick

Une petite coquille sur ma dernière proposition avec le nombre de
REFER correspondants

En lieu et place cette nouvelle proposition

http://www.cijoint.fr/cjlink.php?file=cj200802/cij2588020925135.xls.

Donnes moi des nouvelles !!!

JB
Le #5242651
Solution sans aucune colonne intermédiaire:

http://cjoint.com/?cvjP3BhWas

Private Sub UserForm_Initialize()
Dim c()
Set mondico = CreateObject("Scripting.Dictionary")
temp = [B6:C1000]
For i = 1 To UBound(temp, 1)
x = temp(i, 1) & " - " & temp(i, 2)
If temp(i, 1) <> "" Then
If Not mondico.Exists(x) Then
mondico.Add x, 1
Else
y = mondico.Item(x)
mondico.Remove (x)
mondico.Add x, y + 1
End If
End If
Next i
n = mondico.Count
ReDim c(1 To n, 1 To 2)
a = mondico.keys
b = mondico.items
For i = 1 To n
c(i, 1) = a(i - 1)
c(i, 2) = b(i - 1)
Next i
'Me.ListBox2.List = c
j = UBound(c, 1)
Call tri2(c, 1, j)
Me.ListBox2.List = c
End Sub
Sub tri2(a(), gauc, droi) ' Quick sort
ref = a((gauc + droi) 2, 1)
g = gauc: d = droi
Do
Do While a(g, 1) < ref: g = g + 1: Loop
Do While ref < a(d, 1): d = d - 1: Loop
If g <= d Then
temp = a(g, 1): a(g, 1) = a(d, 1): a(d, 1) = temp
temp = a(g, 2): a(g, 2) = a(d, 2): a(d, 2) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri2(a, g, droi)
If gauc < d Then Call tri2(a, gauc, d)
End Sub

JB



On 21 fév, 08:53, JB
Bonjour,

http://cjoint.com/?cvi1f84owv

JB

On 21 fév, 00:28, "Patrick BASTARD"



 Bonsoir à tous.

Je pars de 3 colonnes :
LR : alphanumérique exemple : L21401
CAISSE : alphanumérique exemple C12
REFER : alphanumérique exemple : %123456789

http://cjoint.com/?cvaAJLrr56

Je cherche à alimenter une listbox à 2 colonnes sur un userform avec :
En titre le titre des colonnes : LR - CAISSE et NOMBRE (je ne sais pas f aire
!)
1° colonne : liste sans doublons de la concaténation de LR et CAISSE :
J'ai pû l'obtenir sur ma feuille avec la fonction de JB "sansdoublonst rié"
(en insérant, hélas!) une colonne supplémentaire.
2° colonne : nombre de REFER correspondants.
=SOMMEPROD(--(F$6:F$20=G6);1+0*(D$6:D$20)) m'a permis de l'obtenir.

La propriété rowsource ne me convient pas, car les zones seront dyna miques
( insertion de lignes sous le titre des colonnes).
Est-il possible par VBA d'alimenter automatiquement le listbox de mani ère
plus élégante (sans les colonnes intermédiaires, et si possible sa ns les N/A
et 0).

Et je ne sais pas encore manipuler les tableaux.

Merci d'avance pour vos suggestions.
--
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 -



Patrick BASTARD
Le #5242321
Bonjour, *francois*


En lieu et place cette nouvelle proposition

http://www.cijoint.fr/cjlink.php?file=cj200802/cij2588020925135.xls.

Donnes moi des nouvelles !!!


Je te remercie pour tes propositions, et le temps que tu as consacré à me
les proposer.

Efficace, j'archive.


PS : un conseil à mon tour, si je puis me permettre (c'est bien la moindre
des choses) : si tu veux éviter d'être pollué par les #?##! de spameurs,
évite de mettre ton adresse en clair.
--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.

Patrick BASTARD
Le #5242311
Bonsoir, *Jacques*

c'est comme d'habitude, quoi !
Net, efficace, élégant, sans bavure.
;-)
Il va falloir que je me mette aux tabeaux : vivement la retraite...

Merci, encore !

--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.


Solution sans aucune colonne intermédiaire:

http://cjoint.com/?cvjP3BhWas

Private Sub UserForm_Initialize()
Dim c()
Set mondico = CreateObject("Scripting.Dictionary")
temp = [B6:C1000]
For i = 1 To UBound(temp, 1)
x = temp(i, 1) & " - " & temp(i, 2)
If temp(i, 1) <> "" Then
If Not mondico.Exists(x) Then
mondico.Add x, 1
Else
y = mondico.Item(x)
mondico.Remove (x)
mondico.Add x, y + 1
End If
End If
Next i
n = mondico.Count
ReDim c(1 To n, 1 To 2)
a = mondico.keys
b = mondico.items
For i = 1 To n
c(i, 1) = a(i - 1)
c(i, 2) = b(i - 1)
Next i
'Me.ListBox2.List = c
j = UBound(c, 1)
Call tri2(c, 1, j)
Me.ListBox2.List = c
End Sub
Sub tri2(a(), gauc, droi) ' Quick sort
ref = a((gauc + droi) 2, 1)
g = gauc: d = droi
Do
Do While a(g, 1) < ref: g = g + 1: Loop
Do While ref < a(d, 1): d = d - 1: Loop
If g <= d Then
temp = a(g, 1): a(g, 1) = a(d, 1): a(d, 1) = temp
temp = a(g, 2): a(g, 2) = a(d, 2): a(d, 2) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri2(a, g, droi)
If gauc < d Then Call tri2(a, gauc, d)
End Sub

JB



On 21 fév, 08:53, JB
Bonjour,

http://cjoint.com/?cvi1f84owv

JB

On 21 fév, 00:28, "Patrick BASTARD"



Bonsoir à tous.

Je pars de 3 colonnes :
LR : alphanumérique exemple : L21401
CAISSE : alphanumérique exemple C12
REFER : alphanumérique exemple : %123456789

http://cjoint.com/?cvaAJLrr56

Je cherche à alimenter une listbox à 2 colonnes sur un userform
avec :
En titre le titre des colonnes : LR - CAISSE et NOMBRE (je ne sais
pas faire !)
1° colonne : liste sans doublons de la concaténation de LR et
CAISSE :
J'ai pû l'obtenir sur ma feuille avec la fonction de JB
"sansdoublonstrié" (en insérant, hélas!) une colonne supplémentaire.
2° colonne : nombre de REFER correspondants.
=SOMMEPROD(--(F$6:F$20=G6);1+0*(D$6:D$20)) m'a permis de l'obtenir.

La propriété rowsource ne me convient pas, car les zones seront
dynamiques ( insertion de lignes sous le titre des colonnes).
Est-il possible par VBA d'alimenter automatiquement le listbox de
manière
plus élégante (sans les colonnes intermédiaires, et si possible
sans les N/A
et 0).

Et je ne sais pas encore manipuler les tableaux.

Merci d'avance pour vos suggestions.
--
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 -





Publicité
Poster une réponse
Anonyme