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 :

Listview et click sur un element d'une colonne [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Constructeur ossature bois
    Inscrit en
    Mars 2014
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Constructeur ossature bois
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2014
    Messages : 897
    Par défaut
    Bonjour à tous,
    voici ma listview
    Nom : 2016-03-03_15-53-23.jpg
Affichages : 2558
Taille : 40,3 Ko
    J'aimerai pourvoir cliquer sur par ex "R2C2" ou "R4C6"
    et pouvoir affecter une macro à chaque sélection

    voici le code
    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    Private Sub Create_ListView_Dynamic()
        'Declare Variable Names
        Dim oLv As ListView
        Dim Wsheet As Worksheet
     
        'Create ListView in WorkSheet
        Set Wsheet = ThisWorkbook.Sheets(2)
        Set oLv = Wsheet.OLEObjects.Add(ClassType:="MSComctlLib.ListViewCtrl.2", _
            Link:=False, DisplayAsIcon:=False, Left:=100, Top:=100, Width:=300, Height:=100).Object
     
        'Give ListView Control a Name
        oLv.Name = "ListCust"
     
        'Assign Value to Other Properties
        With oLv
            .Left = 20
            .Top = 20
            .Height = 100
            .Width = 492
            .Visible = True
            .View = lvwReport
        End With
     
    End Sub
     
     
     
    Private Sub Access_ListView_Add_Data()
        'Declare Variable Names
        Dim i As Integer
        Dim oLv As ListView
        Dim oLi As ListItem
        Dim Wsheet As Worksheet
     
        'Get ListView in WorkSheet to an Object
        Set Wsheet = ThisWorkbook.Sheets(2)
        Set oLv = Wsheet.OLEObjects("ListCust").Object
     
        'Clear Header & Add Column Headers
        oLv.ColumnHeaders.Clear
        With oLv
            .ColumnHeaders.Add 1, "Réunions", "Réunions"
            .ColumnHeaders.Add 2, , "1ère"
            .ColumnHeaders.Add 3, , "2ème"
            .ColumnHeaders.Add 4, , "3ème"
            .ColumnHeaders.Add 5, , "4ème"
            .ColumnHeaders.Add 6, , "5ème"
            .ColumnHeaders.Add 7, , "6ème"
            .ColumnHeaders.Add 8, , "7ème"
            .ColumnHeaders.Add 9, , "8ème"
            .ColumnHeaders.Add 10, , "9ème"
            .View = lvwReport
        End With
     
        'Add Data to ListView
        oLv.ListItems.Clear
     
        Set oLi = oLv.ListItems.Add(1, , "R1")
        For i = 1 To 9
            oLi.SubItems(i) = "R1C" & i
     
        Next i
     
        Set oLi = oLv.ListItems.Add(2, , "R2")
        For i = 1 To 9
            oLi.SubItems(i) = "R2C" & i
        Next i
        Set oLi = oLv.ListItems.Add(3, , "R2")
        For i = 1 To 9
            oLi.SubItems(i) = "R3C" & i
        Next i
        Set oLi = oLv.ListItems.Add(4, , "R2")
        For i = 1 To 9
            oLi.SubItems(i) = "R4C" & i
        Next i
        'In Some Systems, ListView Value will not be Visible when you just run above code.
        'Execute below code to get the values visible & align properly
        oLv.Visible = False
        oLv.Visible = True
        ActiveSheet.Shapes("ListCust").Select
        With Selection
            .Placement = xlFreeFloating
            .PrintObject = True
        End With
        ActiveWindow.SmallScroll Down:=-24
        ActiveWindow.SmallScroll Up:=24
     
    End Sub
    Existe-t-il une solution, car après mainte et mainte recherche je ne trouve pas..

    Seb

    Re,
    Laissez tomber, je vais faire autrement, car cela est visiblement impossible....

    Seb

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonsoir,
    sauf à contourner le probleme, mettre un(e) inputbox apres le click qui demande de choisir la colonne de la ligne du listview
    bon courage
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre éclairé
    Homme Profil pro
    Constructeur ossature bois
    Inscrit en
    Mars 2014
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Constructeur ossature bois
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2014
    Messages : 897
    Par défaut
    Salut casefayere,

    Oui j'y ai bien pensé....mais ça va devenir une usine à gaz....

    je vais voir pour mettre le tout dans un combo....
    j'ai également vu flexgrid/datagrid....mais avec Windows 8 visiblement il y a pas mal de problèmes...bref je crois que le combobox s'impose.


    Seb

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Oui j'y ai bien pensé....mais ça va devenir une usine à gaz....
    pas sur (une paire de ligne en plus) mais je t'avoue que je n'ai pas regardé ton problème plus que ça
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre éclairé
    Homme Profil pro
    Constructeur ossature bois
    Inscrit en
    Mars 2014
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Constructeur ossature bois
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2014
    Messages : 897
    Par défaut
    je t'avoue que je n'ai pas regardé ton problème plus que ça
    c pas grave, mais t'inquiète j'ai refais ma trame....avec combo et d'un autre coté c pas plus mal...

    Maintenant s'il y a une solution pour d'autres utilisateurs qui chercheraient la même chose que moi, initialement, tu peux poster ton exemple
    Merci

    Seb

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut RE
    bonsoir
    puré et le x/y de la souris sur le listview vous l'oubliez !!!!!!
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Membre éclairé
    Homme Profil pro
    Constructeur ossature bois
    Inscrit en
    Mars 2014
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Constructeur ossature bois
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2014
    Messages : 897
    Par défaut
    Re,
    Te voilà ici toi patrick...
    t'es partout....

    Oui, j'ai entrevue cette possibilité, "Mousedown"......
    Mais dans mon cas, il faut que je puisse sélectionner (voir image post#1), par ex: R1C3 ou R2C8, et affecté une macro pour chaque click....

    Le contrôle listbox et treeview m'ont l'air très bien....
    Je n'ai jamais testé treeview.....A voir

    Pour listbox, je me bats encore avec en ce moment....
    Bref, je cherche, mais ma solution des combo fonctionnent, mais pas très joli et je n'aime pas laisser tomber ...

    Seb

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    demo en image
    Nom : demoingto64 in-out.gif
Affichages : 2648
Taille : 338,9 Ko
    met ca dans un userform et teste
    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 ListView1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As stdole.OLE_XPOS_PIXELS, ByVal y As stdole.OLE_YPOS_PIXELS)
    col = IIf(x > 81, 2, 1)
     MsgBox " vous avez cliqué sur  " & ListView1.ListItems(ListView1.SelectedItem.Index).ListSubItems(col).Text
    'Set ListView1.SelectedItem = Nothing
    ListView1.ListItems(1).Selected = True
    End Sub
    Private Sub UserForm_Initialize()
     
        '----- remplissage ListView------------------------
        With ListView1
     
            With .ColumnHeaders
                'Supprime les anciens entêtes
                .Clear
     
                .Add , , "reunion", 30
                .Add , , "course1", 50
                .Add , , "course2", 50
            End With
     
            'Remplissage de la 1ere colonne (création de 3 lignes)
     
           For i = 1 To 10
     
              .ListItems.Add , "R" & i, "R" & i
     
           For c = 1 To 10
            .ListItems(i).ListSubItems.Add , , "R" & i & "C" & c
            Next
           Next
          End With
     
     
        '--------------------------------------------------
     
        'Spécifie l'affichage en mode "Détails"
        ListView1.View = lvwReport
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

Discussions similaires

  1. Changement sur click dans un element d'une liste
    Par titeZ dans le forum VBA Access
    Réponses: 1
    Dernier message: 07/10/2007, 11h20
  2. Changement sur click dans un element d'une liste
    Par titeZ dans le forum VBA Access
    Réponses: 1
    Dernier message: 07/10/2007, 08h13
  3. Réponses: 12
    Dernier message: 11/10/2006, 22h43
  4. plantage après click sur le OK d'une messageBox
    Par cenedra dans le forum MFC
    Réponses: 7
    Dernier message: 31/07/2006, 08h43
  5. Recherche sur 2 elements dans une liste box.
    Par molarisapa dans le forum Access
    Réponses: 2
    Dernier message: 29/05/2006, 18h43

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