Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Sélection dans une listebox

S

sakakila

Guest
bonjour,

je début en vba et je ne comprends pas tous. JE veux créer une liste déroulant afin d'aider à la saisie de fiche de production. J'ai réussi à récuper les données mais je n'arrive pas à garder ma sélection valide pour la copier dans une cellule excel. il me prend toujours le premier enregistrement.
Qu'est ce que j'oubli ??

merci de votre aide.

a+

Private Sub CommandButton1_Click()
Sheets("base").Select

Dim Liste As String
Liste = Range("A1").End(xlDown).Address
' Plage de données pour afficher dans liste déroulante
ListBox1.RowSource = "A1:" & Liste
' Afficher le premier enregistrement de la liste (0)
ListBox1.ListIndex = 0
Index = ListBox1.ListIndex
ChoixListe1 = ListBox1.List(Index)


Sheets("TextBox").Select
ActiveSheet.Unprotect

' Stockage du résultat dans les cellules temp
Range("A1").Value = ChoixListe1
Range("C1") = Format(TextBox2.Value, "dd/mm/yyyy")
Range("E1") = TextBox3.Value
Range("G1") = Format(TextBox4.Value, "0"" ""00"" ""00"" ""00"" ""000"" ""000"" ""/"" ""00")
Range("I1") = Format(TextBox5.Value, "00"" ""00"" ""00"" ""00"" ""00")


For i = 1 To 5
If Controls("opt" & i).Value = True Then
Range("K1").Value = Controls("opt" & i).Caption
End If
Next i
Range("a1").Select
Selection.Copy
Range("A65536").End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False


Etc ...
 
S

sakakila

Guest
houpss!!!!

pourquoi faire compliquer quand on peux faire simple ????


merci merci



une dernière et je continuerais à lire demain "Le dico" Excel.

Losque que je ferme la boite par la croix (en haut à droit) et non par le bouton annulé de la boite. J'obtient une boite de dialogue vide à l'ouverture.

Comment désactiver la croix de fermeture de la boite de dialogue ou comment restaurer la boite de dialogue à l'ouverture ??


merci encore
 
C

CHti160

Guest
Salut"sakakila"et "Hervé"
bonsoir le "FORUM"

je pense qu'il te faut utiliser la proprieté change de ta listBox1 pour faire changer la valeur de A1 en feuille "TextBox"

Private Sub ListBox1_Change()
Sheets("TextBox").Range("A1") = ListBox1.Value
End Sub
ansi quand tu click dans ta liste c'est l'élément choisi qui s'affiche en cellule A1
A+++
Jean Marie
 
S

sakakila

Guest
houpss!!!!

pourquoi faire compliquer quand on peux faire simple ????


merci merci



une dernière et je continuerais à lire demain "Le dico" Excel.

Losque que je ferme la boite par la croix (en haut à droit) et non par le bouton annulé de la boite. J'obtient une boite de dialogue vide à l'ouverture.

Comment désactiver la croix de fermeture de la boite de dialogue ou comment restaurer la boite de dialogue à l'ouverture ??


merci encore
 
C

CHti160

Guest
Re"sakakila"
je pense qu'il te faut utiliser la proprieté "UserForm_Initialize()" pour que ta listBox se charge a l'ouverture du UserForm et non apres l'appui sur un bouton
donc en pice jointe un petit exemple
A+++
Jean Marie
 

Pièces jointes

  • Selection_dans_une_listeboxV1.zip
    10.3 KB · Affichages: 40
E

Eric C

Guest
Bonjour le forum
Bonjour sakakila, bonjour Jean Marie

Pour info, il ne faut pas mettre ListIndex = 0 pour l'affichage du 1er enregistrement de la liste car il est forcément pris en compte en plus du choix effectué. Ainsi, tu as 2 valeurs reportées même si ton multiselect est à single (0)

With UserForm1.ListBox1
.RowSource = "A1:" & Liste
' Afficher le premier enregistrement de la liste (0)
Non ==> .ListIndex = 0

Tu auras au moins eu 2 lecteurs....lol...
Amitiés.
@ ++ Eric C
 

Discussions similaires

Réponses
4
Affichages
340
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…