Valeur par défault variable, Combobox, VBA.
Julistage
Messages postés
31
Statut
Membre
-
Julistage Messages postés 31 Statut Membre -
Julistage Messages postés 31 Statut Membre -
Bonjour à tous,
J'ai un petit soucis avec ma combobox. Je souhaiterais qu'elle affiche une valeur par défault. Ce qui complique un petit peu, c'est que la valeur par défault se trouve dans la cellule A1, et elle varie.
J'ai essayer quelques trucs, mais cela ne marche pas. ^^ Quelqu'un aurait une idée par rapport à ça s'il vous plait? :)
Voilà mon petit bout de code: (En gras ce qui ne marche pas :( )
J'ai aussi essayer avec:
Merci d'avance :) Bonne soirée!! :)
J'ai un petit soucis avec ma combobox. Je souhaiterais qu'elle affiche une valeur par défault. Ce qui complique un petit peu, c'est que la valeur par défault se trouve dans la cellule A1, et elle varie.
J'ai essayer quelques trucs, mais cela ne marche pas. ^^ Quelqu'un aurait une idée par rapport à ça s'il vous plait? :)
Voilà mon petit bout de code: (En gras ce qui ne marche pas :( )
Private Sub ComboBox3_Change()
Dim k, j As Integer
Me.ListSources.Clear
For j = 1 To Range("AJ65536").End(xlUp).Row
If Cells(j, 35) = ComboBox3.Value Or (Val(ComboBox3.Value) = Cells(j, 35) And Val(ComboBox3.Value) = ComboBox3.Value) Then
Me.ListSources.AddItem Workbooks("Correspondance vFinal 2.3.xls").Sheets("infos").Cells(j, 36).Value
k = k + 1
Me.ListSources.List(k - 1, 1) = Workbooks("Correspondance vFinal 2.3.xls").Sheets("infos").Cells(j, 37)
End If
Next j
Me.ComboBox3.SelectedItem = Range("A1").Value
End Sub
J'ai aussi essayer avec:
Me.ComboBox3.ListIndex = Range("A1").Value
Merci d'avance :) Bonne soirée!! :)
A voir également:
- Affecter valeur combobox vba
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Valeur ascii - Guide
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
- Faites afficher avec un fond coloré les cellules qui contiennent une valeur comprise entre 250 et 350. quel nombre est dessiné en surbrillance ? ✓ - Forum Excel
- Excel ne pas afficher #valeur ✓ - Forum Excel
9 réponses
Bonjour et merci de te pencher sur cette question :).
ça marche en effet, mais ça bloque ma combobox sur cette valeur. Impossible de changer de valeur par la suite :(. Et bizarrement ça m'a ajouté pleins de doublons :x y aurait-il une autre méthode ?
ça marche en effet, mais ça bloque ma combobox sur cette valeur. Impossible de changer de valeur par la suite :(. Et bizarrement ça m'a ajouté pleins de doublons :x y aurait-il une autre méthode ?
re
et en mettant la propriete LinkedCell de la combobox3 à A1 ?
pour l'ajout des doublons, est ce que quelque part il n'y a pas un remplissage de la combobox exécuté intempestivement. Si oui, faire un .Clear avant
bon courage
et en mettant la propriete LinkedCell de la combobox3 à A1 ?
pour l'ajout des doublons, est ce que quelque part il n'y a pas un remplissage de la combobox exécuté intempestivement. Si oui, faire un .Clear avant
bon courage
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
re
j'ai aussi excel 2003 et
ta combobox a certainement été crée avec la barre d'outils formulaire.
il vaudrait peut être mieux la créer avec la barre d'outils controles on a ainsi un acces à plus de propriétés. la combobox et son code seront alors liés à la feuille (le code ne sera plus dans un module)
si cette option te tentes
Affichage/Boite a outils controles et la petite equerre pour basculer du mode création au mode exécution. Tu pourra alors
- avec un clic droit avoir un acces direct a ses propriétés
- transporter ton code dans la feuille
bonne suite
j'ai aussi excel 2003 et
ta combobox a certainement été crée avec la barre d'outils formulaire.
il vaudrait peut être mieux la créer avec la barre d'outils controles on a ainsi un acces à plus de propriétés. la combobox et son code seront alors liés à la feuille (le code ne sera plus dans un module)
si cette option te tentes
Affichage/Boite a outils controles et la petite equerre pour basculer du mode création au mode exécution. Tu pourra alors
- avec un clic droit avoir un acces direct a ses propriétés
- transporter ton code dans la feuille
bonne suite
Bonjour ;o)
As-tu une procédure qui initialise ta combo ? Si oui remplace
par l'appel à ta procédure d'initialisation de ta combo.
Dans ta procédure d'initialisation tu dois avoir un combo.Clear en début
et un combo.Text = Worksheets(1).Range("A1").Value en fin de procédure.
;o)
As-tu une procédure qui initialise ta combo ? Si oui remplace
Me.ComboBox3.SelectedItem = Range("A1").Value
par l'appel à ta procédure d'initialisation de ta combo.
Dans ta procédure d'initialisation tu dois avoir un combo.Clear en début
et un combo.Text = Worksheets(1).Range("A1").Value en fin de procédure.
;o)
Salut à tous les 2 :)
Bon la seule chose que j'ai réussie à faire c'est de faire une boucle infinie lol.
J'ai en effet une procédure qui initialise la combo.
En fait ma combobox se trouve justement sur un userform.
Je vais continuer à essayer de trifouiller le code. :)
Bon la seule chose que j'ai réussie à faire c'est de faire une boucle infinie lol.
J'ai en effet une procédure qui initialise la combo.
ComboBox3.clear
For j = 1 To Range("AI65536").End(xlUp).Row
ComboBox3 = Range("AI" & j)
If ComboBox3.ListIndex = -1 Then ComboBox3.AddItem Range("AI" & j)
Next j
En fait ma combobox se trouve justement sur un userform.
Je vais continuer à essayer de trifouiller le code. :)
re
et en mettant la propriété ControlSource à A1 puisque la combobox est créee dans une userform avec la boite a outils controles
bon courage
et en mettant la propriété ControlSource à A1 puisque la combobox est créee dans une userform avec la boite a outils controles
bon courage
re, Alors je dois m'y prendre comme un pied, mais cela ne marche pas non plus :x... Dans la propriété control source j'ai mis: (sachant que ma feuille est la feuille "infos") infos!A1 c'est peut-être pas la bonne syntaxe?
Non tu ne t'y prends pas comme un pied, c'est simplement pas la bonne propriété.
Le problème doit venir d'ailleurs.
Que veux tu faire quand tu fais ta boucle :
Remplir ta combo ? si oui alors :
Je ne comprends pas pourquoi cette ligne
Elle fait quoi au juste ?
Le problème doit venir d'ailleurs.
Que veux tu faire quand tu fais ta boucle :
ComboBox3.clear
For j = 1 To Range("AI65536").End(xlUp).Row
ComboBox3 = Range("AI" & j)
If ComboBox3.ListIndex = -1 Then ComboBox3.AddItem Range("AI" & j)
Next j
Remplir ta combo ? si oui alors :
ComboBox3.clear
For j = 1 To Range("AI65536").End(xlUp).Row
ComboBox3.AddItem Range("AI" & j)
Next j
ComboBox3.Text = Worksheets(1).Range("A1").Value
Je ne comprends pas pourquoi cette ligne
If ComboBox3.ListIndex = -1 Then ComboBox3.AddItem Range("AI" & j)
Elle fait quoi au juste ?
Elle me permet de remplir ma combobox sans doublons.
En fait je procède en deux parties. Dans une première fonction, je remplie la combobox, et dans une seconde je lui dis que ce qui se trouve dans la listbox doit varier en fonction de la selection.
d'ou:
Et
La combobox contient le nom de tous les onglets du fichier.
Mais en fait ma fonction main utilise un onglet à un moment donné. ce nom d'onglet, je l'ai mis dans la cellule A1 de la feuille infos. Et je souhaiterais qu'à l'ouverture, ma combobox soit par défaut sur ce nom d'onglet, mais que j'ai malgré tout l'accès aux autres choix de la combobox et que je puisse la consulter.
En fait je procède en deux parties. Dans une première fonction, je remplie la combobox, et dans une seconde je lui dis que ce qui se trouve dans la listbox doit varier en fonction de la selection.
d'ou:
sub main()
...
...
...
'Récupère les données de la colonne A...
For j = 1 To Range("AI65536").End(xlUp).Row
ComboBox3 = Range("AI" & j)
'...et filtre les doublons
If ComboBox3.ListIndex = -1 Then ComboBox3.AddItem Range("AI" & j)
Next j
...
...
...
End Sub
Et
Private Sub ComboBox3_change() 'Lie la ComboBox avec la Listbox sur l'onglet 1. ("Fenêtre de contrôle")
Dim k, j, i As Integer
Dim NomOnglet As Variant
Me.ListSources.Clear
Me.ListBox26.Clear
For j = 1 To Range("AJ65536").End(xlUp).Row
If Cells(j, 35) = ComboBox3.Value Or (Val(ComboBox3.Value) = Cells(j, 35) And Val(ComboBox3.Value) = ComboBox3.Value) Then
Me.ListSources.AddItem Workbooks("Correspondance vFinal 2.3.xls").Sheets("infos").Cells(j, 36).Value
k = k + 1
Me.ListSources.List(k - 1, 1) = Workbooks("Correspondance vFinal 2.3.xls").Sheets("infos").Cells(j, 37)
End If
Next j
End sub
La combobox contient le nom de tous les onglets du fichier.
Mais en fait ma fonction main utilise un onglet à un moment donné. ce nom d'onglet, je l'ai mis dans la cellule A1 de la feuille infos. Et je souhaiterais qu'à l'ouverture, ma combobox soit par défaut sur ce nom d'onglet, mais que j'ai malgré tout l'accès aux autres choix de la combobox et que je puisse la consulter.