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 :

Modification contenu listview ou comment etendre la fonction formulaire Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Par défaut Modification contenu listview ou comment etendre la fonction formulaire Excel
    Bonjour,

    Excel possède la fonction formulaire, qui permet de naviguer modifier/créer les entrées dans un userform.

    Malheureusement la fonction est limitée à un certain nombre de colonnes et c'est justement lorsqu'on a beaucoup de colonnes que la fonction est intéressante.

    J'ai donc créé un userform deux colonnes, mais je n'arrive pas à modifier le contenu du listview
    dans la doc de Silkyroad, on peut modifier par vba le contenu, mais je souhaite ecrire dans le listview
    https://silkyroad.developpez.com/VBA/ListView/#LII-B
    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
     
    Private Sub UserForm_Initialize()
    ' je dimensionne mon tableau en fonction du nombre de colonne du titre
    Colo = ActiveSheet.Range("A1").End(xlToRight).Column
    maligne = ActiveCell.Row
    Dim matable()
    ReDim matable(Colo, 2)
    For i = 1 To Colo
    matable(i, 0) = ActiveSheet.Cells(1, i).Value
    Next
    For i = 1 To Colo
    matable(i, 1) = ActiveSheet.Cells(maligne, i).Value
    Next
    ListBox1.List() = matable
    End Sub
    J'ai fait une autre tentative avec une autre manière remplir mon userform
    mais là seule la première colonne est modifiable
    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
     
    Private Sub UserForm_Initialize()
    'Set Ws_Liste = ThisWorkbook.Sheets("Menu")
     
        '----- remplissage ListView------------------------
    With ListView1
            'Définit le nombre de colonnes et Entêtes
            With .ColumnHeaders
                'Supprime les anciens entêtes
                .Clear
                'Ajoute 3 colonnes en spécifiant le nom de l'entête
                'et la largeur des colonnes
                .Add , , "Intervention", 500
                .Add , , "Fréquence", 250
            End With
    .Gridlines = True
     
    With ThisWorkbook.Sheets("162")
     tblBD = .Range(Cells(2, 2), Cells(3, Range("XFD2").End(xlToLeft).Column)).Value
    End With
    Ligne = 0
       For i = 1 To UBound(tblBD, 2)
         Ligne = Ligne + 1
        .ListItems.Add , , tblBD(1, i)
        .ListItems(Ligne).ListSubItems.Add , , tblBD(2, i)
          Next i
     
        End With
     
        ListView1.View = lvwReport
    End Sub
    Mais il y a peut etre une fonction plus standard que je ne connais pas ?
    merci de vos conseils
    Denis

  2. #2
    Membre Expert Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Par défaut
    Bonjour,

    Je ne comprends le but de ta démarche.
    La méthode du modifier un listview pour répercuter les modifications dans ta Bd n'est peut être pas la meilleure manière de procéder.

    Plusieurs exemples, de modification de Bd en passant par un userform, sont disponibles sur le forum et aucun n'utilise un listview pour le faire, ormis pour sélectionner une ligne qui se retranscrira sur des textbox specifiques pour modification.

    Par exemple
    https://fauconnier.developpez.com/tu...eau-structure/

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Le mieux serait de poster ton classeur.

  4. #4
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Par défaut
    Merci pour ce lien tuto de Pierre que je vais regarder ce WE, il est tout à fait dans l'idée, mais n'est pas dynamique quant à l'insertion de colonnes et définir un USF pour 64 colonnes !!

    Je cherche à faire le mode formulaire de Excel mais pour plus de 32 colonnes.

    J'ai encore d'autres idées comme de créer deux listview synchronisées, puisque apparemment on peut modifier la première colonne du listview ce serait le cas pour ma deuxième list!
    à voir.

    Nom : 2020-07-10 08_32_47-Start.jpg
Affichages : 696
Taille : 91,7 Ko

    MErci
    Denis

  5. #5
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Par défaut
    Réflexion faite, je vais voir si j'arrive à imaginer le fonctionnement suivant, l'utilisateur sélectionne les colonnes qu'il souhaite visualiser en mode userform formulaire et je génère le userform en fonction de ces colonnes.....

Discussions similaires

  1. [XL-2016] La fonction formulaire excel 2016
    Par fergut dans le forum Excel
    Réponses: 9
    Dernier message: 23/06/2020, 19h44
  2. Réponses: 9
    Dernier message: 01/03/2011, 16h20
  3. Modification du contenu d'une balise div en fonction de la sélection
    Par temperature dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/11/2007, 11h47
  4. comment intgrer une fonction en excel avec delphi
    Par kious dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 02/05/2006, 18h15
  5. Comment chronométrer une fonction
    Par 323 dans le forum Pascal
    Réponses: 3
    Dernier message: 19/03/2003, 20h24

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