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 / classement des colonnes / Filtres / listview modifiable dans la base de données [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de GADENSEB
    Homme Profil pro
    Responsable Administratif et Financier
    Inscrit en
    Mars 2014
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable Administratif et Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 569
    Par défaut Listview / classement des colonnes / Filtres / listview modifiable dans la base de données
    Bonsoir,
    Je cherche à faire des classements dans un listview sur chaque colonnes par ordre Alphanumériques

    + comment créer des filtres pour filtrer (par le biais de combox ou autre SUR l'USF) sur des critères dépendant d'autre données n'apparaissant pas dans la istview
    - critère 1
    - critère 2
    - critère 3
    .......

    + Pouvoir rendre modifiable les données de la listview pour que cela modifie la base de données...


    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 UserForm_initialize()
    With Me.ANALYSEPARLISTE
        With .ColumnHeaders
            .Clear
            .Add , , "SOCIETE", 80
            .Add , , "ZONE", 60
            .Add , , "TYPE", 70
            .Add , , "NOM", 120
            .Add , , "PRENOM", 80
            .Add , , "FONCTION", 150
            .Add , , "MAIL", 120
            .Add , , "POSTE", 80
            .Add , , "REMARQUE", 80
        End With
        .View = 3                   ' type Report
        .Gridlines = True           ' affichage de lignes
        .FullRowSelect = True       ' sélection complète de la ligne
        .HideColumnHeaders = False  ' afficher les en-têtes de colonnes
        .LabelEdit = 1              ' ne pas autoriser la saisie
     
    End With
    Call LISTING
     
    End Sub
     
    Sub LISTING()
    ANALYSEPARLISTE.ListItems.Clear
    With Sheets("BASE EMPLOI")
       Set Plage = Range("b2:b" & .Range("b65000").End(xlUp).Row)
        For Each Cel In Plage
            With ANALYSEPARLISTE
                .ListItems.Add , , Cel
                'Appelle la SOCIETE
                .ListItems(.ListItems.Count).ListSubItems.Add , , Cel.Offset(0, 1)
                'Appelle la ZONE
                .ListItems(.ListItems.Count).ListSubItems.Add , , Cel.Offset(0, 2)
                'Appelle le TYPESOCIETE
                .ListItems(.ListItems.Count).ListSubItems.Add , , Cel.Offset(0, 4)
                'Appelle le NOMCONTACT
                .ListItems(.ListItems.Count).ListSubItems.Add , , Cel.Offset(0, 5)
                'Appelle  le PRENOMCONTACT
                .ListItems(.ListItems.Count).ListSubItems.Add , , Cel.Offset(0, 6)
                'Appelle  la FONCTIONCONTACT
                .ListItems(.ListItems.Count).ListSubItems.Add , , Cel.Offset(0, 7)
                'Appelle  le MAILCONTACT
                .ListItems(.ListItems.Count).ListSubItems.Add , , Cel.Offset(0, 10)
                'Appelle  le POSTE
                .ListItems(.ListItems.Count).ListSubItems.Add , , Cel.Offset(0, 45)
                'Appelle  l'ANNONCE
                .ListItems(.ListItems.Count).ListSubItems.Add , , Cel.Offset(0, 46)
            End With
        Next
    End With
     
    End Sub

    Merci

    Seb

  2. #2
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Bonsoir GADENSEB

    Il y a l'excellent tutoriel de SilkyRoad qui traite de ces questions:
    Utiliser le contrôle ListView en VBA Excel

    http://silkyroad.developpez.com/VBA/ListView/

  3. #3
    Membre éclairé Avatar de GADENSEB
    Homme Profil pro
    Responsable Administratif et Financier
    Inscrit en
    Mars 2014
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable Administratif et Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 569
    Par défaut
    Merci La page est super mais mon code bloque je ne sais pas où

    Je n'arrive pas à inserer dans la listview les données de la feuille excel dépassant la colonne n°10 ......

    Est-ce normal au point de vue de ce 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 UserForm_Initialize()
    With Me.ANALYSEPARLISTE
        With .ColumnHeaders
            .Clear
            .Add , , "SOCIETE", 80
            .Add , , "ZONE", 60
            .Add , , "TYPE", 70
            .Add , , "NOM", 120
            .Add , , "PRENOM", 80
            .Add , , "FONCTION", 150
            .Add , , "TELEPHONE", 70
            .Add , , "MAIL", 70              
            .Add , , "BLABLA", 70
     
        End With
        .View = 3                   ' type Report
        .Gridlines = True           ' affichage de lignes
        .FullRowSelect = True       ' sélection complète de la ligne
        .HideColumnHeaders = False  ' afficher les en-têtes de colonnes
        .LabelEdit = 1              ' ne pas autoriser la saisie
     
    End With
    Call LISTING
     
    End Sub
     
    Sub LISTING()
    ANALYSEPARLISTE.ListItems.Clear
    With Sheets("BASE EMPLOI")
       Set Plage = Range("b2:b" & .Range("b65000").End(xlUp).Row)
        For Each Cel In Plage
            With ANALYSEPARLISTE
                .ListItems.Add , , Cel
                'Appelle la SOCIETE
                .ListItems(.ListItems.Count).ListSubItems.Add , , Cel.Offset(0, 1)
                'Appelle la ZONE
                .ListItems(.ListItems.Count).ListSubItems.Add , , Cel.Offset(0, 2)
                'Appelle le TYPESOCIETE
                .ListItems(.ListItems.Count).ListSubItems.Add , , Cel.Offset(0, 4)
                'Appelle le NOMCONTACT
                .ListItems(.ListItems.Count).ListSubItems.Add , , Cel.Offset(0, 5)
                'Appelle  le PRENOMCONTACT
                .ListItems(.ListItems.Count).ListSubItems.Add , , Cel.Offset(0, 6)
                'Appelle  la FONCTIONCONTACT
                .ListItems(.ListItems.Count).ListSubItems.Add , , Cel.Offset(0, 7)
                'Appelle  le TELEPHONECONTACT
                .ListItems(.ListItems.Count).ListSubItems.Add , , Cel.Offset(0, 8)
                'Appelle  le MAILCONTACT
                .ListItems(.ListItems.Count).ListSubItems.Add , , Cel.Offset(0, 10)
     
                'Appelle  le BLABLA
                .ListItems(.ListItems.Count).ListSubItems.Add , , Cel.Offset(0, 2)
     
     
            End With
        Next
    End With
     
    End Sub
     
    Private Sub ANALYSEPARLISTE_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
        ANALYSEPARLISTE.Sorted = False
        ANALYSEPARLISTE.SortKey = ColumnHeader.Index - 1
     
        If ANALYSEPARLISTE.SortOrder = lvwAscending Then
            ANALYSEPARLISTE.SortOrder = lvwDescending
            Else
            ANALYSEPARLISTE.SortOrder = lvwAscending
        End If
     
       ANALYSEPARLISTE.Sorted = True
    End Sub
     
    Private Sub MODIFICATIONS_Click()
       Dim i As Integer, j As Integer
     
        'Boucle sur toutes les lignes
        For i = 1 To ANALYSEPARLISTE.ListItems.Count
            Cells(i, 1) = ANALYSEPARLISTE.ListItems(i).Text
     
            'Boucle sur les colonnes
            For j = 1 To ANALYSEPARLISTE.ColumnHeaders.Count - 1
                Cells(i, j + 1) = ANALYSEPARLISTE.ListItems(i).ListSubItems(j).Text
            Next j
        Next i
     
     
    End Sub

  4. #4
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Bonjour GADENSEB

    Pour ajouter des colonnes, il suffit d'ajouter de nouvelles entêtes de colonnes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
           .Add , , "BLABLA", 70
            .Add , , "BLABLA2", 70
            .Add , , "BLABLA3", 70
            .Add , , "BLABLA4", 70

  5. #5
    Membre éclairé Avatar de GADENSEB
    Homme Profil pro
    Responsable Administratif et Financier
    Inscrit en
    Mars 2014
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable Administratif et Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 569
    Par défaut
    Yes ça ça matche nikel
    Le soucis est dans me renvoi d'informations
    Il ne se fait pas au delà de la colonne 10 ou alorsc'est les valeurs de la colonne 10 qui sont renvoyées.

  6. #6
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Là je ne comprends pas. Il faudrait que tu joignes un petit fichier au format XLS qui illustre le problème.

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

Discussions similaires

  1. Enregistrer des fichiers word, pdf, etc. dans une base de données
    Par mallsoul dans le forum Décisions SGBD
    Réponses: 23
    Dernier message: 10/09/2014, 15h48
  2. Réponses: 2
    Dernier message: 08/09/2014, 20h13
  3. Réponses: 1
    Dernier message: 11/02/2010, 16h31
  4. Réponses: 5
    Dernier message: 25/05/2009, 15h58
  5. Filtre de valeurs dans la base de données à partir d'excel
    Par xtian_Québec dans le forum VBA Access
    Réponses: 1
    Dernier message: 23/12/2007, 03h31

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