IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Insertion données dans colonne ListBox [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    retraitée
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : retraitée

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Par défaut Insertion données dans colonne ListBox
    bonjour,

    je souhaite insérer les données sélectionnées depuis un comboboxArticle vers une listboxDesArt dans la bonne colonne
    ComboBoxArticle = code article et désignation de la liste de tous les articles disponibles
    ListBoxDesArt colonne 1 = code article; colonne 2 = désignation article d'un devis prédéfini
    je veux pouvoir insérer à l'endroit sélectionné dans ListBoxDesArt, ce que je sélectionne dans la ComboBoxArticle (code article et désignation)
    Or je n'arrive pas à dire : listindex + N°col correspondante
    voici le code pour plus de clarté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Private Sub CmdBotInsert_Click()
    Dim Valeur1 As Variant, Valeur2 As Variant
    Dim Plg_A_Inserer1 As Range
    Dim Plg_A_Inserer2 As Range
     
    'Si l'usager n'a fait aucune sélection
    With Me.ListBoxArtDes
        If .ListIndex = -1 Then
            'fin de la procédure
            Exit Sub
        Else
            'récupère la ligne dans la feuille qui correspond
            'à la sélection dans le listboxArtDes
            LigInsert = .ListIndex
        End If
    End With
     
    With ComboBoxArticle
        If .ListIndex <> -1 Then
            Set Plg_A_Inserer1 = RgComboBoxArticle1(.ListIndex + 1)
            Set Plg_A_Inserer2 = RgComboBoxArticle2(.ListIndex + 1)
        End If
    End With
     
    'insertion dans la listboxArtDes au dessus de la ligne sélectionnée
     
    With Me.ListBoxArtDes
    .AddItem (Plg_A_Inserer1), .ListIndex(1)
    .AddItem (Plg_A_Inserer2), .ListIndex(2)
    End With
     
     
    End Sub
    merci pour votre aide !

  2. #2
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    Bonjour,

    Tu dois dans la propriété ColumnCount de ta listbox définir le nombre de colonnes voulues

    Ces colonnes dans la gestion des listbox sont n° de 0 à ColumnCount -1

    ListBox.Additem "Essai" : incremente automatiquement la listbox colonne 0, les autres colonnes fonctionnent en mise à jour.
    Exemple : ListBox.list(0,1) = "Essai colonne 2"
    ..............Listbox.list(0,2) = "Essai colonne 3"

  3. #3
    Membre confirmé
    Femme Profil pro
    retraitée
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : retraitée

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Par défaut insertion ligne dans listbox
    Merci Wilfried

    effectivement il fallait modifier propriété ColumnCount =2
    maintenant en adaptant ton code, j'ai en résultat le REMPLACEMENT des valeurs dans la ListBoxArtDes or ce que je veux c'est rajouter une ligne avec les valeurs Plg_A_Inserer1 et Plg_A_Inserer2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With Me.ListBoxArtDes
    ListBoxArtDes.AddItem
    ListBoxArtDes.List(LigInsert, 0) = Plg_A_Inserer1
    ListBoxArtDes.List(LigInsert, 1) = Plg_A_Inserer2
    End With
    comment faire pour Insérer une ligne au-dessus de LigInsert ?
    Où est mon erreur ?
    d'avance merci

  4. #4
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    re:

    si j'entends bien, tu desires inserer une ligne entre 2 lignes d'une listbox préremplie. Je n'ai pas encore trouvé d'ordre insert dans les listBox, je m'avance peut être mais pour moi on ne peut qu'ajouter.
    J'utilise alors un truc
    j'ai une listeBox (lstB) qui contient 10 items sur 3 colonnes
    je me positionne sur la 5ème ligne et je veux inserer entre la 4ème et la 5ème une nouvelle ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim ligne as integer, posit as integer, i as integer, j as integer
    ' i : boucle sur les lignes, j sur les colonnes
         ligne = lstB.listcount 'Nombre de ligne dans la listbox
         posit = lstB.listindex
         lstb.additem " "
         for i = ligne to posit+1 step -1
              For j = 0 to 2 ' 3 colonnes
                     lstb.list(i,j) = lstb.list(i-1,j)
              Next j
         Next i
         lstb.list(posit,0) = "Rens colonne 1"
         lstb.list(posit,1) = "Rens colonne 2"
         lstb.list(posit,2) = "Rens colonne 3"
    code fait à main levée, non testé (je n'ai pas trop le temps je reprends le boulot)

  5. #5
    Membre confirmé
    Femme Profil pro
    retraitée
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : retraitée

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Par défaut insertion dans listbox à endroit donné
    merci Wilfried, ça fonctionne très bien avec ton code à main levée !
    bon courage

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Insertion données dans Listbox multi colonnes
    Par jrevert dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/08/2009, 16h38
  2. Réponses: 2
    Dernier message: 18/03/2007, 19h02
  3. [SQL] Pb d'insertion donnée dans table, pb requête SQL
    Par PuppeT mAsTer dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 03/07/2006, 11h26
  4. [DOM XML] Insertion données dans fichier XML avec PHP pour Flash ?
    Par ExSter dans le forum Bibliothèques et frameworks
    Réponses: 17
    Dernier message: 10/05/2006, 11h16
  5. Aide userform( insertion données dans classeur)
    Par zouille dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 19/12/2005, 09h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo