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 :

[VBA-E] Fonction rechercher et afficher le résultat dans l'UF


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 84
    Points : 37
    Points
    37
    Par défaut [VBA-E] Fonction rechercher et afficher le résultat dans l'UF
    Bonjour,

    Ma mission touche à sa fin, je voulais remercier tous ceux qui m'ont consacré un peu de leur temps, m'ont aidé et m'ont permi de me perfectionner dans le VBA :
    Blunet, Commodore_Psykopate, Ania, illight, ouskel'n'or, Elstak, bbil, SilkyRoad, Theocourant, Phenx, zazaraignée, AlainTech. Merci !

    Voici la dernière étape :
    J'ai un Userform qui gère une base de donnée importante de références(nouvelle référence, modifier référence et suopprimer référence).
    Pour faciliter la modification des références, je souhaiterai inclure dans mon UF une textbox "recherche" dans laquelle on entrerait le numéro de référence, puis en cliquant sur ok, cela afficherai directement dans l'UF les informations de la référence en question. J'ai essayé mais je ne trouve pas le type de macro à utiliser.

    D'avance merci

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    Ah bon je t'ai aidé ? me souviens plus



    Il faudrait, je pense, quand tu clique sur OK, qu'un filtre puisse se mettre en place sur la référence qui t'intéresse
    Pour la macro par contre, vu que je n'ai pas de fichier sous les yeux..quoique atta..
    En faisant l'enregistreur de macro j'obtiens ça (en prenant comme référence une référence bidon hein) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        Selection.AutoFilter
        Selection.AutoFilter Field:=1, Criteria1:=TextBox1.value
    Selection étant par exemple la première cellule ou tu as les titres de tes colonnes

    Par contre j'ai un doute subitemment su rl'écriture d'une valeur de la textbox mais ça doit y ressembler grandement

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    Merci pour ta réponse, je ne cherche pas à mettre des filtres sur le tableau, juste voir les infos de la référence dans l'Userform

    Voici à quoi il ressemble :



    Je souhaite aussi faire un message d'erreur si la référence entrée est vide ou inexistante

    Voici le code que j'ai commencé :

    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
    'Recherche rapide d'une référence pour la modifier
    Private Sub bnOkRecherche_Click()
    Dim NomRéférence2 As String
    Dim AfficherRéférence As Variant
     
    NomRéférence2 = txRecherche.Value
     
    AfficherRéférence = True
     
    If AfficherRéférence Then
      Sheets.Add after:=Sheets(Worksheets.Count)
      Sheets(Worksheets.Count).Name = txRecherche.Value
      Else
      MsgBox ("La référence " & txNuméro.Value & " est inexistante ou vide")
    End If
     
    End Sub
    Où ais-je faux et que me manque-t-il selon vous ?

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Je sais que ce n'est pas vraiment une réponse à la question mais je voulais exprimer mon impression par rapport à la "lourdeur" d'une telle fiche.

    Pour ma part, pour un UF "fiche", afin d'éviter 36 boutons, je travaille toujours de la manière suivante.

    Au départ, je n'ai que le TextBox "référence" qui est actif.

    Si l'utilisateur tape une référence existante, je l'affiche.
    S'il tape une nouvelle référence, je propose de créer la fiche et, si oui, j'affiche le UF "création".

    Edit --> De plus, quand une fiche est affichée, je n'ai que les boutons utilisables qui sont visibles.

    Tout ceci pour aider au maximum l'utilisateur à ne pas se perdre dans une feuille trop encombrée.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    C'est une très bonne idée et une bonne conception, mais pour cela il faut les compétences ! Ce que je n'ai pas...

    De plus, l'outil que je développe sera à la disposition de personnes qui n'y connaissent rien et font déjà peu confiance aux macro donc j'essaye de faire quelquechose de "simple" afin qu'ils comprennent et aient confiance en mon outil pour l'utiliser

    Cela dit, à te lire tu as réponse à ma question car tu as dit "Si l'utilisateur tape une référence existante, je l'affiche"

    Comment fais-tu ?

  6. #6
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Ben, je dirais, de la même manière que tu affiches tes champs quand tu cliques sur "Référence suivante" ou "précédente".

    Je suis désolé, n'étant pas dans ton code et ne sachant comment tu gères ton accès à la BD, je n'ai pas de réponse toute faite.

  7. #7
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    question bete : c'est une fiche Excel ta photo la ?

    Pourquoi ta base tu l'a fait pas dans Access ? ça serait plus simple pour toi

    Je sors si jamais je me suis endormi a un moment donné

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par illight
    question bete : c'est une fiche Excel ta photo la ?

    Pourquoi ta base tu l'a fait pas dans Access ? ça serait plus simple pour toi

    Je sors si jamais je me suis endormi a un moment donné
    Lol ! Oui c'est du Excel, pourquoi pas Acess? Car l'entreprise où je travaille ne l'a pas et ne sont pas convaincu de l'intérêt du logiciel... Sinon c'est clair, c'est pas 2 mois que j'aurais mis pour faire ça mais 2 heures !


    Citation Envoyé par AlainTech
    Je suis désolé, n'étant pas dans ton code et ne sachant comment tu gères ton accès à la BD, je n'ai pas de réponse toute faite.
    Désolé pour mon manque d'information, voici le fichier Excel sur lequel je travaille, il n'est pas parfait, il pourrait être plus simple mais je trouve que c'est un bon début pour un débutant !

    Merci pour votre aide

  9. #9
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    Arf crotouille

    Heuu pour ton fichier, quand je clique sur le truc des référence ça me fait une erreur c'est normal ? tu l'avais déja l'erreur ?

  10. #10
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    de la même manière que tu affiches tes champs quand tu cliques sur "Référence suivante" ou "précédente"
    +1 : au lieu de faire une ligne en plus ou un moins quand tu fais la référence en plus ou en moins, tu fais une recherche qui te cherche ta référence

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par illight
    Arf crotouille

    Heuu pour ton fichier, quand je clique sur le truc des référence ça me fait une erreur c'est normal ? tu l'avais déja l'erreur ?
    Ha non c'est pas normal, moi ca passe sur tous les ordis là alors je ne comprend pas...


    Citation Envoyé par illight
    +1 : au lieu de faire une ligne en plus ou un moins quand tu fais la référence en plus ou en moins, tu fais une recherche qui te cherche ta référence
    Heu je ne comprend pas , comment ça ?
    Parce que oui l'idée c'est de chercher la référence mais c'est le code que je n'arrive pas à finir

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    En fait ce que je souhaiterai (dans la mesure du possible) c'est que la fonction rechercher (bouton "bnOkRecherche") que je développe charge l'userform avec LA référence recherchée et ses caractéristiques comme ci dessous


    et que le reste des références soient accessibles en cliquant sur la scrollbar (ascenseur), un peu comme si la fonction rechercher placait la scrollbar sur la bonne référence

    Bon j'ai un début de réponse je pense, j'ai récupéré un exemple que j'ai tenté d'adapter à mon cas, le début semble bon, seulement je n'arrive pas à charger les résultats sur l'userform. (cf. fichier joint, vers la fin du code de l'userform, macro "bnOkRecherche_Click()")

    Quelqun a-t-il une idée ?

  13. #13
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    Bon déja chez moi, ça bloque quand je lance le fichier Excel j'ai un bug quand je clique sur "gérer les références" a priori il y a un tri qui se fait quand on clique dessus et moi ça bug, ici (ça surligne en jaune la ligne en gras) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Selection.Sort Key1:=Range("Emplacements"), Order1:=xlAscending, Header:=xlGuess, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
            DataOption1:=xlSortNormal 

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    Ben je ne comprend pas...
    En fait là où ca bloque pour toi, c'est une macro qui me sert à ordonner des éléments qui apparaissent dans les listes déroulantes pour qu'en chargeant l'userform, les listes déroulantes aient leurs choix dans l'ordre alphabétique.

    Pour passer outre l'erreur, je te propose un nouvel exemplaire ci dessous sans la macro défaillante
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Réponses: 9
    Dernier message: 03/12/2014, 13h09
  2. fonction recherche qui affiche rien
    Par molo1987 dans le forum Langage
    Réponses: 2
    Dernier message: 24/01/2011, 19h41
  3. Réponses: 2
    Dernier message: 29/07/2008, 15h04
  4. Afficher le résultat dans la même page
    Par benbax dans le forum Langage
    Réponses: 2
    Dernier message: 15/11/2007, 16h00
  5. Réponses: 5
    Dernier message: 15/03/2007, 06h58

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