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

ChTi160

XLDnaute Barbatruc
Salut lio

en pièce jointe mon interprétation, tu sélectionnes une option dans ton combobox et ta listBox1 se remplis
tiens nous au courant

[file name=personneV1.zip size=16443]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/personneV1.zip[/file]
 

Pièces jointes

  • personneV1.zip
    16.1 KB · Affichages: 23
L

lio

Guest
Je crois avoir compris ta démarche cependant j'ai essayé de créer
une autre macro pour que lorsque je clique sur une ligne de la listbox les labels se chargent:

Private Sub ListBox1_Click()

nom = ListBox1.Cells(L, ColA) 'appelation du label dans cet userform
entreprise = ListBox1.Cells(L, ColB) 'idem
equipe = ListBox1.Cells(L, ColC) 'idem
End Sub

Es ce la bonne démarche pour faire ça ?

Comment faire pour que le programme comprenne qu'il s'agit de la variable L et Col que tu as créé précédemment. J'ai tenté de mettre la fonction Public au lieu de Private dans ta macro... sans succés!. Faut'il passer par un module pour pouvoir mettre la fonction Public ?

Merci. [file name=Test_20051010224724.zip size=16435]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Test_20051010224724.zip[/file]
 

Pièces jointes

  • Test_20051010224724.zip
    16 KB · Affichages: 17

ChTi160

XLDnaute Barbatruc
Salut lio

bonjour le Forum

en réponse à ta question ta démarche n'est pas celle qu'il faut avoir

la listeBox a ses propres procèdures et méthodes et il ne faut pas mélanger les colonnes d'une feuille excel et les Colonnes d'une ListBox les éléments d'une listBox et les Cellules.
Comme tu désires apprendre je te conseille d'utiliser l'aide de VBA c'est a dire dans une procèdure tu cliques sur un mot par exemple Column et tu fais F1 tu obtiens ainsi des infos sur cette Propriété

en pièce une possibilité à étudier.
un clic sur la listBox et les textBox se remplissent
bonne Apprentissage

n'hésite pas si tu veux des explications
[file name=testV2.zip size=19707]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/testV2.zip[/file]
 

Pièces jointes

  • testV2.zip
    9.8 KB · Affichages: 23
  • testV2.zip
    9.8 KB · Affichages: 21
  • testV2.zip
    9.8 KB · Affichages: 21
L

lio

Guest
Re bonjour,

j'avais téléchargé sur ce site une petite application. Une ligne du code était:
.TextBox1.Value = ThisWorkbook.Sheets(1).Cells(.ComboBox1.ListIndex + 2, 2)

Si je commence à comprendre un peu, je dirais que la valeur de la textBox1 prend la valeur (dans la feuille 1 de ce classeur) de la 3ème ligne dans la colonne 2 relative à la comboBox. (en gras)

Nom Note ligne 1=ListIndex 0
Alphonse 12 ligne 2 = ListIndex 1
Hellboy 100 ligne 3 = ListIndex 2
Hervé 80
Didier 79

Combo TextBox

Suis je clair?... Poutant avec l'aide, j'aurais mis ListIndex + 1. ( soit la ligne 2). Par déduction, je dirais donc (.ComboBox1.ListIndex + 1, 2)!
Mais bien entendu, ça marche pas. Peut tu m'éclairer?
Je joins le fichier au cas ou.
 
L

lio

Guest
Oups, le fichier! [file name=classeur2_20051011213734.zip size=10796]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/classeur2_20051011213734.zip[/file]
 

Pièces jointes

  • classeur2_20051011213734.zip
    10.5 KB · Affichages: 28

ChTi160

XLDnaute Barbatruc
Salut lio

je penseque la répons va te parêtre évidente

L'Index du Combobox commence à 0 (zéro) s'il y a trois éléments le premier aura pour Index 0 le deuxième 1 etc
ensuite ton tableau commence en ligne 2 donc il faut aussi ajouter Un pour éviter le décalage

Bonne Soirée

n'hésite pas

Ps New edition

129 est la largeur de la colonne visible cela correspond à la largeur de la listBox regarde dans les propriètes de la listBox
proprièté WidTh 129,75

Message édité par: Chti160, à: 11/10/2005 21:52
 
L

lio

Guest
Bonjour le forum,
bonjour ChTI160,
Voila, j'ai avancé un peu dans mon programme,je suis au commande de mon userform creation et ça bloque lorsque je veux modifier les caractéristiques d'une personne ou tout simplement créer une nouvelle personne. J'ai essayé plusieurs choses et je cale... pour trouver le code de la macro commande enregistrer.

D'autre part, pour ce genre de programme faut-il que je créer une macro'mise à jour' ?

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

Pièces jointes

  • Tes.zip
    21.1 KB · Affichages: 16

ChTi160

XLDnaute Barbatruc
Salut lio

en pièce jointe une premiere interprétation qui demande à être adaptée et améliorée
tu regardes et tu me dis ce que tu en penses Lol

bonne Nuit [file name=testV4.zip size=33432]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/testV4.zip[/file]

Message édité par: Chti160, à: 12/10/2005 23:03
 

Pièces jointes

  • testV4.zip
    32.6 KB · Affichages: 28
  • testV4.zip
    32.6 KB · Affichages: 28
  • testV4.zip
    32.6 KB · Affichages: 29
L

lio

Guest
Bonjour le forum,
bonjour ChTI160,
Je te remercie beaucoup pour ton aide. J'ai toutefois une question qui me viens de suite. Quand tu écris:
With Worksheets('fiche')
derlgn = .Range('A65536').End(xlUp).Row 'on dertermine la dernière ligne de la base de données
If derlgn = 1 Then
derlgn = 2
Me.CommandButton1.Visible = True
End If
Tabtemp = .Range(.Cells(2, 1), .Cells(derlgn, 3)).Value 'ici on rempli un tableau avec les données de la base.

Que signifie dans cet exemple:
If derlgn = 1 Then
derlgn = 2

J'espère ne pas être desagréable à force avec toute mes questions.
( je pense en avoir une ou deux autres sur tes lignes de programmation)
Merci.
 
L

lio

Guest
J'aurai une deuxieme question:
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 ?

Merci.
 

Statistiques des forums

Discussions
312 323
Messages
2 087 297
Membres
103 511
dernier inscrit
mickael.das