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 :

Fonction intersection avec listbox et textbox [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 123
    Par défaut Fonction intersection avec listbox et textbox
    J'explique ma situation

    J'ai une listbox 1 avec des n° de semaine
    J'ai une listbox 2 avec des noms

    Les valeurs de la listbox 1 et 2 se trouvent également dans une feuille.

    listbox 1 en colonnes
    listbox 2 en ligne

    Le but est de trouver l'intersection des valeurs des 2 listbox afin de pouvoir remplir la cellule à l’aide d’un textbox

    Quelqu'un aurait il une idée svp?

    Merci d'avance

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Une proposition
    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
    Sub Inters()
    Dim Lig As Long
    Dim Col As Integer
    Dim Sem As Byte
    Dim Nom As String
    Dim c As Range
     
    With Sheets("Feuil1")                                                                              'à adapter
        Sem = Val(ListBox1.Value)
        If Sem > 0 Then
            Nom = ListBox2.Value
            If Nom <> "" Then
                Set c = .Range("A:A").Find(Nom, LookIn:=xlValues, lookat:=xlWhole)
                If Not c Is Nothing Then
                    Lig = c.Row
                    Set c = .Rows(1).Find(Sem, LookIn:=xlValues, lookat:=xlWhole)
                    If Not c Is Nothing Then
                        Col = c.Column
                        Set c = Nothing
                    End If
                End If
            End If
        End If
        If Col * Lig > 0 Then .Cells(Lig, Col).Value = "X"
    End With
    End Sub

  3. #3
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Une autre solution en utilisant les formules

    Dans cette exemple je recherche le résultat d'une multiplication dans un tableau de table de 5 sur 5

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim intLigne As Integer
    Dim intColonne As Integer
     
    intLigne = 2
    intColonne = 4
     
    MsgBox Application.WorksheetFunction.VLookup(intLigne, Range("A2:F6"), _
                Application.WorksheetFunction.Match(intColonne, Range("A1:F1"), 1), 0)
    Nom : Nouvelle image (1).jpg
Affichages : 263
Taille : 149,4 Ko

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 123
    Par défaut intersection suite
    Bonsoir à tout les deux.
    Merci pour vos réponses aussi rapide.
    Par contre vu le code, la je ne suis pas au même niveau que vous.
    Je vous joins donc mon fichier sur lequel je travaille. Mon but est de pouvoir sélectionner un choix dans la listbox + un autre choix dans la deuxième listbox. A l'intersection des deux j'entre un chiffre grace à la textbox. Au fur et à mesur que je rajoute une valeur elle vient s'adidionner à celle entrée précédement.
    J'espère avoir été assez clair dans mon explication.
    D'avance merci pour votre aide
    Fichiers attachés Fichiers attachés

  5. #5
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Oups, je me rend compte que ma premiere solution fais l'inverse, elle retourne la donnée se trouvant dans la cellule de ton tableau

    Met le code ci dessous dans l'evenement Click de ton bouton valider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Dim lngLigne As Long
    Dim intColonne As Integer
     
    lngLigne = Sheets("TOTAL").Range("B6:B57").Find(ListBox1.Text).Row
    intColonne = Sheets("TOTAL").Range("C5:E5").Find(ListBox.Text).Column
     
    Sheets("TOTAL").Cells(lngLigne, intColonne).Value = Sheets("TOTAL").Cells(lngLigne, intColonne).Value + poids
    Perso, j'utiliserais des combobox a la place des listbox car ici on est obliger de cliquer sur le texte de chaque listbox pour faire fonctionner le code

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 123
    Par défaut re
    Franchement merci! Tu viens de me rendre un grand service car j'étais vraiment dans une impasse.
    Le code fonctionne.
    Quel serait ta solution avec des combobox stp? car autant que j'essaye tous.
    Fred

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

Discussions similaires

  1. [XL-2010] Fonction DECALER avec ListBox
    Par CmzxNene dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 06/01/2013, 21h58
  2. [XL-2007] Textbox en fonction d'une listbox
    Par luko6 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 23/07/2010, 16h05
  3. Textbox autocompletion avec ListBox
    Par lolo81 dans le forum Windows Mobile
    Réponses: 15
    Dernier message: 13/01/2010, 20h59
  4. Réponses: 7
    Dernier message: 28/09/2007, 09h51
  5. Apelle d une fonction js avec la valeur d'une listbox
    Par echecetmat dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 15/02/2005, 16h53

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