ComboBox - Selection par défaut
Bonjour ,
Travaillant avec des comboBox , mon code fonctionne parfaitement , cependant il existe un petit problème qui m'embête.
En fait , lorsque j'affiche mon comboBox contenant diffèrents mots grâce a un tableau , lors de la première apparition du blanc est selectionné par défaut puis celui ci part lorsque je valide une de mes valeurs.
Je voudrais que ce blanc ne s'affiche plus , ne soit plus selectionné par défaut.
Voici mon code :
Private Sub UserForm_Activate()
Dim Ensemblepro
Dim y
y = 0
Set Ensemblepro = Sheets("Projet").Range("C2")
If Projet.CodeProjet.ListCount = 0 Then
While Ensemblepro.Offset(y, 0) <> ""
CodeProjet.AddItem Ensemblepro.Offset(y, 0)
y = y + 1
Wend
End If
End Sub
Si vous pouviez m'aider pour ce problème , merci.
Cordialement .
Bonjour,
Tout dépend de quelle valeur tu voudrais par défaut ...
Me.ComboBox1.Text = Me.ComboBox1.List(0)
Bonjour ,
Je voudrais que la valeur par défaut soit la première valeur de mon tableau . Cependant cette première valeur change en fonction de sur quel valeur nous avons précédemment cliqué dans le ComboBox (elle change aussi dans le comboBox).
Le problème est vraiment sur le premier affichage du comboBox.
Voici mon code permettant le changement dans la premiere valeur dans le comboBox comme dans le tableau :
If ActiveCell.Column = 6 Then 'clic droit sur la colonne affaire
Projet.Show
Dim X
Dim numpro
Dim designationpro
Dim codepro
Dim Ensemblepro
Dim haha As Range
Set designationpro = Sheets("Projet").Range("B2")
Set codepro = Sheets("Projet").Range("A2")
Set Ensemblepro = Sheets("Projet").Range("C2")
numpro = Projet.CodeProjet.List(Projet.CodeProjet.ListIndex) 'Recupère la valeur du projet choisis
recup = Projet.CodeProjet.ListIndex ' Sers à savoir la ligne du projet choisis
Projet.CodeProjet.RemoveItem recup ' Supprimer la ligne du projet choisis
Projet.CodeProjet.AddItem numpro, 0 'Remonte le projet choisis en premier dans le combobox
X = 0
While codepro.Offset(X, 0) <> ""
If numpro = "" Then Selection.Value = ""
If numpro = Ensemblepro.Offset(X, 0) Then
Selection.Value = codepro.Offset(X, 0).Value 'Affiche la désignation du projet choisis
Selection.Offset(0, 1).Value = "IMP01" 'Affiche IMP01 dans la cellule à côté
If X > 0 Then
Tcodepro = codepro.Offset(X, 0).Value 'Place le code du projet choisi dans une variable temporaire
Tdesignationpro = designationpro.Offset(X, 0).Value 'Place la designation du projet choisi dans une variable temporaire
TEnsemblepro = Ensemblepro.Offset(X, 0).Value 'Place lensemble designation + code du projet dans une variable temporaire
While X > 0
codepro.Offset(X, 0).Value = codepro.Offset(X - 1, 0).Value 'Tel cellule de la colonne A vaut la cellule au dessus
designationpro.Offset(X, 0).Value = designationpro.Offset(X - 1, 0).Value 'Tel cellule de la colonne B vaut la cellule au dessus
Ensemblepro.Offset(X, 0).Value = Ensemblepro.Offset(X - 1, 0).Value 'Tel cellule de la colonne C vaut la cellule au dessus
X = X - 1
Wend
Sheets("Projet").Range("A2").Value = Tcodepro 'Le premier numéro de projet est celui choisis en dernier
Sheets("Projet").Range("B2").Value = Tdesignationpro 'La première désignation de projet est celui choisi en dernier
Sheets("Projet").Range("C2").Value = TEnsemblepro 'Le premier ensemble de projet est celui choisi en dernier
End If
End If
X = X + 1
Wend
End If
Si ce n'est pas possible , c'est pas grave
J'ai essayé ta méthode et cela m'affiche une erreur.
Merci .
Cordialement.
Re,
Je ne sais pas quel test ... tu as effectué ...
Le code est à placer dans le module UserForm_Initialize() ...
Re ,
En plaçant le code dans le module que tu m'a dis , cela ne fonctionne toujours pas une erreur s'affiche ... Erreur d'éxécution 94 utilisation incorrect du null ...
Re,
Tu peux tester
Me.ComboBox1.ListIndex = 0
Re,
Est-ce que tu as la possibilité de joindre ton fichier ...???
Bonjour ,
Non désolé , je ne peut pas joindre mon fichier
Re,
C'est bon j'ai trouvé , j'ai mis le code que tu m'a dis cependant au lieu de le mettre dans le module initialize je l'ai mis en dessous de mon if permettant de remplir le comboBox.
Private Sub UserForm_Activate()
Dim Ensemblepro
Dim y
y = 0
Set Ensemblepro = Sheets("Projet").Range("C2")
If Projet.CodeProjet.ListCount = 0 Then
While Ensemblepro.Offset(y, 0) <> ""
CodeProjet.AddItem Ensemblepro.Offset(y, 0)
y = y + 1
Wend
End If
Projet.CodeProjet.ListIndex = 0
End Sub
Merci beaucoup ... !
Cordialement.
Eul Vedette
Bonjour,
Content que tu aies trouvé la solution ...
Merci pour tes remerciements