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

Coupe de pouce pour un formulaire

11 réponses
Avatar
JMM21
Bonjour,

J'ai commencé la création d'un formulaire et j'ai besoin d'un coup de pouce…
J'ai des données dans une feuille excel (20 000 enregistrements environ) que
je souhaite consulter et éditer via un formulaire.
Le critère de recherche est une donnée numérique (PART), plusieurs
enregistrements possible pour un même PART. Je souhaite afficher dans une
ListBox chaque enregistrement pour un même PART, et faire des sommes dans une
seconde ListBox suivant deux critères.

Comme un exemple vaut mieux qu'un mauvais discours je joints un échantillon.

http://dl.free.fr/f8FcS0XHP


Bien sûr, je ne demande pas de tout me faire mais de me mettre sur les rails
(je travaille par mimétisme…)

Un GRAND MERCI d'avance

--
[Jmm21]
☺♂

10 réponses

1 2
Avatar
Daniel.C
Bonjour.
Je me suis occupé de la première listbox. J'ai aussi remplacé le
textbox par un combobox :
http://www.cijoint.fr/cjlink.php?file=cj200901/cij4k7qvnE.xls
Cordialement.
Daniel

Bonjour,

J'ai commencé la création d'un formulaire et j'ai besoin d'un coup de pouce…
J'ai des données dans une feuille excel (20 000 enregistrements environ) que
je souhaite consulter et éditer via un formulaire.
Le critère de recherche est une donnée numérique (PART), plusieurs
enregistrements possible pour un même PART. Je souhaite afficher dans une
ListBox chaque enregistrement pour un même PART, et faire des sommes dans une
seconde ListBox suivant deux critères.

Comme un exemple vaut mieux qu'un mauvais discours je joints un échantillon.

http://dl.free.fr/f8FcS0XHP


Bien sûr, je ne demande pas de tout me faire mais de me mettre sur les rails
(je travaille par mimétisme…)

Un GRAND MERCI d'avance


Avatar
JMM21
Bonjour,

Je n'ai pas encore bien regardé.

Merci pour le temps que vus m'avez consacré.

Cordialement

--
[Jmm21]
☺♂


"Daniel.C" a écrit :

Bonjour.
Je me suis occupé de la première listbox. J'ai aussi remplacé le
textbox par un combobox :
http://www.cijoint.fr/cjlink.php?file=cj200901/cij4k7qvnE.xls
Cordialement.
Daniel

> Bonjour,
>
> J'ai commencé la création d'un formulaire et j'ai besoin d'un coup de pouce…
> J'ai des données dans une feuille excel (20 000 enregistrements environ) que
> je souhaite consulter et éditer via un formulaire.
> Le critère de recherche est une donnée numérique (PART), plusieurs
> enregistrements possible pour un même PART. Je souhaite afficher dans une
> ListBox chaque enregistrement pour un même PART, et faire des sommes dans une
> seconde ListBox suivant deux critères.
>
> Comme un exemple vaut mieux qu'un mauvais discours je joints un échantillon.
>
> http://dl.free.fr/f8FcS0XHP
>
>
> Bien sûr, je ne demande pas de tout me faire mais de me mettre sur les rails
> (je travaille par mimétisme…)
>
> Un GRAND MERCI d'avance





Avatar
JMM21
Bonjour,

J'ai regardé ce que vous m'avez transmis, c'est super.
J'ai une belle marge de progression...
Un doléance cependant, je ne souhaite pas que les entêtes de colonne
réapparaissent dans la ListBox puisque elles sont déjà dans les Labels de la
UserForm.
Je vois bien que le code affecte la valeur de la colonne dans dans la
ListBox, mais je ne suis pas parvenu à prendre uniquement à partir de la
seconde ligne.
(De plus je ne veux pas que les données se cumulent à chaque intérro, mais
là un Me.ListBox1.Clear en début de code a fait l'affaire.)

Encore merci, je progresse petit à petit gràce à des gens comme vous.

Bien cordialement

--
[Jmm21]
☺♂
Avatar
Daniel.C
Bonjour.
Regarde le classeur :
http://www.cijoint.fr/cjlink.php?file=cj200901/cijoZLfMri.xls
N'hésite pas à demander ce qui te semble obscur dans le code.
Cordialement.
Daniel

Bonjour,

J'ai regardé ce que vous m'avez transmis, c'est super.
J'ai une belle marge de progression...
Un doléance cependant, je ne souhaite pas que les entêtes de colonne
réapparaissent dans la ListBox puisque elles sont déjà dans les Labels de la
UserForm.
Je vois bien que le code affecte la valeur de la colonne dans dans la
ListBox, mais je ne suis pas parvenu à prendre uniquement à partir de la
seconde ligne.
(De plus je ne veux pas que les données se cumulent à chaque intérro, mais
là un Me.ListBox1.Clear en début de code a fait l'affaire.)

Encore merci, je progresse petit à petit gràce à des gens comme vous.

Bien cordialement


Avatar
JMM21
Re-bonjour,

Je présume que le Me.Combox1.Clear est de trop ? :
Extrait de ton code
Private Sub UserForm_Initialize()
.../...
Me.ComboBox1.Clear ????
Me.ListBox1.Clear
End Sub

Pour les explications, car effectivement il a beaucoup de commandes et et de
variables que je découvre, je me permettrai te solliciter.

Merci encore pour la rapidité
--
[Jmm21]
☺♂
Avatar
Daniel.C
Plutôt, mal placé :

Private Sub UserForm_Initialize()
Dim Coll As New Collection, c As Range, Ctr As Long
Me.ComboBox1.Clear
With Sheets("Données")
On Error Resume Next
For Each c In Range(.[D2], .[D65000].End(xlUp))
Coll.Add CStr(c.Value), CStr(c.Value)
Next c
On Error GoTo 0
.Columns(33).ClearContents
For Each Item In Coll
Ctr = Ctr + 1
.Cells(Ctr, 33) = CLng(Item)
Next Item
Range(.[AG1], .[AG65000].End(xlUp)).Sort key1:=Range("AG1"),
order1:=xlAscending, Header:=xlNo
For Each c In Range(.[AG1], .[AG65000].End(xlUp))
Me.ComboBox1.AddItem c.Value
Next c
.Columns(33).ClearContents
End With
Me.ListBox1.Clear
End Sub

Daniel

Re-bonjour,

Je présume que le Me.Combox1.Clear est de trop ? :
Extrait de ton code
Private Sub UserForm_Initialize()
.../...
Me.ComboBox1.Clear ????
Me.ListBox1.Clear
End Sub

Pour les explications, car effectivement il a beaucoup de commandes et et de
variables que je découvre, je me permettrai te solliciter.

Merci encore pour la rapidité


Avatar
JMM21
Bonjour Daniel.C

Me revoilà...

J'ai continué le travail après ta mise sur orbite indispensable, en
particulier la seconde ListBox2 que je souhaitais enrichir de totaux.
J'ai donc "commis" un bout de code qui semble fonctionner, il y a sûrement
plus efficace.

http://dl.free.fr/qTCG7OzRq

J'ai trois questions (encore) :

1 : A l'ouverte du formulaire, la ListBox1 est vide. Si on valide, la macro
se plante sur : [ag2] = CLng(Me.ComboBox1.Value)
Je ne suis pas arrivé à gérer cette erreur, soit par un message, soit en
affichant la première valeur
2 : pourrait-on remplacer mon "bout de code" qui fait les totaux par un
autre qui insérerait une formule du type {=somme(si(plage="PBA");plage)} qui
me conviendrait mieux pour la suite.
3 : après reflexion, je souhaiterais pouvoir cumuler plusieurs PART à la
suite, dans la ListBox1 mais aussi à la suite en colonne [AH:BL], necessaire
pour l'édition.

Je suis peut-être gourmand...mais je n'ai pas d'autre ressource que ce forum
mutualiste.

Bien cordialement et bonne journée
--
[Jmm21]
☺♂
Avatar
Daniel.C
Bonjour.
1.
Remplacer la ligne :

[ag2] = CLng(Me.ComboBox1.Value)

par :

If Me.ComboBox1.Value = "" Then
MsgBox "Saisie obligatoire"
Exit Sub
End If
[ag2] = CLng(Me.ComboBox1.Value)

2. Ou veux-tu mettre la formule ? Tu ne peux pas la mettre dans la
listbox...

3. J'ai permis le choix de plusieurs PART. J'attends ta réponse pour le
calcul (ppoint 2).

http://www.cijoint.fr/cjlink.php?file=cj200901/cijkfSrrbF.xls

Daniel

Bonjour Daniel.C

Me revoilà...

J'ai continué le travail après ta mise sur orbite indispensable, en
particulier la seconde ListBox2 que je souhaitais enrichir de totaux.
J'ai donc "commis" un bout de code qui semble fonctionner, il y a sûrement
plus efficace.

http://dl.free.fr/qTCG7OzRq

J'ai trois questions (encore) :

1 : A l'ouverte du formulaire, la ListBox1 est vide. Si on valide, la macro
se plante sur : [ag2] = CLng(Me.ComboBox1.Value)
Je ne suis pas arrivé à gérer cette erreur, soit par un message, soit en
affichant la première valeur
2 : pourrait-on remplacer mon "bout de code" qui fait les totaux par un
autre qui insérerait une formule du type {=somme(si(plage="PBA");plage)} qui
me conviendrait mieux pour la suite.
3 : après reflexion, je souhaiterais pouvoir cumuler plusieurs PART à la
suite, dans la ListBox1 mais aussi à la suite en colonne [AH:BL], necessaire
pour l'édition.

Je suis peut-être gourmand...mais je n'ai pas d'autre ressource que ce forum
mutualiste.

Bien cordialement et bonne journée


Avatar
JMM21
Re...,

Pour le 1 , j'avais contourné avec
Me.ComboBox1.ListIndex = 0
sauvagement piqué sur un de tes derniers Post...

Effectivement tous les partenaires s'affichent maintenant dans la ListBox1,
par contre les totaux ne s'incrémentent pas, puisque les données sont
supprimées a chaque interro.
Pour plus de clarté, je te retourne le fichier avec ce que j'aimerais :
l'endroit où je souhaite voir la(les) formule(s), dans la perspective
d'utiliser cette partie de la feuille pour l'édition. J'aurais peut-être dû
utiliser une autre feuille ?

http://dl.free.fr/jaTPUQeEP

Merci

--
[Jmm21]
☺♂
Avatar
Daniel.C
http://www.cijoint.fr/cjlink.php?file=cj200901/cijXOas476.xls
Daniel

Re...,

Pour le 1 , j'avais contourné avec
Me.ComboBox1.ListIndex = 0
sauvagement piqué sur un de tes derniers Post...

Effectivement tous les partenaires s'affichent maintenant dans la ListBox1,
par contre les totaux ne s'incrémentent pas, puisque les données sont
supprimées a chaque interro.
Pour plus de clarté, je te retourne le fichier avec ce que j'aimerais :
l'endroit où je souhaite voir la(les) formule(s), dans la perspective
d'utiliser cette partie de la feuille pour l'édition. J'aurais peut-être dû
utiliser une autre feuille ?

http://dl.free.fr/jaTPUQeEP

Merci


1 2