Problème de Combobox

Résolu
DGVDR Messages postés 158 Date d'inscription   Statut Membre Dernière intervention   -  
lermite222 Messages postés 9042 Statut Contributeur -
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. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
  2. DGVDR Messages postés 158 Date d'inscription   Statut Membre Dernière intervention  
     
    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. Polux31 Messages postés 7219 Statut Membre 1 204
       
      Il faut mettre

      Machine.AddItem Sheets("Préventif").Range("X" & x)
      0
    2. DGVDR Messages postés 158 Date d'inscription   Statut Membre Dernière intervention  
       
      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. Polux31 Messages postés 7219 Statut Membre 1 204
       
      Tu peux dire sur quelle ligne se situe l'erreur stp
      0
    4. DGVDR Messages postés 158 Date d'inscription   Statut Membre Dernière intervention  
       
      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. Polux31 Messages postés 7219 Statut Membre 1 204
       
      Et avec

      Dim i As Long, x As Long
      0
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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. DGVDR Messages postés 158 Date d'inscription   Statut Membre Dernière intervention  
       
      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. lermite222 Messages postés 9042 Statut Contributeur 1 199
       
      Et pourtant... ça fonctionne.
      Il ne faut QUE CA dans le initialise, pas de AddItem.
      A+
      0