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 pas synchro avec Feuil1 [XL-2007]


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
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut Listview pas synchro avec Feuil1
    Bonsoir a tous, forum bonsoir,

    Je cherche a transférer les données de deux colonnes (I:J) de (I3:J35) de la Feuil1 vers UserForm1 via Listview1 ou j'ai mis deux colonnes

    Mais ce n'ai pas synchro quand j'écris dans la colonne (I) ce n'ai pas transférer en même temps dans la listview1

    sans doute raffraichir en temps réel mais comment faire svp ???

    et aussi quel est svp le code vba qui permets d'effacer mais pas supprimer la colonne et sans effacer l'entète, juste les données dans une Listview

    Et puis le transfert entre les colonnes (I:J) ne fonctionne pas toujours ou alors il faut que j'efface l'UserForm puis la réafficher et là les données sont mise a jour.

    Merci pour votre aide bonne app et bonne soirée a vous allez aussi Bon W-end a tous.

    Cdlt Ray

    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
     
    Public WS As Worksheet
    '***** Initialisation
    Private Sub UserForm_Initialize()
         Set WS = Sheets("Feuil1")
     
      With ListView1
    '*** Titres des colonnes
        With .ColumnHeaders
               .Clear
     
    '*** Ajout des colonnes entètes
               .Add , , "Colonne (I)", 72
               .Add , , "Colonne (J)", 72, lvwColumnCenter
     
        End With
            .View = lvwReport                       ' Affichage en mode Rapport
            .Gridlines = True                         ' Affichage d'un quadrillage
            .FullRowSelect = True                 ' Sélection des lignes complètes
            .LabelEdit = lvwManual                ' On ne modifie pas en direct
      End With
     Call InitListView
    End Sub
     
    '***** Remplissage
    Public Sub InitListView()
    Dim x As Long: Dim Nb As Integer
     
      With Me.ListView1
                  .ListItems.Clear
        For x = 3 To WS.Range("I" & Rows.Count).End(xlUp).Row
     
    '*** On remplit la première colonne de la Listview1
            .ListItems.Add , WS.Range("I" & x).Address, WS.Range("I" & x)
             Nb = Nb + 1
     
    '*** On remplit les autres colonnes de la listview1
           .ListItems(Nb).ListSubItems.Add , , WS.Range("J" & x)
        Next x
      End With
    End Sub

  2. #2
    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
    un tout petit exemple


    dans ton userform
    tu va mettre dans le activate
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub UserForm_Activate()
        remplissage
    End Sub
    dans cet userform tu va y a jouter cette sub en public IMPORTANT !!!!!!!
    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
     
    '**************************************************************************************
    'cette sub est en public IMPORTANT !!!!!!!!!!!!!!
    Public Sub remplissage()
    'ALIMENTATION DE  la listview
        With ListView1
            With .ColumnHeaders: .Clear: .Add , , "colonne I", 60: .Add , , "colonne J", 70:: End With
            .ListItems.Clear
            'For i = 1 To ListView1.ListItems.Count
             '   ListView1.ListItems.Remove (i)
            'Next i
            For x = 3 To 135
                .ListItems.Add , , Cells(x, "i").Value
                .ListItems(1).ListSubItems.Add , , Cells(x, "j").Value
            Next
        End With
        ListView1.View = 3
    End Sub
    maintenant dans la feuille CONCERNEE!!!!! tu va y mettre ceci dans l'evenement change

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Change(ByVal Target As Range)
     UserForm1.remplissage
    End Sub
    voila ta listview sera modifiée a chaque fois que tu modifiera une cellule

    la sub je l'ai mis en public dans le userform comme ca elle me sert dans le activate et dans le change de la feuille
    j'aurais pu mettre cette sub dans un module standard avec le nom de l'userform et listview preciser c'est juste ma facon de faire

    je n'ai pas preciser la feuille dans le code c'est un tords tu ne manquera pas de corriger ce point
    edit:
    OUPSS PARDON!!
    corriger cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .ListItems(.ListItems.Count).ListSubItems.Add , , Cells(x, "j").Value
    exemple en piece jointe
    Fichiers attachés Fichiers attachés
    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

  3. #3
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut
    Salut Patrick,

    Merci pour ta réponse c'est sympa.

    L'exemple du fichier fourni fonctionne bien, pour ça déjà, je te remercie.

    1) Si je veux effacer dans la listview1 soit dans la colonne (I ou J) juste les données MAIS sans effacer l'entète, c'est possible, ???

    2) De même si je veux effacer une partie de la liste (I ou J) Exemple: Listview colonne (J) de la ligne 9 a 30 effacer juste les données, ???

    Merci beaucoup, je vais adapter ton code a mon programme.

    Bonne journée a toi, a te relire svp.

    Bien cordialement Ray

  4. #4
    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
    pour vider la liste sans l'entete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Sub clearlist()
        With ListView1: .ListItems.Clear: End With
    End Sub
    en dehors du userform c'est userform1.clearlist et dedans c'est clearlist

    j'ai modifié le rempliossage en consequence
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    '**************************************************************************************
    'cette sub est en public IMPORTANT !!!!!!!!!!!!!!
    Public Sub remplissage()
    'ALIMENTATION DE  la listview
        With ListView1
            With .ColumnHeaders: .Clear: .Add , , "colonne I", 60: .Add , , "colonne J", 70:: End With
            clearlist
            For x = 3 To 135
                .ListItems.Add , , Cells(x, "i").Value
                .ListItems(.ListItems.Count).ListSubItems.Add , , Cells(x, "j").Value
            Next
        End With
        ListView1.View = 3
    End Sub
    pour effacer les items sur certaine colonne il faudra pas faire un remove mais un remplacement par rien sinon tu supprime la ligne
    je regarderais ca a l'occasion comment on peut faire un petit code adaptationel
    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

  5. #5
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut
    Re Patrick,

    J'ai adapter ton code a mon programme ça fonctionne bien, synchro juste bien après validation, merci beaucoup.

    Pas trop compris pour juste effacer une colonne sans l'entète et un certain nombres de lignes.

    je fais les essais après déjeuner avec tes derniers codes, merci et vu l'heure bon app.

    Cdlt Ray

  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
    re
    Pas trop compris pour juste effacer une colonne sans l'entète et un certain nombres de lignes.
    je ne l'ai pas fait ca sera legerement plus complexe pour faire ca dans une fonction adaptationelle
    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.

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