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 :

Controler une ListeView


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Points : 81
    Points
    81
    Par défaut Controler une ListeView
    Bonjour a tous,

    J ai cree une liste view avec des checkbox en colonne 1. Je voudrais que la colonne 4 soit egale a la colonne 2 fois la colonne 3 si la checkbox est cochee. VOus avez des idees de syntaxes ?


    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 595
    Points : 34 271
    Points
    34 271
    Par défaut
    Bonjour,

    un peu de lecture qui te sera des plus utiles !
    http://silkyroad.developpez.com/VBA/ListView/
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Points : 81
    Points
    81
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub CommandButton_Accept_Click()
     
    For i = 1 To ListView_Trading.ListItems.Count
     
    If ListView_Trading.ListItems(i).Checked = True Then
     
    ListView_Trading.ListItems(i).ListSubItems(4).Text = "Test"
     
    End If
     
    Next i
     
    End Sub
    Me donne une erreur, Index out of bounds PK?

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 595
    Points : 34 271
    Points
    34 271
    Par défaut
    Les compteurs vont de 0 a n-1
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Points : 81
    Points
    81
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub CommandButton_Accept_Click()
    
    For i = 1 To ListView_Trading.ListItems.Count - 1
    
    If ListView_Trading.ListItems(i).Checked = True Then
     
    ListView_Trading.ListItems(i).ListSubItems(4).Text = "Test"
    
    End If
    
    Next i
    
    End Sub
    ca ne marche toujours pas meme erreur

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 595
    Points : 34 271
    Points
    34 271
    Par défaut
    Tu as combien de subitems ?

    si tu en as a 4, ca va de 0 a 3
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Points : 81
    Points
    81
    Par défaut
    j en ai 8 ...

  8. #8
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 595
    Points : 34 271
    Points
    34 271
    Par défaut
    Bon, alors soyons methodiques :

    - lance en mode pas a pas
    - a quelle ligne est-ce que le code genere une erreur ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  9. #9
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Points : 81
    Points
    81
    Par défaut
    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
    For i = 1 To ListView_Trading.ListItems.Count
        
        tt_amount_per_found = 0
    
            If ListView_Trading.ListItems(i).Checked = True Then
       
                tt_amount_per_found = TextBox_Cash.value * ListView_Trading.ListItems(i).ListSubItems(2)
    
                    If tt_amount_per_found >= GetInstrData(strIsin, "BBG", "Minpiece") Then
    
                        If tt_amount_per_found >= (GetInstrData(strIsin, "BBG", "Minpiece") + GetInstrData(strIsin, "BBG", "MinIncrement")) Then
                        
                            buyin = WorksheetFunction.Quotient(tt_amount_per_found, GetInstrData(strIsin, "BBG", "MinIncrement"))
                            
                        Else
                        
                            buyin = 0
                        
                        End If
    
                    End If
    
       
                ListView_Trading.ListItems(i).ListSubItems(3).Text = buyin
    
            End If
    
        Next i
    
    End Sub
    J'ai resolu le probleme ne voila un second, a la ligne en rouge il y a un type Mismatch ... je vois pas pk

  10. #10
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Points : 81
    Points
    81
    Par défaut
    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
    For i = 1 To ListView_Trading.ListItems.Count
     
        tt_amount_per_found = 0
     
            If ListView_Trading.ListItems(i).Checked = True Then
     
                tt_amount_per_found = TextBox_Cash.value * ListView_Trading.ListItems(i).ListSubItems(2)
     
                    If tt_amount_per_found >= GetInstrData(strIsin, "BBG", "Minpiece") Then
     
                        If tt_amount_per_found >= (GetInstrData(strIsin, "BBG", "Minpiece") + GetInstrData(strIsin, "BBG", "MinIncrement")) Then
     
                            buyin = WorksheetFunction.Quotient(tt_amount_per_found, GetInstrData(strIsin, "BBG", "MinIncrement"))
     
                        Else
     
                            buyin = 0
     
                        End If
     
                    End If
     
     
                ListView_Trading.ListItems(i).ListSubItems(3).Text = buyin
     
            End If
     
        Next i
     
    End Sub

  11. #11
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 595
    Points : 34 271
    Points
    34 271
    Par défaut
    Verifie que les valeurs sont numeriques (attention au . vs ,)
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  12. #12
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Points : 81
    Points
    81
    Par défaut
    Est ce que c est possible de remplir la couleur d'une case dans une listeview ?

  13. #13
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 595
    Points : 34 271
    Points
    34 271
    Par défaut
    Le fond de la case, non , mais la couleur du texte et sa mise en forme oui

    http://silkyroad.developpez.com/VBA/ListView/#LII-E
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  14. #14
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Points : 81
    Points
    81
    Par défaut
    Ca j'avais lu. J ai vu par contre que l on pouvais surligner la ligne selectionnee... Tu connais la manoeuvre ? Si oui est ce que tu penses qu on peut surligner plusieurs lignes en meme temps ?

  15. #15
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 595
    Points : 34 271
    Points
    34 271
    Par défaut
    Si tu arrives a le faire pour une, il est donc plus que probable que tu puisses le faire pour plusieurs =]

    Quelle solution as-tu trouve pour 1 ligne ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  16. #16
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Points : 81
    Points
    81
    Par défaut
    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
    Private Sub ListView_UserPct_ItemCheck(ByVal Item As MSComctlLib.ListItem)
    
        'MsgBox (Item.SubItems(1) & " : index " & Item.Index)
    
        
        If Me.ListView_UserPct.ListItems(Item.Index).Checked = True Then
        
             If Me.ListView_Trading.ListItems(Item.Index).SubItems(3) <= 0 Then
    
                
                
                Me.ListView_UserPct.ListItems(Item.Index).SubItems(2) = Me.ListView_Trading.ListItems(Item.Index).SubItems(3)
                ListView_UserPct.ListItems(Item.Index).SubItems(2).ForeColor = RGB(255, 0, 0)
                Me.ListView_UserPct.ListItems(Item.Index).SubItems(2).Bold = True
                ListView_Trading.ListItems(Item.Index).Checked = False
            
                     Else
                    
                        Me.ListView_UserPct.ListItems(Item.Index).SubItems(2) = Me.ListView_Trading.ListItems(Item.Index).SubItems(3)
                       ' Me.ListView_UserPct.ListItems(Item.Index).SubItems(2).ForeColor = RGB(9, 106, 9)
                        'Me.ListView_UserPct.ListItems(Item.Index).SubItems(2).Bold = True
                        ListView_Trading.ListItems(Item.Index).Checked = False
            
            End If
            
            
        End If
        
            If Me.ListView_UserPct.ListItems(Item.Index).Checked = False Then
        
            Me.ListView_UserPct.ListItems(Item.Index).SubItems(2) = ""
            ListView_Trading.ListItems(Item.Index).Checked = False
        
        End If
        
        
        
    End Sub
    Ce code me met comme erreur invalid qualifier. La ligne qui ne marche pas est la ligne en rouger

  17. #17
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 595
    Points : 34 271
    Points
    34 271
    Par défaut
    Tu n'utilises pas le Me devant, est-ce voulu ?

    Regarde le code issu du tuto :

    Il est possible de modifier la mise en forme de la ListView afin de personnaliser la visualisation des informations:
    Cet exemple modifie la couleur du texte dans le 2eme sous élément de la 1ere ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListView1.listitems(1).ListSubItems(2).ForeColor = RGB(100, 0, 100)
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/09/2007, 16h43
  2. Controler une saisie
    Par philippef dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/08/2005, 10h36
  3. [Débutant][Conception] Contrôler une application distante
    Par muad'dib dans le forum Général Java
    Réponses: 10
    Dernier message: 05/07/2005, 14h58
  4. Controler une chaine de caracteres ou d'entiers?
    Par Le druide dans le forum C
    Réponses: 6
    Dernier message: 25/09/2003, 08h48
  5. Controler une anim Flash
    Par Nico-ganja dans le forum Flash
    Réponses: 2
    Dernier message: 04/03/2003, 00h37

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