Renseigner un combobox

Résolu/Fermé
michgoarin Messages postés 10 Date d'inscription vendredi 2 mai 2008 Statut Membre Dernière intervention 8 décembre 2015 - 28 sept. 2014 à 23:29
michgoarin Messages postés 10 Date d'inscription vendredi 2 mai 2008 Statut Membre Dernière intervention 8 décembre 2015 - 2 oct. 2014 à 00:02
Bonjour à tous,
Je programme depuis très longtemps en VBA. Mais là je sèche !!!
A l'initialisation d'un userform (modification article), je renseigne tous les champs de ce dernier en prenant l'information dans une feuille de mon fichier excel. Le problème se pose lorsque la valeur dans une cellule est vide et que je dois initialiser un combobox. J'ai une erreur dès l'amorçage du userform.
Si vous avez une solution, je suis preneur !!!
Merci d'avance.
--

2 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
29 sept. 2014 à 09:14
Bonjour,

Il nous manque des informations pour te répondre. Une combobox est une liste. Comment remplis tu cette liste? Avec RowSource, AddItem, List?
Peux tu également nous donner le code de ta UserForm_initialize()?
0
michgoarin Messages postés 10 Date d'inscription vendredi 2 mai 2008 Statut Membre Dernière intervention 8 décembre 2015
30 sept. 2014 à 21:56
Pour répondre à ta question Franck, voici le code pour initialiser le userform :
Private Sub UserForm_Initialize()
Dim j As Variant
Dim LIGNE As Integer
'Identification de la feuille concernée
LIGNE = Sheets("SOURCE_VBA").Range("L60000").End(xlUp).Row 'Positionnement de la dernière cellule à récupérer
For i = 2 To LIGNE 'Démarre à la ligne 2 jusqu'à la ligne définit dans la variable Ligne
With Me.ComboSERVICE
.AddItem Sheets("SOURCE_VBA").Range("L" & i)
End With
Next i
'Identification de la feuille concernée
LIGNE = Sheets("SOURCE_VBA").Range("K60000").End(xlUp).Row 'Positionnement de la dernière cellule à récupérer
For i = 2 To LIGNE 'Démarre à la ligne 2 jusqu'à la ligne définit dans la variable Ligne
With Me.ComboPole
.AddItem Sheets("SOURCE_VBA").Range("K" & i)
End With
Next i
'Identification de la feuille concernée
LIGNE = Sheets("SOURCE_VBA").Range("J60000").End(xlUp).Row 'Positionnement de la dernière cellule à récupérer
For i = 2 To LIGNE 'Démarre à la ligne 2 jusqu'à la ligne définit dans la variable Ligne
With Me.ComboDirection
.AddItem Sheets("SOURCE_VBA").Range("J" & i)
End With
Next i
'Identification de la feuille concernée
LIGNE = Sheets("SOURCE_VBA").Range("P60000").End(xlUp).Row 'Positionnement de la dernière cellule à récupérer
For i = 2 To LIGNE 'Démarre à la ligne 2 jusqu'à la ligne définit dans la variable Ligne
With Me.ComboCG
.AddItem Sheets("SOURCE_VBA").Range("P" & i)
End With
Next i
'Identification de la feuille concernée
LIGNE = Sheets("SOURCE_VBA").Range("Q60000").End(xlUp).Row 'Positionnement de la dernière cellule à récupérer
For i = 2 To LIGNE 'Démarre à la ligne 2 jusqu'à la ligne définit dans la variable Ligne
With Me.ComboLogo
.AddItem Sheets("SOURCE_VBA").Range("Q" & i)
End With
Next i
'Identification de la feuille concernée
LIGNE = Sheets("SOURCE_VBA").Range("R60000").End(xlUp).Row 'Positionnement de la dernière cellule à récupérer
For i = 2 To LIGNE 'Démarre à la ligne 2 jusqu'à la ligne définit dans la variable Ligne
With Me.ComboDomicile
.AddItem Sheets("SOURCE_VBA").Range("R" & i)
End With
Next i
'Identification de la feuille concernée
LIGNE = Sheets("SOURCE_VBA").Range("M60000").End(xlUp).Row 'Positionnement de la dernière cellule à récupérer
For i = 2 To LIGNE 'Démarre à la ligne 2 jusqu'à la ligne définit dans la variable Ligne
With Me.ComboType
.AddItem Sheets("SOURCE_VBA").Range("M" & i)
End With
Next i
'Identification de la feuille concernée
LIGNE = Sheets("SOURCE_VBA").Range("S60000").End(xlUp).Row 'Positionnement de la dernière cellule à récupérer
For i = 2 To LIGNE 'Démarre à la ligne 2 jusqu'à la ligne définit dans la variable Ligne
With Me.ComboControle
.AddItem Sheets("SOURCE_VBA").Range("S" & i)
End With
Next i
' On définit la valeur de j
j = Sheets("SOURCE_VBA").Range("A2")
'On affecte la cellule "A2" à la variable Cel
Set Cel = Sheets("Source").Range("A" & j)
'Gsetion de l'initialisation des TextBox
TextCodeVeicule = Cel.Offset(0, 0)
Textchauffeur = Cel.Offset(0, 5)
TextImmat = Cel.Offset(0, 7)
TextModele = Cel.Offset(0, 10)
TextPremiere = Cel.Offset(0, 11)
TextGarantie = Cel.Offset(0, 12)
TextKilometrage = Cel.Offset(0, 14)
TextObservations = Cel.Offset(0, 16)
TextInterlocuteur = Cel.Offset(0, 17)
'Gestion de l'initialisation des ComboBox
If IsEmpty(Cel.Offset(0, 1)) Or Cel.Offset(0, 1) = "" Then ComboType = "" Else ComboType = Cel.Offset(0, 1)
If IsEmpty(Cel.Offset(0, 2)) Or Cel.Offset(0, 2) = "" Then ComboPole = "" Else ComboPole = Cel.Offset(0, 2)
If IsEmpty(Cel.Offset(0, 3)) Or Cel.Offset(0, 3) = "" Then ComboDirection = "" Else ComboDirection = Cel.Offset(0, 3)
If IsEmpty(Cel.Offset(0, 4)) Or Cel.Offset(0, 4) = "" Then ComboSERVICE = "" Else ComboSERVICE = Cel.Offset(0, 4)
If IsEmpty(Cel.Offset(0, 6)) Or Cel.Offset(0, 6) = "" Then ComboDomicile = "" Else ComboDomicile = Cel.Offset(0, 6)
If IsEmpty(Cel.Offset(0, 8)) Or Cel.Offset(0, 8) = "" Then ComboCG = "" Else ComboCG = Cel.Offset(0, 8)
If IsEmpty(Cel.Offset(0, 9)) Or Cel.Offset(0, 9) = "" Then ComboLogo = "" Else ComboLogo = Cel.Offset(0, 9)
If IsEmpty(Cel.Offset(0, 30)) Or Cel.Offset(0, 30) = "" Then ComboControle = "" Else ComboControle = Cel.Offset(0, 30)

End Sub

0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
Modifié par pijaku le 1/10/2014 à 08:14
Bonjour,

Essaie de remplacer :
If IsEmpty(Cel.Offset(0, 1)) Or Cel.Offset(0, 1) = "" Then ComboType = "" Else ComboType = Cel.Offset(0, 1)

Par :
If Trim("" & Cel.Offset(0, 1)) = "" Then ComboType = "" Else ComboType = Cel.Offset(0, 1)
0
michgoarin Messages postés 10 Date d'inscription vendredi 2 mai 2008 Statut Membre Dernière intervention 8 décembre 2015
2 oct. 2014 à 00:02
ça fonctionne merci pijaku
0