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

Excel Discussion :

Rechercher une ligne dans une feuille et afficher le résultat dans un userform [XL-2013]


Sujet :

Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Sapeur-pompier
    Inscrit en
    Septembre 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Sapeur-pompier
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2013
    Messages : 54
    Points : 27
    Points
    27
    Par défaut Rechercher une ligne dans une feuille et afficher le résultat dans un userform
    Bonjour,
    tout est dans le titre!
    Malgré de nombreuses recherches sur le forum et sur le net je ne parviens pas a trouver un code me permettant d'afficher dans un usf une certains résultats:
    en gros j'aimerais afficher les lignes des colonnes A, B, C, D, E de l'onglet "Sorties".
    il s'agit d'un encodage de dotations de vêtements et autre matériel, dans la col A figure la date, en B le nom de la personne (recherche), C le materiel, D la quantité et E les éventuelles remarques;
    Merci a tous :-)

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    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 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    Est-ce qu'il peut y avoir plusieurs lignes correspondant à la recherche ?
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Sapeur-pompier
    Inscrit en
    Septembre 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Sapeur-pompier
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2013
    Messages : 54
    Points : 27
    Points
    27
    Par défaut
    Citation Envoyé par Daniel.C Voir le message
    Bonjour,

    Est-ce qu'il peut y avoir plusieurs lignes correspondant à la recherche ?
    Bonjour,
    oui biensur, le but serait de pouvoir voir selon la personne recherchee un max de lignes lui correspondant.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    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 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Voici un exemple. Appuie sur le bouton "Recherche" pour afficher le userform. Choisis le nom et appuie sur le bouton OK. Les lignes s'affichent dans le listbox, en dessous.
    PJ : vincendie.xlsm

    Le code du userform est le suivant. Si tu as des questions, n'hésite pas :

    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 Plage As Range
    Private Sub CommandButton1_Click()
        Dim Tabl(), Ctr As Long
        If Me.ComboBox1.ListIndex > -1 Then
            Ctr = -1
            ReDim Tabl(3, 0)
            For Each C In Plage
                If C.Value = Me.ComboBox1.Value Then
                    Ctr = Ctr + 1
                    ReDim Preserve Tabl(3, Ctr)
                    Tabl(0, Ctr) = C.Offset(, -1).Value
                    Tabl(1, Ctr) = C.Offset(, 1).Value
                    Tabl(2, Ctr) = C.Offset(, 2).Value
                    Tabl(3, Ctr) = C.Offset(, 3).Value
                End If
            Next C
            Me.ListBox1.List = Application.Transpose(Tabl)
        End If
    End Sub
     
    Private Sub CommandButton2_Click()
        Unload Me
    End Sub
     
    Private Sub UserForm_Activate()
        Dim C As Range, Tabl(), Ctr As Long
        Ctr = -1
        ReDim Tabl(0)
        With Sheets("Sorties")
            Set Plage = .Range("B2", .Cells(.Rows.Count, 2).End(xlUp))
            For Each C In Plage
                If Not IsNumeric(Application.Match(C.Value, Tabl, 0)) Then
                    Ctr = Ctr + 1
                    ReDim Preserve Tabl(Ctr)
                    Tabl(Ctr) = C.Value
                    Me.ComboBox1.AddItem C.Value
                End If
            Next C
        End With
     
    End Sub
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Sapeur-pompier
    Inscrit en
    Septembre 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Sapeur-pompier
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2013
    Messages : 54
    Points : 27
    Points
    27
    Par défaut
    Merci pour ce code!
    il semble bien fonctionner!
    La seule chose est que lorsque j'ajoute une ligne les données affichées ds l'usf sont placées en colonnes et non en ligne, une idée?
    Je joins a ici ton classeur avec une petite modif de l'usf, (comme j'aimerais qu'il soit présenté) si possible..
    vincendie.xlsm

  6. #6
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    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 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Remplace la macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub CommandButton1_Click()
    par la suivante :

    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
    Private Sub CommandButton1_Click()
        Dim Tabl(), Ctr As Long
        If Me.ComboBox1.ListIndex > -1 Then
            Ctr = -1
            ReDim Tabl(3, 0)
            With Sheets("Sorties")
                Set Plage = .Range("B2", .Cells(.Rows.Count, 2).End(xlUp))
            End With
            For Each C In Plage
                If C.Value = Me.ComboBox1.Value Then
                    Ctr = Ctr + 1
                    ReDim Preserve Tabl(3, Ctr)
                    Tabl(0, Ctr) = C.Offset(, -1).Value
                    Tabl(1, Ctr) = C.Offset(, 1).Value
                    Tabl(2, Ctr) = C.Offset(, 2).Value
                    Tabl(3, Ctr) = C.Offset(, 3).Value
                End If
            Next C
            With Me.ListBox1
                If UBound(Tabl, 2) > 0 Then
                    .List = Application.Transpose(Tabl)
                Else
                    .AddItem Tabl(0, 0)
                    .List(.ListCount - 1, 1) = Tabl(1, 0)
                    .List(.ListCount - 1, 2) = Tabl(2, 0)
                    .List(.ListCount - 1, 3) = Tabl(3, 0)
                End If
            End With
        End If
    End Sub
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Sapeur-pompier
    Inscrit en
    Septembre 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Sapeur-pompier
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2013
    Messages : 54
    Points : 27
    Points
    27
    Par défaut
    désolé du retard j'ai du m'absenter.
    c'est beaucoup mieux en effet
    comment est-ce que je pourrait faire pour "mettre en forme "l'usf? c'est a dire: espacer un peu plus les differentes valeurs dans la listbox de l'usf?

  8. #8
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    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 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Depuis la fenêtre Excel, appuie sur la touche F11. Dans la partie gauche de la fenêtre VBE (celle qui vient de s'ouvrir), clique sur "Feuilles" pour développer et double clique sur "UserForm1". Clique dans la ListBox; tu vois 6 petits carrés qui te permettent, en cliquant dessus et en maintenant le bouton gauche de la souris enfoncé de redimensionner le contrôle. C'est vrai pour tous les contrôles et pour le userform lui-même.
    Fais maintenant un clic droit dans la listbox, choisis "Propriétés". Le paramètre "ColumnWidths" comporte les valeurs "49.95 pt;49.95 pt;49.95 pt;49.95 pt". Il s'agit de la valeur en points (1 point = 1/72 de pouce, 1 pouce = 2,54 cm). En fait, j'avais mis 50 points pour chaque colonne et VBA a arrondi à 49,95. A toi de modifier ces largeurs pour obtenir ce que tu veux.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Sapeur-pompier
    Inscrit en
    Septembre 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Sapeur-pompier
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2013
    Messages : 54
    Points : 27
    Points
    27
    Par défaut
    Je verrai ça demain, je te remercie amplement pour ton aide et ta rapidité!
    Je verrouille le sujet car visiblement pour la mise en forme ça ne tient plus qu'a moi
    Un TOUT GRAND MERCI

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Sapeur-pompier
    Inscrit en
    Septembre 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Sapeur-pompier
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2013
    Messages : 54
    Points : 27
    Points
    27
    Par défaut
    Ben voilà,
    tout est exactement comme je l'imaginais!
    Encore merci pour ton aide Daniel.C

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/01/2015, 18h30
  2. [WD18] Metre une colonne d'une Table sur une ligne d'une autre Table
    Par Totophe2 dans le forum WinDev
    Réponses: 2
    Dernier message: 22/11/2013, 12h58
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. Concatener et afficher le résultat dans une autre feuille ?!
    Par pat212008 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/11/2008, 11h56
  5. Réponses: 5
    Dernier message: 25/04/2008, 19h15

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