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écuperer les valeurs d'une ligne en fonction d'un nom entré (via une TextBox)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    étudiant
    Inscrit en
    Décembre 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2018
    Messages : 4
    Par défaut Récuperer les valeurs d'une ligne en fonction d'un nom entré (via une TextBox)
    Bonjour,

    J'ai une question pour vous, comment peut-on demander à la machine de récupérer toutes les valeurs d'une ligne sur une
    feuille quand on rentre par exemple (dans une textBox) le mail de la personne qui se situe sur cette ligne ?
    En imaginant bien évidemment que l'on ait différentes lignes pour différents clients.

    Doit-on forcément passer pour une cellule annexe sur la feuille ou bien y-a-t-il un moyen de le faire directement en VBA ?

    Je vous remercie par avance et vous souhaite une bonne journée !

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    La méthode Find de l'objet Range par exemple te permet de faire une recherche dans la colonne où se trouve les mails. Une fois la valeur trouvée, il te suffit de récupérer la valeur de sa propriété Row et ainsi lire les données des autres colonnes.
    Toutefois, il me semble plus judicieux d'utiliser un contrôle ComboBox ou ListBox et ainsi de pouvoir sélectionner dans la liste la ligne contenant l'adresse mail et avec la propriété ListIndex d'un de ces contrôles tu pourras connaître également le numéro de la ligne où se trouve l'adresse sélectionnée.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonsoir
    essayez avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set Dc = Sheets("feuil1").Columns(1).Find(TextBox1.Value)
    C = Dc.Column
    L = Dc.Row
    MsgBox C
    MsgBox L

  4. #4
    Futur Membre du Club
    Homme Profil pro
    étudiant
    Inscrit en
    Décembre 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2018
    Messages : 4
    Par défaut
    Bonsoir à vous en ce réveillon de noël,

    Merci pour vos deux réponses qui répondent parfaitement à mon problème ! J'aurais cependant pour vous une dernière question
    A la fin de l’exécution de mon code l'erreur d'exécution "424" se produit sur la ligne 21 (mon_compte.Show)
    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
     
    Private Sub Userform_initialize()
    Dim i As Integer
    i = 1
    End Sub
     
    [...]
     
    Sheets.Add.Name = "temp"
    Dim infos As Range, Dc As Range
    Set infos = Sheets("temp").Range("A1:A11")
    Set Dc = Sheets("clients").Columns(1).Find(tb_mail.Value)
    C = Dc.Column
    L = Dc.Row
    For i = 1 To 10
        infos.Cells(i) = Sheets("clients").Cells(L, C + i)
    Next
        infos.Cells(11) = Sheets("clients").Cells(L, C)
     
    Me.Hide
    mon_compte.Show
     
    End Sub
    Et le pire dans tout ça c'est que les noms de mes userform se retrouvent changés en Nom : Capture.PNG
Affichages : 682
Taille : 3,8 Ko
    alors qu'avant ils répondaient aux noms suivants : Nom : normal.PNG
Affichages : 689
Taille : 4,1 Ko

    Et pour aucune raison (selon moi) quand je clique sur les userform ayant le mauvais nom ils reprennent leur nom originel...
    Cela semble avoir décalé le nom des userform d'un userform mais je ne vois vraiment pas comment cela peut se produire après seulement ces lignes là...

    Edit: J'ai oublié de préciser quelque chose, si à la place de "mon_compte.Show", je mets par exemple "commande.Show" cela fonctionne...

    Avez-vous une idée ?

    Bon réveillon !

  5. #5
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonjour
    Mon niveau ne permet de donner explication à cette situation mais moi je fais plutôt avec :
    au lieu de
    Je sais pas si ça résolu ton problème en souhaitant à tous et à toutes bonne fête et bonne année 2019

  6. #6
    Futur Membre du Club
    Homme Profil pro
    étudiant
    Inscrit en
    Décembre 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2018
    Messages : 4
    Par défaut
    Merci pour ton aide mais cela ne résout malheureusement pas mon problème...

Discussions similaires

  1. [XL-2007] Extraire des lignes en fonction d'un nom et d'une date
    Par Lexie91 dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 18/12/2015, 13h05
  2. Réponses: 2
    Dernier message: 15/12/2015, 11h34
  3. Réponses: 10
    Dernier message: 02/02/2011, 12h44
  4. [AC-2007] Requête UNION : récuperer les valeurs sur une seule ligne
    Par tibofo dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 08/12/2009, 12h02

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