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 :

Remplir plusieurs champs de texte à partir d'une liste déroulante


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Points : 7
    Points
    7
    Par défaut Remplir plusieurs champs de texte à partir d'une liste déroulante
    Bonjour
    Je fais une petite base de donnée sous excel et pour la mise en forme, j'ai fais un Userform.
    Dans celui-ci j'ai fais une liste déroulante(à partir de ma feuille excel colonne A). Par contre je voudrais qu'une fois que j'ai choisi ma valeur dans la liste déroulante, que je remplisse les deux zones de textes(colonne b et c dans mon tableau) associées à cette valeur.
    Je ne trouve pas la solution.
    Merci de m'aider

  2. #2
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut


    En supposant que tu valides la sélection dans ton UserForm via un bouton, voici un exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub CommandButton1_Click()
    Dim i As Integer
     
    With Sheets("Feuil1") '<-- feuille contenant la valeur à chercher
        For i = 1 To .Cells(Rows.Count, 1).End(xlUp).Row '<-- de la ligne 1 à la dernière ligne utilisée de la colonne A
            If .Cells(i, 1) = Me.ListBox1 Then '<-- recherche de la ligne en colonne A qui correspond à la sélection de la ListBox
                .Cells(i, 2) = "toto" '<-- si oui colonne B même ligne = ...
                .Cells(i, 3) = "lulu" '<-- si oui colonne C même ligne = ...
                Exit For '<-- une fois trouvé, on sort de la boucle qui effectue la recherche
            End If
        Next
    End With
     
    End Sub
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Merci
    mais ca ne fonctionne pas comme je voudrais. Donc j'ai fais quelque modif mais ca ne fonctionne toujours pas.
    Je voudrais que quand je valide ma valeur dans ma Combobox, que mes zones de textes se remplissent automatiquement à partir des cellules situées sur la même ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub CommandButton1_Click()
    Dim i As Integer
     
    With Sheets("Feuil1") '<-- feuille contenant la valeur à chercher
        For i = 1 To .Cells(Rows.Count, 1).End(xlUp).Row '<-- de la ligne 1 à la dernière ligne utilisée de la colonne A
            If .Cells(i, 1) = Me.ComboBox1 Then '<-- recherche de la ligne en colonne A qui correspond à la sélection de la ListBox
                TextBox1 = .Cells(i, 2) '<-- si oui colonne B même ligne = ...
                TextBox2 = .Cells(i, 3) '<-- si oui colonne C même ligne = ...
                Exit For '<-- une fois trouvé, on sort de la boucle qui effectue la recherche
            End If
        Next
    End With
    End Sub

  4. #4
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    ah d'accord c'est dans ce sens là, je pensais que tu voulais compléter la feuille, ce que tu as fait est correct et cela fonctionnera en ajoutant .Text
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub CommandButton1_Click()
    Dim i As Integer
     
    With Sheets("Feuil1") '<-- feuille contenant la valeur à chercher
        For i = 1 To .Cells(Rows.Count, 1).End(xlUp).Row '<-- de la ligne 1 à la dernière ligne utilisée de la colonne A
            If .Cells(i, 1).Text = Me.ComboBox1 Then '<-- recherche de la ligne en colonne A qui correspond à la sélection de la ListBox
                TextBox1 = .Cells(i, 2).Text '<-- si oui TextBox1 = colonne B même ligne
                TextBox2 = .Cells(i, 3).Text '<-- si oui TextBox2 = colonne C même ligne
                Exit For '<-- une fois trouvé, on sort de la boucle qui effectue la recherche
            End If
        Next
    End With
    End Sub
    Tu pourrais également, au lieu de passer par un bouton, directement agir via l'évènement Change du Combo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub ComboBox1_Change()
    '...
    'le code
    '...
    End Sub
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Ok c'est bien cela que je voulais comme dispo
    Merci pour votre aide
    You are

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/05/2009, 09h56
  2. Réponses: 8
    Dernier message: 19/04/2007, 10h20
  3. Réponses: 4
    Dernier message: 19/07/2006, 10h07
  4. Désactiver un champ texte à partir d'un liste déroulante
    Par illegalsene dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/05/2006, 14h40
  5. Remplir 3 champs textes différents avec une liste déroulante
    Par azorol dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/12/2005, 00h04

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