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 :

concatenation de champ range et affichage [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Août 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 14
    Par défaut concatenation de champ range et affichage
    Bonjour,
    Je souhaite faire une macro qui recherche dans ma base de données en fonction des champs selectionnés dans les listbox1 et 2, qui se réfèrent aux colonnes D et E de ma base, et qui affiche les lignes résultats de la colonne B à E dans la listbox3.

    voici mon 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
    Private Sub CommandButton3_Click()
    Dim i As Long, j As Long, activity As Boolean, sector As Boolean, champ As Range, recherchok As Range
    Set champ = Sheet3.Range("B1:E1")
    ListBox3.ColumnCount = Sheet3.Range("B1:E1").Columns.Count
    For j = 2 To Sheet3.UsedRange.Rows.Count
        For i = 0 To ListBox1.ListCount - 1
            If Sheet3.Range("D" & j).Value = ListBox1.List(i) And ListBox1.Selected(i) = True Then activity = True
        Next i
        For i = 0 To ListBox2.ListCount - 1
            If Sheet3.Range("E" & j).Value = ListBox2.List(i) And ListBox2.Selected(i) = True Then sector = True
        Next i
        If activity = True And sector = True Then
        Set recherchok = Sheet3.Cells(j, 2).Resize(1, 4)
        Set champ = Application.Union(champ, recherchok)
        End If
        activity = False
        sector = False
    Next j
    ListBox3.List() = champ.Value
    End Sub
    le problème c'est que cela ne m'affiche que les lignes résultat qui se suivent dans ma base de données.

    Pouvez-vous m'aider???

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour,
    Sans parler de code, explique un peu mieux ce que tu veux faire.
    Avoir un filtre sélectionner dans List1 et List2 ??
    ou, faire une recherche dans la plage avec le critère de List1 et une autre recherche avec critère de List2 ?
    C'est pas fort clair.
    A=

  3. #3
    Membre averti
    Inscrit en
    Août 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 14
    Par défaut
    Bonjour,
    alors le truc c'est que je souhaite faire une recherche qui retourne les lignes qui ont à la fois (un des critères selectionnés dans listbox1) et (un des critères selectionnés dans listbox2) et qui retourne ces lignes de la colonne Bà E dans la listbox3

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Cette fois, je comprend ce que tu veux, mais les 2 critères sur la même ligne ?
    par exemple Critère 1 Voiture et critère 2 Renault.
    Et il faut trouver toutes les lignes qui ont ces deux critères dans les colonnes que tu précises!
    Tes ListBox elles sont sur une feuille ou un Userform ?

    Tu dis.

  5. #5
    Membre averti
    Inscrit en
    Août 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 14
    Par défaut
    Tout est dans un userform

    je joins le fichier pour être plus explicite.
    Fichiers attachés Fichiers attachés

  6. #6
    Membre averti
    Inscrit en
    Août 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 14
    Par défaut
    je viens de faire plusieur tests avec des espions et j'ai cerné plusieurs choses :

    dans ma variable champ (de type range) quand je regarde le nombre de cellules (count) il me retourne bien le nombre de case des lignes qui satisfont les 2 critère, mais quand je regarde formula, il ne me sort que les cellules des lignes qui satisfont les 2 critère et qui sont connexes (les une à la suite des autres).
    Cela peut-il aider quelqu'un à m'aider ?

  7. #7
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    J'ai pas eu le temps pour revenir, mais ça pourrait peut-être t'inspirer
    A+

  8. #8
    Membre averti
    Inscrit en
    Août 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 14
    Par défaut
    Voilà j'ai réussi à solutionner mon problème.
    en fait j'ai surtout mal posé ma question. le problème était d'afficher dans une listbox le contenu d'une variable range qui possède plusieurs champs dijoints (construite avec la commande union).
    Pour ceux que ça pourrait aider voilà la code de cet affichage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    For Each plage In champ.Areas
    For i = 1 To plage.Rows.Count
    ListBox3.AddItem plage(i, 1).Value
    For j = 2 To plage.Columns.Count
    ListBox3.List(nbligne, j - 1) = plage(i, j).Value
    Next j
    nbligne = nbligne + 1
    Next i
    Next
    où champ est la variable range origine et listbox3 la listbox d'affichage

    En espérant que ça puisse aider quelqu'un.......

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

Discussions similaires

  1. [interbase][SQL] concatener 2 champs dans le select
    Par Harry dans le forum Bases de données
    Réponses: 10
    Dernier message: 09/03/2006, 06h45
  2. Concatener 2 champs
    Par j_p dans le forum Access
    Réponses: 4
    Dernier message: 21/12/2005, 16h26
  3. Concatenation de champs
    Par Samish dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 15/09/2005, 19h49
  4. Concatener deux champs
    Par Neo41 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/07/2005, 16h15
  5. concatener deux champs ?
    Par Nadaa dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 03/08/2004, 11h57

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