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 :

Positionnement auto dans LISTVIEW


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    retraitée
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : retraitée

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Par défaut Positionnement auto dans LISTVIEW
    Bonjour à tous,

    dans un formulaire, je souhaite mettre une TexBox de recherche afin de pouvoir lorsque je tape le début de ma REF ARTICLE, positionner le curseur dans la listview sur la ligne correspondante, cela fonctionne avec les listbox, mais je voudrais le faire avec la listview que j'ai mis en place, car cela me donne en ligne l'intégralité des infos dont j'ai besoin

    la première colonne de la listview est la REF ARTICLE

    j'ai regardé le doc sur "Utiliser le contrôle Listview en VBA" de Silkyroad, très intéressant, mais je n'ai rien trouvé à ce propos

    quelqu'un sait il s'il est possible de le faire ou pas ?
    d'avance merci pour votre aide

  2. #2
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour fidecourt le forum si tu pouver zip un fichier sans donnees confiden...
    comme cela pas facile de voir

  3. #3
    Membre confirmé
    Femme Profil pro
    retraitée
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : retraitée

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Par défaut ListView et positionnement
    bonjour Laeticia,

    voici un exemple du formulaire pour plus de clarté

    j'ai aussi un autre souci si tu vois pourquoi, malgré le positionnement lvwColumnRight ou Center, cela n'a aucun effet sur l'alignement des colonnes ?

    pour les autres formulaires, tout fonctionne bien dans mon dossier avec toutes les données (liste des entrées, des sorties, etc...)

    A+
    Françoise

  4. #4
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    re fidecourt le forum pour le premier point j ai renomer ta textbox recherche en textbox1 pour faire simple
    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
    Private Sub textbox1_Change()
    Dim Plage As Range, cell As Range
        Dim Recherche As String, Adresse As String
        Dim Ligne As Integer, N As Integer
        Dim C As Range
            ListView1.ListItems.Clear
           N = 0
        Recherche = textbox1.Value
        Range("D3").Select
        Ligne = Sheets("STOCK").Range("a" & "65536").End(xlUp).Row
        Set Plage = Sheets("STOCK").Range("a2" & ":a" & Ligne)
            With Plage
            Set C = .Find(Recherche)
            If Not C Is Nothing Then
                Adresse = C.Address
                Do
                    If UCase(Recherche) = UCase(Left(C, Len(Recherche))) Then
                            ListView1.ListItems.Add , , C.Offset(0, 0)
                             ListView1.ListItems(N + 1).ListSubItems.Add , , C.Offset(0, 2)
                        ListView1.ListItems(N + 1).ListSubItems.Add , , C.Offset(0, 3)
                        ListView1.ListItems(N + 1).ListSubItems.Add , , C.Offset(0, 5)
                                         N = N + 1
                         End If
                    Set C = .FindNext(C)
                Loop While Not C Is Nothing And C.Address <> Adresse
            End If
        End With
    End Sub
    pour le le 2 souci j avais quelque chose la dessus un exemple a adapter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    With ListView1
        With .ColumnHeaders 'titre de la colonne et largeur et alignement
           .Clear
           .Add , , "Date", 60
           .Add , , "Heure", 60
           .Add , , "Nombre", 55, lvwColumnRight
           .Add , , "%", 40, lvwColumnCenter'center
        End With

  5. #5
    Membre confirmé
    Femme Profil pro
    retraitée
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : retraitée

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Par défaut ListView et Adresse
    Merci Laeticia

    j'ai repris le code, mais j'ai une erreur :
    Erreu 438 = propriété ou méthode non gérée
    la macro s'arrête sur Adresse = C.Adress
    la valeur d'Adresse est alors ""

    d'autre part, la liste disparaît complètement dès que l'on va dans la zone TexBox1 (que j'ai renommé TBRecherche) ce qui est normal, mais lorsque l'on tape le premier car ne voit on pas la liste se reconstituer avec le 1er article commençant par ce car ??

    pour le centrage des colonnes, j'ai le même souci, alignement toujours à gauche

    je te renvoie le fichier avec le code inséré pour voir ce qui se passe

    merci de ton aide

  6. #6
    Membre confirmé
    Femme Profil pro
    retraitée
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : retraitée

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Par défaut
    ça y est j'ai vu ! et pourtant j'ai repassé la syntaxe x fois...
    là j'ai fait compléter le mot, et évidemment ça marche mieux.

    dis moi, ne peut on avoir la liste classée par le début de la frappe dans la zone de recherche, je m'explique :
    si je tape 22
    j'obtiens dans la liste tous les articles commençant par 22, c-à-d :
    22065
    22085
    22118
    22119
    22191
    22199

    ESt ce réalisable ?
    encore merci
    22250

  7. #7
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    re j ai pas bien compris la question normalement ca marche comme cela tu tapes 2 tous ce qui commence par 2 est affichee!!!!!! ect...

  8. #8
    Membre confirmé
    Femme Profil pro
    retraitée
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : retraitée

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Par défaut
    désolée mais sur mon fichier je n'obtiens rien tant que je n'ai pas renseigné l'intégralité de la ref !

  9. #9
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    re je comprends pas il y a un pb... tu reprends ton user usf stock dedans tu vires tous tu mets seulement le code ci dessous pour voir tu testes !!!
    attention a cette ligne dans initialise elle fait reference au nom de ton classeur adapte stock ou stock1 ou autre ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    While Workbooks("STOCK1.xls").Sheets("STOCK").Cells(iLigArticle, 1) <> ""
    tu mets ce code que se passe t il !!!

    Option Explicit

    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
    Dim Plage As Range, cell As Range, Recherche As String, Adresse As String, Ligne As Integer, N As Integer, C As Range
    Private Sub TBRecherche_Change()
     ListView1.ListItems.Clear
        N = 0
        Recherche = TBRecherche.Value
        Ligne = Sheets("STOCK").Range("A" & "65536").End(xlUp).Row
        Set Plage = Sheets("STOCK").Range("A2" & ":A" & Ligne)
            With Plage
            Set C = .Find(Recherche)
            If Not C Is Nothing Then
                Adresse = C.Address
                Do
                If UCase(Recherche) = UCase(Left(C, Len(Recherche))) Then
                    ListView1.ListItems.Add , , C.Offset(0, 0)
                    ListView1.ListItems(N + 1).ListSubItems.Add , , C.Offset(0, 2)
                ListView1.ListItems(N + 1).ListSubItems.Add , , C.Offset(0, 3)
                ListView1.ListItems(N + 1).ListSubItems.Add , , C.Offset(0, 5)
                    N = N + 1
                End If
                Set C = .FindNext(C)
            Loop While Not C Is Nothing And C.Address <> Adresse
            End If
        End With
        End Sub
    dans initialise' attention a ce que j ai dit plus haut!!

    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
    Private Sub UserForm_Initialize()
    ListView1.ColumnHeaders.Clear
    ListView1.ColumnHeaders.Add , , "Référence", ListView1.Width * 0.2
    ListView1.ColumnHeaders.Add , , "Désignation", ListView1.Width * 0.4
    ListView1.ColumnHeaders.Add , , "Prix public", ListView1.Width * 0.2
    ListView1.ColumnHeaders.Add , , "Valeur Stock Totale", ListView1.Width * 0.2
    Dim iLigArticle As Integer
    iLigArticle = 2
    ListView1.ListItems.Clear
    While Workbooks("STOCK1.xls").Sheets("STOCK").Cells(iLigArticle, 1) <> ""
           ListView1.ListItems.Add iLigArticle - 1, , Sheets("STOCK").Cells(iLigArticle, 1)
        ListView1.ListItems(iLigArticle - 1).SubItems(1) = Sheets("STOCK").Cells(iLigArticle, 3)
        ListView1.ListItems(iLigArticle - 1).SubItems(2) = Format(Sheets("STOCK").Cells(iLigArticle, 4), "## ##0.00 €")
        ListView1.ListItems(iLigArticle - 1).SubItems(3) = Format(Sheets("STOCK").Cells(iLigArticle, 6), "## ##0.00 €")
        iLigArticle = iLigArticle + 1
    Wend
    TextBoxValeurTotaleStock = Format(Sheets("STOCK").Range("g2").Value, "## ##0.00 €")
     End Sub
    pour le centrage j ai pas trouve quelque chose d interessant

  10. #10
    Membre confirmé
    Femme Profil pro
    retraitée
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : retraitée

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Par défaut MERCI !
    bonjour Laeticia,

    ça marche effectivement. En fait, j'ai compris ce qui clochait, j'avais mis le code de la recherche au mauvais endroit, à savoir après la détermination des listview entrées et sorties du formulaire UsfDetailArticle
    ce qui est effectivement idiot à y réfléchir

    voilà j'ai encore appris plein de choses avec toi
    je te remercie beaucoup

    pour l'alignement, je vais laisser tomber pour le moment, ce n'est pas très important

    je vais tout de même essayer de trouver pourquoi, ça cloche

    Encore merci

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

Discussions similaires

  1. [Débutant] Affichage auto dans listview
    Par Jean-Luc80 dans le forum VB.NET
    Réponses: 3
    Dernier message: 09/12/2014, 07h02
  2. se positionner dans listview
    Par denisa dans le forum C#
    Réponses: 3
    Dernier message: 27/06/2011, 11h16
  3. Numéro auto dans une requete
    Par genius99 dans le forum Access
    Réponses: 4
    Dernier message: 06/10/2005, 09h40
  4. défilement auto dans un TStringGrid
    Par htristra dans le forum C++Builder
    Réponses: 2
    Dernier message: 16/07/2005, 13h22
  5. Ecriture auto dans un champ edit lors de la modif d'un autre
    Par KibitO dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 05/02/2005, 18h03

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