Problème de Combobox

Résolu
Bonjour,

Je me vois contraint de vous demander de nouveau de l'aide.

J'ai un Userform se nommant "Intervent"
Dans cet Userform j'ai une combobox appelée "Machine"

Ma liste de machines (la source de la combobox) se trouve entre les ligne 1 et 43 de la colonne X de l'onglet "Préventif"

J'ai donc indiqué :

Private Sub UserForm_Click()

'si la dernière ligne est supérieure à 256 déclarer i et x en Integer
Dim i As Byte, x As Byte

i = Sheets("Préventif").Range("X65536").End(xlUp).Row
For x = 1 To i
With Machine
.AddItem Sheets("Préventif").Range("X" & x)
End With
Next x

End Sub

Quand je lance mon Userform, ma Combovox reste vierge...

Des solutions ?

Merci,

DGVDR

3 réponses

  1. Contributeur
    Bonjour,
    Ont peu aussi faire..
    Private Sub UserForm_Initialize()
    Machine.RowSource = "Préventif!X1:X" & Range("X" & Rows.Count).End(xlUp).Row
    End Sub

    A+
    1. Bonjour lermite,

      Ca me déclenche une erreur 380, impossible de définir la propriété rowsource.
      Valeur de propriété non valide

      Merci de ton temps,

      DGVDR
    2. Contributeur
      Et pourtant... ça fonctionne.
      Il ne faut QUE CA dans le initialise, pas de AddItem.
      A+
  2. Private Sub UserForm_Initialize()

    'si la dernière ligne est supérieure à 256 déclarer i et x en Integer
    Dim i As Byte, x As Byte

    i = Sheets("Préventif").Range("X65536").End(xlUp).Row
    For x = 1 To i

    With Machine
    .AddItem Sheets("Préventif").Range("X" & x)
    End With

    Next x

    End Sub

    Merci Polux,

    Cependant, ça ne marche pas

    "Erreur 9 : L'indice n'appartient pas à la sélection"

    Si je supprime le With, comment Excel sera ou ajouter mes items?
    1. Il faut mettre

      Machine.AddItem Sheets("Préventif").Range("X" & x)
    2. Private Sub UserForm_Initialize()

      'si la dernière ligne est supérieure à 256 déclarer i et x en Integer
      Dim i As Byte, x As Byte

      i = Sheets("Préventif").Range("X65536").End(xlUp).Row
      For x = 1 To i

      Machine.AddItem Sheets("Préventif").Range("X" & x)

      Next x

      End Sub

      -> Toujours l'erreur 9
    3. Tu peux dire sur quelle ligne se situe l'erreur stp
    4. Private Sub UserForm_Initialize()

      'si la dernière ligne est supérieure à 256 déclarer i et x en Integer
      Dim i As Byte, x As Byte

      i = Sheets("Préventif").Range("X65536").End(xlUp).Row

      Ca plante juste après avoir passé ça !

      Merci Polux
    5. Et avec

      Dim i As Long, x As Long
  3. Bonjour

    Change

    Private Sub UserForm_Click()

    Par

    Private Sub UserForm_Initialize()

    Le With ... End With n'est pas nécessaire

    Et ça devrait fonctionner