listbox

L

lio

Guest
Bonjour le forum,
Voila, je suis novice en VBA et j'essai de construire par palier un petit programme pour apprendre. Peut être es ce la mauvaise méthode ( scinder chaque étape pour faire ce type de programme ?)

Mon problème réside pour l'instant dans l'alimentation de ma listbox pourtant j'ai repris les infos que l'on m'a données pour alimenter ma combobox en l'adaptant un peu.

Merci pour votre aide. [file name=Personne_20051010211437.zip size=16466]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Personne_20051010211437.zip[/file]
 

Pièces jointes

  • Personne_20051010211437.zip
    16.1 KB · Affichages: 19
L

lio

Guest
j'ai une 3ème question.
Tu écris dans le code de l'USF general:
Me.ListBox1.Clear
For L = 1 To UBound(Tabtemp, 1)
With Me.ListBox1
.ColumnWidths = Col
.AddItem Tabtemp(L, 1)
.Column(1, .ListCount - 1) = Tabtemp(L, 2)
.Column(2, .ListCount - 1) = Tabtemp(L, 3)

Aurais t'on pu écrire ce code:

Me.ListBox1.Clear
For L = 1 To UBound(Tabtemp, 1)
For L = 2 To UBound(Tabtemp,2)
For L = 3 To UBound(Tabtemp,3)
With Me.ListBox1
.ColumnWidths = Col
.AddItem Tabtemp(L, 1)
.AddItem Tabtemp(L, 2)
.AddItem Tabtemp(L, 3)

Merci.
 
L

lio

Guest
lio écrit:
j'ai une 3ème question.
Tu écris dans le code de l'USF general:
Me.ListBox1.Clear
For L = 1 To UBound(Tabtemp, 1)
With Me.ListBox1
.ColumnWidths = Col
.AddItem Tabtemp(L, 1)
.Column(1, .ListCount - 1) = Tabtemp(L, 2)
.Column(2, .ListCount - 1) = Tabtemp(L, 3)

Aurais t'on pu écrire ce code:

Me.ListBox1.Clear
For L = 1 To UBound(Tabtemp, 1)
For L = 2 To UBound(Tabtemp,2)
For L = 3 To UBound(Tabtemp,3)
With Me.ListBox1
.ColumnWidths = Col
.AddItem Tabtemp(L, 1)
.AddItem Tabtemp(L, 2)
.AddItem Tabtemp(L, 3)

PS:Dans ta programmation pourrait on remplacer:
Column(1, .ListCount - 1) = Tabtemp(L, 2) par
Column(1, .ListIndex) = Tabtemp(L, 2)
Merci.
 

ChTi160

XLDnaute Barbatruc
Salut lio

bonsoir le Forum

Arffff Beaucoup de Question

c'est très bien je vais tenté de te répondre

tout d'abord en programmation tu as souvent de nombreuses solutions

plus ou moins équivalentes(voir rapidité,lisibilité,poids dans le fichier etc
PS:Dans ta programmation pourrait on remplacer:
Column(1, .ListCount - 1) = Tabtemp(L, 2) par
Column(1, .ListIndex) = Tabtemp(L, 2)
réponse non
Car listcount renvoie le nombre d'éléments présents dans la listBox
donc 1 élément =Index 0
2 éléments =Index 1

tu comprends pour quoi pour inserer un nouvel élément dans une Liste on les compte et on retranche 1 pour avoir L'Index
Column(1, .ListIndex) te renvoie l'élément siué dans la colonne 1 au niveau (L'index)de la ligne Sélectionnée
premiere réponse
tu écris dans le code de l'userform general (Sub USF Initialize)
With Me.ListBox1
.ColumnCount = 3
.ColumnWidths = '60;60;60'

Ce qui définit 3 colonnes et la largeur de celle-ci. Or, tu as définit la variable Col avec par
exemple:
Col='00;129;00' pour la 2eme colonne de la listbox. Pourquoi ?
j'avais avant de créer la variable Col dimensionné les colonnes à l'initialisation on pourrait supprimer cela(.ColumnWidths '60;60;60') effectivement

If derlgn = 1 Then
derlgn = 2
si la feuille ne compend que la ligne de titre si derlgn prend la valeur 1 le tableau comprendrait la Zone A2:C1
Arffff J'ai oublié
Aurais t'on pu écrire ce code:

Me.ListBox1.Clear
For L = 1 To UBound(Tabtemp, 1)
For L = 2 To UBound(Tabtemp,2)
For L = 3 To UBound(Tabtemp,3)
With Me.ListBox1
.ColumnWidths = Col
.AddItem Tabtemp(L, 1)
.AddItem Tabtemp(L, 2)
.AddItem Tabtemp(L, 3)
For L =1 to Ubound(TabTemp,1)
cela veut dite pour L ayant pour valeur de 1 au nombre Maxi de Ligne donc cela va boucler sur le nombre de ligne du tableau depuis la premiere jusqu'a la dernière
dans ce cas de figure tu obtiendrais avec ces trois boucles au lieu de une un melange que tu devrais tester Lol déja tu n'aurais pas la colonne 1 qui a pour index 0
mais tu n'obtiendrais pas ce que tu cherche a faire je pense


en espérant avoir répondu à tes questions n'hésite pas
bonne fin de Soirée

Message édité par: Chti160, à: 13/10/2005 22:35

Message édité par: Chti160, à: 13/10/2005 22:46
 
L

lio

Guest
Bonjour le forum, bonjour ChTI160,

J'ai simplifié un peu ton application au niveau des boutons de commande 'modifier', 'enregistrer' et je m'apperçois qu'il y a quelques bugs. Au niveau du bouton 'supprimer' , il n'y a pas de remise à jour lorsque on supprime 2 personnes à la suite ( je sais pas si c'est faisable)
Au niveau du bouton 'ajouter', il m'écrase une ligne !...

Pour le dernier point, je pense que ma macro licreation dans le module 1) n'est pas assez complète:

Je souhaiterais mettre un code du genre:
Public Sub licreation()
If ' on double clic sur une personne dans la listbox'
Then
creation.TextBox1 = general.nom
creation.TextBox2 = general.entreprise
creation.TextBox3 = general.equipe
If 'on clique sur le bouton ajouter'
Then
creation.TextBox1.clear
creation.TextBox2.clear
creation.TextBox3.clear

End Sub

Merci et bon WE. [file name=Chti160.zip size=21999]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Chti160.zip[/file]
 

Pièces jointes

  • Chti160.zip
    21.5 KB · Affichages: 26
  • Chti160.zip
    21.5 KB · Affichages: 14
  • Chti160.zip
    21.5 KB · Affichages: 14
L

lio

Guest
bonjour le forum,
bonjour ChTi160,

Pour faire mon apprentissage, j'ai vu qu'il existait une autre forme de programmation pour arriver au meme but. Cependant, le programme butte lorsque je je lance le bouton 'ajouter' de l'userform general et ne realise pas ce que je veux!
Pouvez vous m'aider.

Merci et bon dimanche. [file name=Essai_20051016132915.zip size=21355]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Essai_20051016132915.zip[/file]
 

Pièces jointes

  • Essai_20051016132915.zip
    20.9 KB · Affichages: 5

ChTi160

XLDnaute Barbatruc
Salut lio
bonsoir le Forum

en pièce jointe une réponse à ta deuxieme demande

bonne fin de soirée
[file name=essaiV2.zip size=24169]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/essaiV2.zip[/file]
 

Pièces jointes

  • essaiV2.zip
    23.6 KB · Affichages: 20
  • essaiV2.zip
    23.6 KB · Affichages: 30
  • essaiV2.zip
    23.6 KB · Affichages: 24

Statistiques des forums

Discussions
312 325
Messages
2 087 308
Membres
103 513
dernier inscrit
adel.01.01.80.19