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 :

rechercher les données d'une feuille excel via une useform [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2009
    Messages : 5
    Points : 3
    Points
    3
    Par défaut rechercher les données d'une feuille excel via une useform
    Bonjour,

    J'ai un tableau d'une centaine de lignes et de 10 colonnes.
    Je voudrais créer à l'aide d'une useform un mode de recherche permettant de retrouver les lignes qui correspondent à ma demande, mais je sais pas comment faire ...J'ai déjà commencé à créer une useform avec des comboboxs

    Pouvez vous m'aider en me donnant un exemple similaire ou un bout de code? je suis totalement débutant et je vous remercie d'avance pour votre aide

  2. #2
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Ne cannaissant absolument pas tes critère de recherche ca va être difficile
    mais commence par regarder c'est quelque lien
    Utiliser les contrôles dans un UserForm, en VBA Excel
    Toujours utile pour parcourir ton tableau
    Dernière ligne et la dernière colonne renseignées d'une feuille

    Pour faire une recherche dan ton tableau tu aura plusieurs solution cela dépendra de tes critère mais regarde la fonction find dans l'aide vba

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2009
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    je vais essayé de mieux m'exprimer :

    J'ai un tableau comportant dans la colonne A, les numéros de rapport, dans la colonne B les appareils, la colonne C les années, etc

    Pour remplir ces colonnes j'utilise déjà une useform.

    Maintenant, je voudrais créer une autre useform permettant de rechercher (ou trier) les données de mon tableau :

    J'ai créer des combox permettant de sélectionner le type d'appareil et l'année. En fonction de ces choix , je voudrais retrouver les lignes de mon tableau correspondant à ces critères de choix.

    J'espéraeàavoir clairement expliqué mon problème,
    Merci de votre aide.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2009
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    RE,

    Voici un bout de code qui marche à moitié :

    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
    Private Sub Résultats_Click()
    Sheets("Donnees").Select
     
    If (Année) = "" Or (Type_appareil) = "" Then
        MsgBox "Remplir les champs Année et Type d'appareil"
     
        Else
        With Sheets("Donnees")
     
        .Cells(n1, 9).Value = Me.Année
        .Cells(n1, 10).Value = Me.Type_appareil
        End With
        n1 = n1 + 1
     
          End If
     
          With Sheets("Donnée")
        .Range("I1").Value = WorksheetFunction.VLookup(.Range("E1").Value, Sheets("Feuil1").Range("A1:B100"), 2, False)
    End With
     
    End Sub
    Explication du code :

    1) Dans un premier temps je vérifie que les combobox soient correctement remplies.
    2) Dans un second j'inscris les données des combobox dans des cellules d'une feuille excel

    Maintenant j'aimerais comparer les valeurs des combobox avec les valeurs d'un tableau (de la même feuille).
    Si dans une même ligne du tableau les valeurs sont identiques à celles des combobox, je voudrais faire apparaître la ligne entier du tableau sur une autre feuille..
    Je cherche pas une réponse toute cuite mais des élèments de réponses car je pêche beaucoup sur ce problème..


    merci,

  5. #5
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 699
    Points
    6 699
    Par défaut
    Bonjour,

    A première vue, ton besoin relève des tris et des filtres auto.

    Un bon système serait de démarrer sur ta feuille, de lancer l'enregistreur de macros et de faire des manips de tri, puis d'activer les filtres auto (tris simples inclus) et de faire aussi des manips à ce niveau là. Ensuite tu analyse le code résultant et ça devrais te donner les pistes nécessaires.
    N'hésite pas à faire tout ça en plusieurs cessions afin d'obtenir des morceaux de code qui seront plus facile à comprendre.
    Ensuite le site a plein de sujets pour exploiter les filtres et les tris en vba, et tu peux revenir sur des questions précises si ça bloque

    cordialement,

    Didier

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2009
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Bonjour,
    Merci à vous tous pour votre aide... J'ai réussi à résoudre mon problème grâce aux filtres automatique (c'était très simple mais quand on sait pas on ne peut pas deviner!)
    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
    21
    22
    23
    24
    25
    26
    Private Sub Résultats_Click()
    Sheets("Donnees").Select
     
    If (Année) = "" Or (Type_appareil) = "" Then
        MsgBox "Remplir les champs Année et Type d'appareil"
     
        Else
        With Sheets("Donnees")
     
        .Cells(n1, 9).Value = Me.Année
        .Cells(n1, 10).Value = Me.Type_appareil
        End With
     
     
          End If
     
     
       With Sheets("Donnees")
       Columns("B:C").Select
        Selection.AutoFilter
        Selection.AutoFilter Field:=1, Criteria1:=Cells(1, 10)
        Selection.AutoFilter Field:=2, Criteria1:=Cells(1, 9)
     
    End With
     
    End Sub
    Et encore merci
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. [XL-2007] copier une feuille excel d'une instance excel à une autre
    Par marcelisa2 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/03/2012, 23h44
  2. Ouverture d'une feuille excel via une autre feuille excel.
    Par JonathanMQ dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 06/01/2010, 22h12
  3. inserer les donnees d une feuille excel dans une table sql
    Par josyde2006 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 20/12/2006, 08h40
  4. [Vba-Excel] Exécuter une requete SQL sur une feuille de donnée
    Par Spacy_green dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/11/2006, 09h27
  5. Réponses: 5
    Dernier message: 05/07/2005, 20h25

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