Listbox vers cellules

Résolu
math -  
 OMrtt -
Bonjour,

Je souhaiterais insérer toutes les valeurs d'une listbox dans des cellules.

j'ai essayé d'insérer le nombre de ligne de la listbox dans ma feuille puis d'y copier mes données mais je suis bloqué a la première étape.

merci de m'aider

13 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Avant de partir

    sans boucles inutiles (mais ca marche aussi)
    Private Sub CommandButton1_Click()
         Dim lig as byte
         lig = ListBox1.ListCount 
         Rows("1:" & lig).Insert 
         With Sheets(1) 
            .Range(.Cells(1, "C"), .Cells(lig, "E")) = ListBox1.List 
            .Range(.Cells(1, "A"), .Cells(lig, "A")) = ComboBox1 
        End With 
    End Sub


    Michel
    1
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,
    Les dites valeurs de listbox sortent d'ou????
    0
  3. math
     
    Dans une userform, j'ai une listbox 3 colonnes remplie de valeurs et lorsque je clique sur le bouton "valider" les valeurs sont écrites dans des cellules distinctes.

    voila mon objectif.
    0
  4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,
    Juste un detail:

    j'ai une listbox 3 colonnes remplie de valeurs et lorsque je clique sur le bouton "valider" les valeurs sont écrites dans des cellules distinctes.


    Vous voulez copiez toutes les valeurs de la listbox ou seulement celles qui sont selectionnees????
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    Exemple:
    Feuil1 pour l'onglet
    E-F-G pour les colonnes

    Private Sub CommandButton1_Click()
    Dim x As Integer, Nb_L_ListBox As Integer
    With Worksheets("feuil1")
    For x = 1 To Me.ListBox1.ListCount
    .Cells(x, 5) = Me.ListBox1.List(x - 1, 0)
    .Cells(x, 6) = Me.ListBox1.List(x - 1, 1)
    .Cells(x, 7) = Me.ListBox1.List(x - 1, 2)
    Next x
    End With
    End Sub

    Vous modifierez pour vous

    Bonne suite
    0
  7. math
     
    Merci pour vos réponses, j'essaye ça tout de suite.
    0
  8. math
     
    la formule de restitution fonctionnement parfaitement. Merci à vous 2!

    je souhaite insérer le nombre de ligne correspondant au Listcount de ma listbox.

    Toutes mes données restituées seront les unes sous les autres
    0
  9. math
     
    merci beaucoup de votre aide, je vais essayer de trouver la suite par moi même.
    0
  10. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    empilage:

    colonne E1 a Ex

    listbox;
    E1,colonne1 1ere ligne
    E2,colonne2
    E3,colonne3
    E4,colonne1 2eme ligne
    E5,colonne2

    Private Sub CommandButton1_Click()
    Dim x As Integer, y As Integer
    With Worksheets("feuil1")
    For x = 1 To Me.ListBox1.ListCount
    y = (x * 3) - 2
    .Cells(y, 5) = Me.ListBox1.List(x - 1, 0)
    .Cells(y + 1, 5) = Me.ListBox1.List(x - 1, 1)
    .Cells(y + 2, 5) = Me.ListBox1.List(x - 1, 2)
    Next x
    End With
    End Sub

    pour la version de michel_m, je vais chercher pour voir

    Bonne suite
    0
  11. math
     
    voici un exemple de l'outil:

    j'ouvre mon userform,

    dans une combobox: G52
    dans ma listbox:

    J04 5 Gris
    J09 8 Noir
    J02 10 rouge

    click sur le bouton -> insertion dans cellules:

    G52 J04 5 Gris
    G52 J09 8 Noir
    G52 J02 10 rouge

    j'ouvre à nouveau mon userform,

    dans une combobox: G53
    dans ma listbox:

    J03 8 vert
    J09 2 bleu
    J02 1 jaune
    J09 5 orange

    click sur le bouton-> insertion dans cellules:

    G53 J03 8 vert
    G53 J09 2 bleu
    G53 J02 1 jaune
    G53 J09 5 orange

    G52 J04 5 Gris
    G52 J09 8 Noir
    G52 J02 10 rouge
    .

    j'ai la formule pour insérer les valeurs correctement mais il me manque celle pour insérer le nombre de lignes suffisante exemple: pour le G52:insérer 3 lignes, pour le G53 4 lignes.

    je suis pas très compétent en Visual basic. Comment ajouter la variable Liscount à celle d'insertion?

    merci
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Bonjour,

      Donc
      1/ chaque fois que tu appuies sur le bouton, la totalité de la listbox est copiée dans une seule cellule avec plusieurs lignes suivant le nombre de lignes dans la listbox ?
      2/ si G52 et G53 sont des adresses de cellules pourquoi G53 est au dessus de G52 ?

      Merci d'être précis et exhaustif dans tes explications: imagine un peu ce que cela te couterait si tu n'avais pas affaire avec des bénévoles....
      0
    2. math
       
      Bonjour,

      c'est difficile d'expliquer à distance sans support, je m'excuse de la perte de temps qui vous est occasionné.

      1/ A chaque appuies sur le bouton, la totalité de la listbox est copiée dans différentes cellules
      2/ le G52 et G53 ne sont pas des adresses de cellule, ce sont des valeurs exemple.

      mon exemple était maladroit, je l'ai donc refait avec les adresses des cellules:

      j'ouvre mon userform,

      dans une combobox: REP01
      dans ma listbox:

      pomme 5 Gris
      poire 8 Noir
      banane 10 rouge

      click sur le bouton -> insertion dans cellules:

      A C D E F
      1 REP01 pomme 5 Gris
      2 REP01 poire 8 Noir
      3 REP01 banane 10 rouge
      4

      j'ouvre à nouveau mon userform,

      dans une combobox: REP02
      dans ma listbox:

      Ananas 8 vert
      kiwi 2 bleu
      orange 1 jaune
      citron 5 orange

      click sur le bouton-> insertion dans cellules:
      A C D E F
      1 REP02 Ananas 8 vert
      2 REP02 kiwi 2 bleu
      3 REP02 orange 1 jaune
      4 REP02 citron 5 orange
      5 REP01 pomme 5 Gris
      6 REP01 poire 8 Noir
      7 REP01 banane 10 rouge


      en espérant qu'il soit plus explicite!
      .
      0
    3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      OK, c'est bon: restitution sur 4 colonnes (D,E,F)et N lignes suivant la listbox; compilation au dessus de la présente
      ajout à chaque ligne de la valeur de la combo

      c'est dans le principe que t'avais proposé F89...4 (bonjour) et moi:reste l'ajout combo et la compilation au dessus

      Suis absent cet après midi...

      pour te familiariser avec les userform et contrôles, un tuto complet (presque)
      https://silkyroad.developpez.com/VBA/ControlesUserForm/
      https://silkyroad.developpez.com/VBA/UserForm/
      0
    4. math
       
      code pour insérer les valeurs Listbox:

      Dim x As Integer, Nb_L_ListBox As Integer
      With Worksheets("feuil1")
      For x = 1 To Me.ListBox1.ListCount
      .Cells(x + 1, 3) = Me.ListBox1.List(x - 1, 0)
      .Cells(x + 1, 4) = Me.ListBox1.List(x - 1, 1)
      .Cells(x + 1, 5) = Me.ListBox1.List(x - 1, 2)
      Next x


      il fonctionne correctement
      ----------------------------------------------------------------------------------------------------------------------------
      code pour insérer le nombre de ligne:

      Dim y As ...?
      For y =Listbox1.ListCount
      Rows("1:y")
      Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
      


      --------------------------------------------------------------------------------------------------------------------------
      0
    5. OMrtt
       
      Bonjour,

      J'aimerais pouvoir activer une feuille excel selon la valeur rentrer dans une textbox.

      J'ai tenter

      Sheets("TextBox7.Text").Activate

      mais cela ne fonctionne pas..

      Merci d'avance pour votre aide
      0
  12. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    bonjour

    démo de principe
    remplissage de la listbox multicolonne à partir d'un modèle sur la feuille (H5:J9") et restitution de la list1 dans la feuille

    'Remplissage 
    Private Sub UserForm_Initialize()
    tablo = Sheets(1).Range("H5:J9").Value
    ListBox1.Column() = Application.Transpose(tablo)
    End Sub 
    
    'restitution 
    Private Sub CommandButton1_Click()
        With ListBox1
            Sheets(1).Range(Cells(1, 1), Cells(.ListCount, 3)) = .List
        End With
    End Sub


    la maquette

    https://www.cjoint.com/?3BBqV6Cz239

    edit: inversé la transposition !!!!


    Michel
    -1
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re

      Merci
      0