Je ne sais pas créer une liste déroulante en VBA...

cs_o0ops Messages postés 5 Date d'inscription lundi 20 juin 2005 Statut Membre Dernière intervention 11 juillet 2005 - 7 juil. 2005 à 09:38
cs_o0ops Messages postés 5 Date d'inscription lundi 20 juin 2005 Statut Membre Dernière intervention 11 juillet 2005 - 11 juil. 2005 à 16:34
Bonjour, je suis nouveau sur ce site, et débutant en VBA.
Je dois créer un eCarnet d'Adresse au sein de mon entreprise en VBA, mais je en sais pas faire grand chose avec ce language.
Dans mon cahier des charges pour ce Carnet d'Adresse, je dois créer une liste déroulante pour que les utilisateurs puissent choisir une parmie plusieurs informations.
Lorsque j'insère une ComboBox, j'ai la liste des propriétés, mais je ne sais pas du tout où et comment saisir les informations de la liste déroulante...
Pouvez vous m'aider svp.

Merci.

o0oPs

12 réponses

cs_dan80 Messages postés 101 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 19 avril 2006
7 juil. 2005 à 10:32
c tres simple, tu vas dans les propriétés de ta combo

dans l'onglet Données -> Origine source tu choisi Liste de valeurs

et dans Contenu juste en dessous tu met tes valeurs séparés par des ;

voila j'espere que ca va t'aidé!!!!

fais moi signe
0
Doro81079 Messages postés 380 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 24 février 2015 56
7 juil. 2005 à 10:35
bonjour,
dans fom_load
private sub Form_load
combobox1.additem="le nom1"
combobox1.additem="le nom2"
'etc..
end sub
si par la suite tu veux que l'utilisateur puisse ajouter un nom a la liste,
par exemple il doit entrer le nouveau nom dans la textbox1 tu ecris le code suivant dans le bouton ajouter ou entrer que tu auras ajouter

private sub cmdajouter_click()
'ou cmdentrer suivant le nom que tu auras donner a ton controle
combobox1.additem=text1.text
end sub
doro
0
cs_o0ops Messages postés 5 Date d'inscription lundi 20 juin 2005 Statut Membre Dernière intervention 11 juillet 2005
7 juil. 2005 à 14:52
euh...je créer mon appli avec le VBA d'Excel, je sais si ce que tu me dis est compatible...
En fait, quand je vais dans l'onglet Données de ma ComboBox, d'une part tout est en Anglais, et d'autre part je n'ai pas le champ Origine Source, ni ocntenu.

Je sais pas si ca peut t'aider, je veux remplir les listes déroulante Fonction et Activité.
Si tu vois ce que je veux dire, réponds moi s'il te plait.

Merci.

o0oPs
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
7 juil. 2005 à 16:40
Bonjour,

Donne un peu plus d'explications sur ce que tu veux faire.

Comment se présente ton carnet d'adresses ??. En te servant des 1ères
lignes des colonnes comme en-têtes (Nom, Prénom, Adresse ect....)??

Tes Combobox sont-ils sur un UserForm ??



jpleroisse
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Doro81079 Messages postés 380 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 24 février 2015 56
7 juil. 2005 à 20:00
bonsoir,
d'abord excuse moi de t'avoir donner un mauvais code c'est pour vb
pour le vba tu ajoute de cette facon
private sub userform1_initialize()
combobox1.additem "le nom"
combobox1.additem "le nom2"
etc...
combobox1.listindex = 0
'pour que le combo affiche le 1er nom sinon il est vide au chargement de la feuille
end sub

ensuite pour ajouter la valeur d'une textbox dans cette combobox par l'utilisateur
cre un bouton ajouter et mets le code (si les controles sont sur la meme feuille)
private sub cmdajouter_click() 'ou nom que tu as donner au controle
combobox1.additem textbox1.text
end sub

et si la combo a modifier est sur une autre form que la textbox
ecris ce code dans le bouton ajouter de la 2eme form ou il y a le textbox
private sub cmdajouter_click()
userform1.combobox1.additem userform2.textbox1.text
end sub

comme tu debute n'hesite pas a m'envoyer un message si tu as des questions
userform2.combobox1.additem userform1.textbox1.text

encore desole
doro
0
Doro81079 Messages postés 380 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 24 février 2015 56
7 juil. 2005 à 20:05
userform2.combobox1.additem userform1.textbox1.text
ca c est faux excuse
userform1.combobox1.additem userform2.textbox1.text
ben ouais la combo est sur la 1 et la text est sur la 2
0
cs_o0ops Messages postés 5 Date d'inscription lundi 20 juin 2005 Statut Membre Dernière intervention 11 juillet 2005
8 juil. 2005 à 09:39
Bonjour jpleroisse, en fait mon carnet d'adresse se présente comme ceci:
=> une page de "sommaire", avec des boutons qui ouvrent diférentes fenêtres(Ajouter un contact, modifier un contact, supprimer un contact, envoyer un mail a un contact préci, rechercher un contact)
=> dans Ajouter un Contact, j'ai créer un formulaire avec le VB Editor d'Excel, donc comem on le voit sur l'imprime écran, un onglet Info Perso(pour saisir Nom, Prénom, homme, femme, date de naissance,...), un Domicile(N° de tel, adresse, mail perso,...), un onglet Entrprise, le plus important(avec adresse, entité, ...).
Les champs à remplir vont se sauvegarder dans un fichier Excel une fois qu'on click sur un bouton "enregistrer".
Dans cet onglet Entrpeprise, les gens doivent pouvoir choisir entre plusieurs Fonction du contact déjà définie, et entre plusieurs Activité de l'entreprise déjà définie aussi.
Pour cela, j'aimerai créer une liste déroulante pour ces 2 champs Fonction et Activité.

Ce qu'il y a, c'est que je n'ai jamais programer en VBA, ni en aucun autre langage...c'est pour ca que c'est dificile pour moi d'une part de faire ce carnet d'adresse, et d'autre part d'éxpliquer au gens les diférente fonction que je veux faire.

Et donc, entre autre, j'aimerai créer 2 listes déroulantes, mais je ne sais aps ni comment entrer les informations pour remplir ces listes...
J'ai entendu parler qu'il faut créer une autre page Excel, où je saisi mes info dans plusieurs lignes d'une colone, et je dis a la ComboBox d'aller chercher les info de cette colonne, mais je ne sais pas comment faire.
D'autres personnes me dise qu'il faut aller dans les propriétés de la ComboBox et d'entrer les info dans un champs séparé de ; .

Si tu as une solution, merci de m'aider.

o0ops
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
8 juil. 2005 à 12:40
Bonjour,

Dans une feuille Excel, tu crées tes 2 champs, Par exemple en A1,
Fonction et en B1, Activité.Sur ton UserForm, tu places tes 2 Comobobox
et dans un Module, tu places les codes suivants.(Pour l'exemple,
j'utilise la feuille1 et je n'ai pas donné de nom aux Comobobox).



Sub RemplirCombo1()

Dim i

i = 2

Do While Sheets(1).Range("A" & i) <> ""

UserForm1.ComboBox1.AddItem Sheets(1).Range("A" & i)

i = i + 1

Loop

UserForm1.ComboBox1.ListIndex = 0

End Sub



Sub RemplirCombo2()

Dim i

i = 2

Do While Sheets(1).Range("B" & i) <> ""

UserForm1.ComboBox2.AddItem Sheets(1).Range("B" & i)

i = i + 1

Loop

UserForm1.ComboBox2.ListIndex = 0

End Sub



Ensuite, dans le code du UserForm.



Private Sub UserForm_Activate()

Call RemplirCombo1

Call RemplirCombo2

End Sub



Le Combobox1 sera rempli avec les données de la colonne A en commençant
à A2 et le Combobox2, avec les données de la colonne B en commençant à
B2, si tu veux commencer à A1 et B1, tu mets au bébut, i = 1 au lieu de
i = 2.



Pour écrire dans les colonnes A et B, tu as 2 solutions, soit
directement dans la feuille Excel, soit à partir du UserForm avec 2
TextBox et un CommandButton.Mais pour celà c'est un autre code.Si c'est
comme celà que tu veux faire, je te passerai le code.





jpleroisse
0
cs_dan80 Messages postés 101 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 19 avril 2006
8 juil. 2005 à 14:11
essaye ca:

c un bout de mon code

en fait je change les parametres de connectioin de la BD du report



Set reporti = CrxApp.OpenReport("\\srv1-fr-sq\Secretariat\Documents_internes\Fiche_société.rpt")

If i <> 0 Then

reporti.DiscardSavedData

End If

Set
connection = reporti.Database.Tables(1).ConnectionProperties

connection.DeleteAll

connection.Add "Provider", "Microsoft.Jet.OLEDB.4.0"

connection.Add "Data Source", cheminbase


reporti.RecordSelectionFormula = "{Societes.CodeSociete}=" &
CodeSociete.Text

RPORT

Report.ReportSource = reporti

Report.ViewReport



fais moi signe si tu réussi
0
cs_dan80 Messages postés 101 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 19 avril 2006
8 juil. 2005 à 14:13
désolé erreur technique
0
cs_o0ops Messages postés 5 Date d'inscription lundi 20 juin 2005 Statut Membre Dernière intervention 11 juillet 2005
11 juil. 2005 à 16:34
Bonjour tout le monde, en fait, pour m'en sortir, j'ai fait comem ca:

Private Sub ComboBox1_Change () => modifier en Private Sub ComboBox1_enter ()
With ComboBox1
.AddItem "1ère info", 0
.AddItem "2ème info", 1
...
End With
End Sub

Voila.

Je ne sais pas si c'est la meilleur solution, mais ca a fonctionné.
Je vous remercie pour toutes vos idée.
A très vite!

o(",)oPs
0
cs_o0ops Messages postés 5 Date d'inscription lundi 20 juin 2005 Statut Membre Dernière intervention 11 juillet 2005
11 juil. 2005 à 16:34
Bonjour tout le monde, en fait, pour m'en sortir, j'ai fait comem ca:

Private Sub ComboBox1_Change () => modifier en Private Sub ComboBox1_enter ()
With ComboBox1
.AddItem "1ère info", 0
.AddItem "2ème info", 1
...
End With
End Sub

Voila.

Je ne sais pas si c'est la meilleur solution, mais ca a fonctionné.
Je vous remercie pour toutes vos idée.
A très vite!

o(",)oPs
0