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. Bonjour

    Change

    Private Sub UserForm_Click()

    Par

    Private Sub UserForm_Initialize()

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

    Et ça devrait fonctionner
    0
    1. 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?
      0
      1. Il faut mettre

        Machine.AddItem Sheets("Préventif").Range("X" & x)
        0
      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
        0
      3. Tu peux dire sur quelle ligne se situe l'erreur stp
        0
      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
        0
      5. Et avec

        Dim i As Long, x As Long
        0
    2. 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+
      0
      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
        0
      2. Contributeur
        Et pourtant... ça fonctionne.
        Il ne faut QUE CA dans le initialise, pas de AddItem.
        A+
        0