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 :

Remplir une listview à partir d'une feuille de calcul ou de textbox [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut Remplir une listview à partir d'une feuille de calcul ou de textbox
    Bjr,
    Dans un formulaire j'ai 1 combobox, 1 Listbox et 1listview. Si je selectionne SEPT dans le combobox il alimente ma listBox via une plage nommée et j'aimerais alimenté ma listview par une range par exemple [C18:I20] ou la valeur de textboxs d'un autre formulaire. Je sais remplir les lignes en définissant le contenu grace à ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            'Remplissage des colonnes 2 et 3 dans la 1ere ligne
            .ListItems(1).ListSubItems.Add , , "TOTO"
            .ListItems(1).ListSubItems.Add , , 30
    mais ce que je voudrais faire c un truc de ce genre:
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    Private Sub Cbo3_Change()
    
    Application.ScreenUpdating = False
    
    If Cbo3.Value = "SEPT" Then
      ListBox1.RowSource = "Noms2"
    
    Load Rapportform
    Rapportform.Controls("Cbo2").Value = "SEPT"
    
    With ListView1
    'Remplissage des colonnes 2 à 8 dans la 1ere ligne
            .ListItems(1).ListSubItems.= Rapportform.Controls("TextBox1").Value
            .ListItems(1).ListSubItems = Rapportform.Controls("TextBox2").Value
            .ListItems(1).ListSubItems = Rapportform.Controls("TextBox3").Value
            .ListItems(1).ListSubItems = Rapportform.Controls("TextBox4").Value
            .ListItems(1).ListSubItems = Rapportform.Controls("TextBox5").Value
            .ListItems(1).ListSubItems = Rapportform.Controls("TextBox6").Value
            .ListItems(1).ListSubItems = Rapportform.Controls("TextBox7").Value
    
            'Remplissage des colonnes 2 à 8 dans la 2eme ligne
            .ListItems(2).ListSubItems = Rapportform.Controls("TextBox8").Value
            .ListItems(2).ListSubItems = Rapportform.Controls("TextBox9").Value
            .ListItems(2).ListSubItems = Rapportform.Controls("TextBox10").Value
            .ListItems(2).ListSubItems = Rapportform.Controls("TextBox11").Value
            .ListItems(2).ListSubItems = Rapportform.Controls("TextBox12").Value
            .ListItems(2).ListSubItems = Rapportform.Controls("TextBox13").Value
            .ListItems(2).ListSubItems = Rapportform.Controls("TextBox14").Value
            
            'Remplissage des colonnes 2 à 8 dans la 3eme ligne
            .ListItems(3).ListSubItems = Rapportform.Controls("TextBox15").Value
            .ListItems(3).ListSubItems = Rapportform.Controls("TextBox16").Value
            .ListItems(3).ListSubItems = Rapportform.Controls("TextBox17").Value
            .ListItems(3).ListSubItems = Rapportform.Controls("TextBox18").Value
            .ListItems(3).ListSubItems = Rapportform.Controls("TextBox19").Value
            .ListItems(3).ListSubItems = Rapportform.Controls("TextBox20").Value
            .ListItems(3).ListSubItems = Rapportform.Controls("TextBox21").Value
    
    End With
    ElseIf Cbo3.Value = "OCT" Then
      ListBox1.RowSource = "Noms3"
    
    Load Rapportform
    Rapportform.Controls("Cbo2").Value = "OCT"
    
    With ListView1
    'Remplissage des colonnes 2 à 8 dans la 1ere ligne
            .ListItems(1).ListSubItems.= Rapportform.Controls("TextBox1").Value
    End With
    
    'ETC .......
    
    End If
    
    End Sub
    je sais c un peu long mais c la première fois que j'utilise une listview. Comme vous vous en doutez cette ligne n'est pas bonne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .ListItems(1).ListSubItems.= Rapportform.Controls("TextBox1").Value
    Que faire? merci d'avance de votre aide

  2. #2
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut J'ai trouvé !!
    Re,
    apres de nombreuses recherches et mures réflexion j'ai fini par comprendre comment remplir ma listview soit par plage ou encore par formulaire (textbox).

    j'ai choisi d'utiliser les textboxs d'un de mes formulaires:
    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
    34
    35
    Private Sub Cbo3_Change()
    Dim i, vval As Long
     
    Application.ScreenUpdating = False
     
     
    If Cbo3.Value = "SEPT" Then
      ListBox1.RowSource = "Noms2"
     
    Load Rapportform
    Rapportform.Controls("Cbo2").Value = "SEPT"
    vval = 1
     
    For i = 1 To 4
     
    With ListView1.ListItems(i).ListSubItems
        For vval = vval To vval
     
    'Remplissage des colonnes 2 à 8 dans la 1ere ligne
            .Add , , Rapportform.Controls("TextBox" & vval).Value
            .Add , , Rapportform.Controls("TextBox" & vval + 1).Value
            .Add , , Rapportform.Controls("TextBox" & vval + 2).Value
            .Add , , Rapportform.Controls("TextBox" & vval + 3).Value
            .Add , , Rapportform.Controls("TextBox" & vval + 4).Value
            .Add , , Rapportform.Controls("TextBox" & vval + 5).Value
            .Add , , Rapportform.Controls("TextBox" & vval + 6).Value
        vval = vval + 6
        Next vval
     
    End With
    Next i
     
    ElseIf Cbo3.Value = "OCT" Then
    '
    'ETC...

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

Discussions similaires

  1. [Débutant] Remplir des tables à partir d'une listview [C# WPF LINQ]
    Par ExKira dans le forum Linq
    Réponses: 0
    Dernier message: 18/03/2015, 14h48
  2. Lancer une activity à partir d'une listView
    Par cadeau10 dans le forum Composants graphiques
    Réponses: 2
    Dernier message: 10/05/2011, 09h25
  3. Comment créer une GridView à partir d'une ListView ?
    Par xXO--Hades--OXx dans le forum Composants graphiques
    Réponses: 52
    Dernier message: 09/12/2010, 10h49
  4. Afficher une image à partir d'une listview
    Par JLV1975 dans le forum IHM
    Réponses: 3
    Dernier message: 10/03/2008, 09h55
  5. Réponses: 7
    Dernier message: 28/01/2007, 11h38

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