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érer la valeur de la 2eme colonne d'une listview [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre très actif Avatar de tony76
    Homme Profil pro
    Développeur pour le plaisir....
    Inscrit en
    Avril 2014
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur pour le plaisir....

    Informations forums :
    Inscription : Avril 2014
    Messages : 131
    Par défaut Récupérer la valeur de la 2eme colonne d'une listview
    bonjour à tous,

    Voilà je fait une petite application, et je récupère dans une listview des infos qui vienne d'une autre listview
    ce que je souhaiterais c'est lors ce que la case et cocher dans le listview récupéré la valeur de la 2 eme colonne
    pour pouvoir l'insérer dans le filtre et pouvoir faire les modif dont j'ai besoin dans ma base
    le problème vient du filtre ligne 8
    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
     
    Private Sub ListView3_ItemCheck(ByVal Item As MSComctlLib.ListItem)
    Dim Resultat2 As Integer, NumLigne As Integer, ResetAll As Integer
    Dim AncienneValeur As Integer
    Dim i As Byte
     
    ' a modifié dans une prochaine mise à jour Range("$A$1:$G$1048576")
           Sheets("base").Range("$A$1:$G$1048576").AutoFilter Field:=1, Criteria1:=ListView3.SelectedItem.Text
     
     
        For i = 1 To ListView3.ListItems.Count
            If ListView3.ListItems(i).Checked Then
                AncienneValeur = ListView3.ListItems(i).ListSubItems(4).Text
            End If
        Next i
     
     
    Sheets("SF").Select
     
     
    On Error GoTo fin
     
    Resultat2 = Application.InputBox("Indiquez la nouvelle quantité à sortir ?", NOM_VERSION, "Nouvelle quantité", , , , , Type:=1)
        If Resultat2 > 1 Then
     
            For NumLigne = 1 To ListView3.ListItems.Count
                If ListView3.ListItems(NumLigne).Checked Then
                    ListView3.ListItems(NumLigne).ListSubItems(4).Text = Resultat2
                    Sheets("SF").Range("E" & NumLigne + 19).Value = Resultat2
     
                    Sheets("base").Range("D1").End(xlDown).Offset(0, 0).Value = Sheets("base").Range("D1").End(xlDown).Offset(0, 0).Value + AncienneValeur - Resultat2 'Qte en stock
                End If
            Next NumLigne
        End If
     
     
    fin:
     
        For ResetAll = 1 To ListView3.ListItems.Count
            If ListView3.ListItems(ResetAll).Checked Then
                ListView3.ListItems(ResetAll).Checked = False
            End If
        Next ResetAll
     
    Worksheets("base").AutoFilterMode = False
     
    End Sub
    Nom : Listview3.JPG
Affichages : 658
Taille : 26,0 Ko

    merci par avance

  2. #2
    Membre émérite
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 367
    Par défaut Récupérer la valeur de la 2eme colonne d'une listview
    je pense que ceci

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



    te permettra de résoudre ton problème.

    bonne journée.

  3. #3
    Membre très actif Avatar de tony76
    Homme Profil pro
    Développeur pour le plaisir....
    Inscrit en
    Avril 2014
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur pour le plaisir....

    Informations forums :
    Inscription : Avril 2014
    Messages : 131
    Par défaut
    merci mais, malheureusement non

  4. #4
    Membre très actif Avatar de tony76
    Homme Profil pro
    Développeur pour le plaisir....
    Inscrit en
    Avril 2014
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur pour le plaisir....

    Informations forums :
    Inscription : Avril 2014
    Messages : 131
    Par défaut
    bonsoir à tous,

    Si sa peux être utile à d'autre voici la solution que j'ai trouvé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sheets("base").Range("$A$1:$G$1048576").AutoFilter Field:=1, Criteria1:=ListView3.ListItems(Item.Index).ListSubItems(1).Text
    il me reste à optimisé cette parti Range("$A$1:$G$1048576") pour ne pas aller jusqu'à 1 million de ligne si la base en contient que 1000 ligne
    si quelqu'un à une idée merci d'avance.

  5. #5
    Membre émérite
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 367
    Par défaut Récupérer la valeur de la 2eme colonne d'une listview
    par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub test()
     
    nblignes = Range("A1").CurrentRegion.Rows.Count
     'compte le nombre de lignes (si il y a des lignes vides, ça ne fonctionne pas)
     
    Sheets("base").Range("$A$1:$G$" & Format(nblignes)).Select
     
    End Sub

  6. #6
    Membre très actif Avatar de tony76
    Homme Profil pro
    Développeur pour le plaisir....
    Inscrit en
    Avril 2014
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur pour le plaisir....

    Informations forums :
    Inscription : Avril 2014
    Messages : 131
    Par défaut
    merci pour l'exemple

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/04/2014, 22h08
  2. Récupérer la valeur 'heure' la plus élevé d'une colonne
    Par atoffoli75 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/12/2010, 13h32
  3. Réponses: 12
    Dernier message: 21/05/2010, 14h36
  4. Réponses: 6
    Dernier message: 13/06/2008, 15h53
  5. Récupérer la valeur de la deuxième colonne
    Par PereNoel77 dans le forum IHM
    Réponses: 2
    Dernier message: 01/12/2007, 23h30

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