Renseigner un combobox

Résolu
michgoarin Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
michgoarin Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Modérateur Dernière intervention   2 761
 
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   Statut Membre Dernière intervention  
 
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   Statut Modérateur Dernière intervention   2 761
 
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   Statut Membre Dernière intervention  
 
ça fonctionne merci pijaku
0