Bonjour,
Je cherche la syntaxe pour créer un ComboBox dans ma feuille n°1 par macro puis y ajouter par la suite des valeurs de certaines cellules de ma feuille n°2.
quelqu'un aurait-il une piste ???
Merci
Bonjour,
Je cherche la syntaxe pour créer un ComboBox dans ma feuille n°1 par macro puis y ajouter par la suite des valeurs de certaines cellules de ma feuille n°2.
quelqu'un aurait-il une piste ???
Merci
Bonjour,
Il faut déjà créer un Userform avec l'éditeur VBA et y ajouter le combobox
Prochaine question.......
on est obligé de passer par un UserForm ? je voudrais qu'il soit vraiment intégré à ma feuille ...
Meme avec un USF, il peut être intégrer à la feuille, sinon il faut passer par les boutons "formulaire" que je ne connais pas trop et qu'on déconseillé encore hier
tu a le droit de dire que je suis nulle ... mais y'aurait un exemple quelque part ??? je cherche dans les tutaux et les FAQ, mais je trouve pas ...
Merci en attendant ...
Je n'ai surtout pas le droit de dire que tu es nulle, on apprends tou(te)s
Si tu te décides à passer par un userform, tu commences à écrire dans le code de ta feuil1 ceci
Déjà pour commencer, en admettant que tu ais créer l'userform
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub Worksheet_Activate() UserForm1.Show End Sub
Bonjour tlm,
Pour répondre à la demande de mimi, un exemple ci-dessous
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Sub test() Dim oCombo As OLEObject, L As Single, T As Single, W As Single, H As Single L = 150 '<-- position horizontale T = 10 '<-- position verticale W = 200 '<-- largeur H = 22 '<-- hauteur Set oCombo = Sheets("Feuil1").OLEObjects.Add(ClassType:="Forms.ComboBox.1", Left:=L, Top:=T, Width:=W, Height:=H) With oCombo .Name = "Combo1" '<-- nom du Combobox .ListFillRange = "Feuil2!A1:A20" '<-- exemple de chargement des données End With Set oCombo = Nothing End Sub
Merci Fring, pour mimi et pour moi (come d'habitude, ça me servira bien un jour)
OK merci beaucoup pour votre aide,
je voulais que mon combo apparaisse directement sur ma feuille, mais j'ai fait une UserForm qui ressemble à une boite de dialogue, comme l'image en pièce jointe.
j'ai ensuite ajouter le code suivant à ma userForm; nommée GenerationPhaseActeur. Elle apparait lors du clic sur un bouton de ma feuille n°1.
je passe par une chaine car je ne savais pas comment vérifier la présence d'une chaine donné dans les items présents.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 Private Sub CommandButton_Annuler_Click() GenerationPhaseActeur.Hide End Sub Private Sub CommandButton_Valider_Click() GenerationPhaseActeur.Hide Call TrierSelonActeurEtPhase End Sub Private Sub UserForm_Initialize() Dim i As Integer Dim acteur As String, lstActeurs As String Dim phase As String, lstPhases As String 'remplissage des comboboxes 'acteur i = 2 lstActeurs = "" Do Until IsEmpty(Worksheets("Activités").Cells(i, 3)) acteur = Worksheets("Activités").Cells(i, 3).Value If InStr(lstActeurs, acteur) = 0 Then 'ajout à la liste et au comboBox lstActeurs = lstActeurs & acteur & "," GenerationPhaseActeur.ComboBox_Acteur.AddItem acteur End If i = i + 1 Loop 'phase i = 2 lstPhases = "" Do Until IsEmpty(Worksheets("Activités").Cells(i, 4)) phase = Worksheets("Activités").Cells(i, 4).Value If InStr(lstPhases, phase) = 0 Then 'ajout à la liste et au comboBox lstPhases = lstPhases & phase & "," GenerationPhaseActeur.ComboBox_Phase.AddItem phase End If i = i + 1 Loop End Sub
Merci beaucoup ! vous êtes :
...Milie...
Il est possible d'ajouter directement sur une feuille de calcul un combobox normalement utilisé sur une UserForm. Voici ce que j'ai obtenu en modifiant une macro obtenue par l'enregistreur de macros.
S'il s'agit de pouvoir sélectionner une valeur parmi une liste d'item prédéfinis pour chaque items d'une colonne dans un tableau. On peut aussi utiliser l'option de validation des données du menu Données. Voici les étapes à suivre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Sub Macro1() ' ' Macro1 Macro ' Macro enregistrée le 2008-07-09 par zazaraignée ' Dim cbx As Object Set cbx = Feuil1.OLEObjects.Add(classtype:="Forms.ComboBox.1", Link:=False, _ DisplayAsIcon:=False, Left:=95.5, Top:=0.25, Width:=94.5, _ Height:=16.5) cbx.Name = "cbxProvince" cbx.ListFillRange = "provinces" ' Feuil2.Range("A1:A13") est une plage nommée cbx.LinkedCell = "A1" Set cbx = Nothing End Sub
- Sélectionner la plage de cellules ou la colonne qui devra faire apparaître la liste déroulante dans ses cellules.
- Choisir le menu Données, Validation...
- Dans l'onglet Option, choisir dans la liste Autoriser l'option Liste.
- Déterminer la Source à l'aide du bouton de sélection de plage de cellules. Si la source se trouve sur une autre feuille de calcul, ce bouton de fonctionnera pas. Vous devrez d'abord nommer la plage en question et entrer le nom de la plage précédé d'un signe égal (=nomDeLaPlage).
- Laisser cochées les cases Ignorer si vide et Liste déroulante dans la cellule.
Pour nommer une plage de cellules, sélectionner la plage et taper un nom directement dans la zone Nom.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager