Source d'une Listbox

Résolu
DGVDR Messages postés 158 Date d'inscription   Statut Membre Dernière intervention   -  
DGVDR Messages postés 158 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Etant un débutant, je rencontre des problèmes de débutant...

Dans mon userform gestionstock,
Je souhaite incrémenter une listbox appelée "Plagemachine"
Mes données se trouvent dans l'onglet "Préventif", dans la colonne X

Private Sub gestionstock_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 Plagemachine
.AddItem Sheets("Préventif").Range("x" & x)
End With
Next x
End Sub

Rien n'apparait dans ma listbox...

Merci,

DGVDR

4 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    Essayez peut être comme ceci :

    Private Sub gestionstock_Initialize()
    'si la dernière ligne est supérieure à 256 déclarer i et x en Integer
    Dim i As Byte, x As Byte
    
    With Sheets("Préventif")
        i = .Range("x65536").End(xlUp).Row
        For x = 1 To i
            Plagemachine.AddItem .Range("X" & x)
        Next x
    End With
    End Sub

    0
  2. DGVDR Messages postés 158 Date d'inscription   Statut Membre Dernière intervention  
     
    Bonjour pijaku,

    Pas mieux...

    Ca reste vierge...!
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Essaie avec des MsgBox en "arrêt", comme ceci :

      Private Sub gestionstock_Initialize()
      'si la dernière ligne est supérieure à 256 déclarer i et x en Integer
      Dim i As Byte, x As Byte
      
      With Sheets("Préventif")
          i = .Range("x65536").End(xlUp).Row
          MsgBox i
          For x = 1 To i
              MsgBox .Range("X" & x).Value
              Plagemachine.AddItem .Range("X" & x).Value
          Next x
      End With
      End Sub


      Tu verras comme cela ce qui cloche...
      0
  3. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Bonjour DGCDR, Bonjour Pijaku,

    Pourquoi déclarer i et x en byte alors que l'on a :
    i = .Range("x65536").End(xlUp).Row

    Autant déclarer i et x en Long.

    Le code de Pijaku fonctionne correctement.

    «Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
    Nicolas Boileau
    0
  4. DGVDR Messages postés 158 Date d'inscription   Statut Membre Dernière intervention  
     
    De mon coté, ça ne fonctionne pas...

    Ci-dessous mon fichier.

    https://www.cjoint.com/c/CLloqTfRJdy

    Si vous voyez l'erreur.

    Mon code VBA est "unzo"

    Merci à vous deux,

    DGVDR
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Ben oui.......
      N'utilise pas Private Sub gestionstock_initialise() mais :

      Private Sub UserForm_Initialize()
      'si la dernière ligne est supérieure à 256 déclarer i et x en Integer
      Dim i As Long, x As Long
      
      With Sheets("Préventif")
          i = .Range("X65536").End(xlUp).Row
          For x = 1 To i        
              Plagemachine.AddItem .Range("X" & x).Value
          Next x
      End With
      End Sub
      0
    2. DGVDR Messages postés 158 Date d'inscription   Statut Membre Dernière intervention  
       
      Entendu, merci.

      Cependant ici je ne définis "Plagemachine" à aucun moment ?

      DGVDR
      0
    3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Oula.... C'est quoi cette question?
      Tu veux dire quoi??? Tu entends quoi par "définir plagemachine"?
      0
    4. DGVDR Messages postés 158 Date d'inscription   Statut Membre Dernière intervention  
       
      C'est bon, ça fonctionne.

      J'avais zappé que "Plagemachine" était ma ListBox.

      Merci beaucoup.

      DGVDR
      0