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 :

Récupération dans listview incohérente


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingenieur Securite
    Inscrit en
    Mai 2012
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingenieur Securite
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 97
    Par défaut Récupération dans listview incohérente
    Bonjour à tous

    J'ai créé un USF dans lequel s'affiche une Listview

    L'affiche suivant les conditions fonctionne excepté la ligne suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .ListSubItems.Add , , c.Offset(, 9).Value
    Au lieu d'afficher le contenu de la cellule source, il affiche le contenu d'une autre

    A savoir que le contenu de la cellule est une formule : "=SI(GAUCHE(J381;2)="QS";"Sécurité";SI(GAUCHE(J381;2)="QE";"Environnement";SI(GAUCHE(J381;2)="QC";"Connaissances";SI(GAUCHE(J381;2)="QR";"Respect Consignes";""))))"

    Le problème ne viendrait il pas de ce contenu?

    Ci dessous l'ensemble du 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
    Sub Lvw1()
        Dim Plage As Range, c As Range, i As Integer
    
    'positionnement du premier filtre
        With Sheets("Rapport")
            Set Plage = .Range(.[A26], .Cells(.Rows.Count, 15).End(xlUp))
            .AutoFilterMode = False
            Plage.AutoFilter 6, Criteria1:=ComboBox3.Value, Operator:=xlFilterValues
            Plage.AutoFilter 15
            With .AutoFilter.Sort
                .Header = xlYes
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
            End With
        End With
        'remplissage de la listview
        With ListView1
            Set Plage = Sheets(3).AutoFilter.Range.Offset(1)
            Set Plage = Plage.Resize(Plage.Rows.Count - 1, 1)
            Set Plage = Plage.SpecialCells(xlCellTypeVisible)
            With .ColumnHeaders
            'suppression des entêtes de colonne
            .Clear
    
            'détermination de l'intitulé et de la largeur des colonnes
            .Add , , "Date", 50
            .Add , , "Thème", 50
            .Add , , "N°", 30
            .Add , , "Déscription des écarts", 250
            .Add , , "Actions correctives", 250
            .Add , , "Pilote", 50
            .Add , , "Délai", 50
            .Add , , "Avct", 30
            End With
            'on affiche les entêtes de colonne
            .HideColumnHeaders = False
            'alimentation de la listview pour chaque ligne de la zone filtrée
            For Each c In Plage
                'ajout d'une ligne et de la valeur de la première colonne
                .ListItems.Add , , c.Value
                With .ListItems(.ListItems.Count)
                    'ajout de la valeur de la deuxième colonne
                    .ListSubItems.Add , , c.Offset(, 1).Value
                    .ListSubItems.Add , , c.Offset(, 9).Value                .ListSubItems.Add , , c.Offset(, 10).Value
                    .ListSubItems.Add , , c.Offset(, 11).Value
                    .ListSubItems.Add , , c.Offset(, 12).Value
                    .ListSubItems.Add , , c.Offset(, 13).Value
                    .ListSubItems.Add , , c.Offset(, 14).Value
                    .ListSubItems.Add , , c.Offset(, 15).Value
                End With
            Next c
        End With
        'Spécifie l'affichage en mode "Détails"
        ListView1.View = lvwReport
        Exit Sub
    End Sub
    Cdt

  2. #2
    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
    Bonsoir,

    La ligne 46 doit provoquer une erreur (2 commandes sur la même ligne). Erreur de recopie ? Le fait qu'il y ait une formule ne gêne pas. C'est la valeur qui est prise en compte. Quelle est la cellule prise en compte (en décalage par rapport à "c" ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingenieur Securite
    Inscrit en
    Mai 2012
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingenieur Securite
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 97
    Par défaut
    Salut Daniel,

    Sur la ligne 46 c'est un erreur de copie de mon code sur le forum.

    L'erreur provient du mauvais décalage par rapport à "c". En effet la valeur de la ligne 46 est correct, l'origine du problème provient de la ligne 45, puisque je prenais en compte la cellule de la colonne B et non comme je pensais celui de la cellule A.

    Merci pour ta question qui m'a ouvert l'esprit sur l'oigine de mon problème.

    Au plaisir de te relire sur un autre des post que j'écrirai ici.

    Cordialement

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingenieur Securite
    Inscrit en
    Mai 2012
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingenieur Securite
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 97
    Par défaut autre question du même ordre
    Sur la ligne 51, la valeur que je souhaite affiche est exprimée en % , or lorsque que je lance le programme elle s'affiche à 0 pour 0% et 1 pour 100%.

    Ne faudrait-il pas paramètrer le format d'écriture dans le code pour cette colonne spécifique?

  5. #5
    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,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .ListSubItems.Add , , Format(c.Offset(, 15).Value, "#%00")

  6. #6
    Membre confirmé
    Homme Profil pro
    Ingenieur Securite
    Inscrit en
    Mai 2012
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingenieur Securite
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 97
    Par défaut
    Re Daniel,

    Je viens de tester ton code de format et ça donne toujours la même chose 1 ou 0,75 etc. ...

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

Discussions similaires

  1. Listes déroulantes => récupération dans variable en tps r
    Par Sayrus dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 28/03/2006, 15h55
  2. [JDBC]Probleme de récupération dans le resultSet
    Par cameleon2002 dans le forum JDBC
    Réponses: 5
    Dernier message: 28/12/2005, 17h21
  3. Ajouter une colonne (par du code) dans Listview
    Par __fabrice dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 23/11/2005, 17h39
  4. Réponses: 2
    Dernier message: 01/06/2005, 14h28
  5. [date][javascript][sql] récupération dans un formulaire
    Par Shaud7 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 16/12/2004, 15h45

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