Renseigner un combobox

Résolu
michgoarin Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
michgoarin Messages postés 7 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

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