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 :

recherche selon 2 combobox [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é
    Inscrit en
    Novembre 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 89
    Par défaut recherche selon 2 combobox
    Bonjour,

    Voici mon problème de macro.

    Mon premier combobox du nom: "CboxWBS" contient les noms de la colonne B, et le comboBox du nom: "CboxNetwork" contient les prenoms qui va avec le nom, et ces prenoms sont dans la colonne C.

    Alors si je choisit un nom "CboxWBS" et un prenom "CboxNetwork", selon les 2 valeurs des 2 combobox, il me donne la valeur de la colonne F (Téléphone) de la même ligne dans mon TextBox1, ensuite la valeur de la colonne I (Cellulaire) de la même ligne dans le textbox2 ainsi que la valeur de la colonne J (Courriel 1) dans le TextBox3.


    Voici mon script jusqu'à maintenant:
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Dim i As Long, DerL As Long, r As Long, Opid1 As String, Opid2 As String
     
    DerL = Sheets("Base de donnée").Cells(Rows.Count, 1).End(xlUp).Row
     
    For i = 2 To DerL
    Opid1 = CboxWBS.Text
    Opid2 = CboxNetwork.Text
        Set c = Sheets("Base de donnée").Range("b:b").Find(What:=Opid1, LookAt:=xlWhole)
        Set d = Sheets("Base de donnée").Range("c:c").Find(What:=Opid2, LookAt:=xlWhole)
            If Not c Is Nothing Then
            On Error Resume Next
                r = c.Row
                s = d.Row
                CboxCPM = Sheets("Base de donnée").Cells(r & s, 1)
                TextBox1 = Sheets("Base de donnée").Cells(r & s, 6)
                TextBox2 = Sheets("Base de donnée").Cells(r & s, 9)
                TextBox3 = Sheets("Base de donnée").Cells(r & s, 10)
                TextBox4 = Sheets("Base de donnée").Cells(r & s, 13)
                DTPicker2 = Sheets("Base de donnée").Cells(r & s, 12).Value
                'Label19 = DateDiff(Date - Sheets("Base de donnée").Cells(r, 12) + 365))
                p = Sheets("Base de donnée").Cells(r, 12).Value + 365
     
               Label19 = DateDiff("d", Date, p)
                Label20 = "jour(s) restant avant expiration"
               If Label19 > "365" Then
               Label19 = "Expiré"
               Label20 = "Vous devez renouvler l'antivirus"
           Else
     
            If Sheets("Base de donnée").Cells(r, 12).Value = vbNullString Then
             DTPicker2.Enabled = False
              Label19 = ""
               Label20 = "Aucun antivirus n'a été installé sur cette ordinateur"
            Else
     
            End If
            End If
            End If
    Next i
    J'ai même essayé avec un autre code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim RECHERCHE As Range, Ligne As Long
     
        Set RECHERCHE = Columns("B:B").Find(CboxWBS)And Columns("C:C").Find(CboxNetwork)
     
        If Not RECHERCHE Is Nothing Then
     
           Ligne = RECHERCHE.Row
          TextBox1 = Range("G" & Ligne)
           TextBox2 = Range("J" & Ligne)
              TextBox3 = Range("K" & Ligne)
           End If
    ça fonctionne toujours pas.

    comment faire s.v.p?

    Merci pour votre aide.

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

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Bonjour
    (Sans ouvrir le fichier joins)
    Personnellement je n'aurait pas du tout procédé ainsi,

    un exemple
    Mes texte box sont Nom et Prenom
    Les nom en colonne A modifi le derniereligne te le with pour modifié ca
    Les prenoms un colonne a droite modifi l'offset
    les numéro de téléphone (enfin le resulat que tu veu) deux colonne a droite de nom
    Je te laisse adapté
    Si tu a des question sur le code commence par le faire fonctionner en mode pas a pas telquel sur un fichier exemple (les donnée sont feuile2)
    Et si ca ne te permet pas de comprendre n'hésite pas a poser des question
    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
    Dim c As Range
    Dim DerniereLigne As Long
    Dim firstAddress As String
    DerniereLigne = Cells(Columns(1).Cells.Count, 1).End(xlUp).Row
    With Worksheets(2).Range("a1:a" & DerniereLigne)
        Set c = .Find(Nom)
        If Not c Is Nothing And c.Offset(0, 1) <> Prenom Then
            firstAddress = c.Address
            Do
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstAddress And c.Offset(0, 1) <> Prenom
        End If
        If c.Offset(0, 1) = Prenom Then
            MsgBox "Le numéro de téléphone de " & c & " " & c.Offset(0, 1) & " et le " & c.Offset(0, 2)
        Else
            MsgBox Nom & " " & Prenom & "n'a pas été trouvé dans la base de donnée"
        End If
    End With
    Edit : joue sur la valeur de X dans c.offset(0,X) pour avoir les résultats de la Xème colonne a partir du nom de la personne
    en espérant que tu n'as pas plusieur fois le même couple nom/prénom, sinon il va te faloir un test

    Re edit les otions utilisé& a mettre en tête du module
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Option Compare Text
    Option Explicit

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

Discussions similaires

  1. recherche selon combobox
    Par avyrex dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/03/2009, 13h40
  2. recherche selon un objet
    Par gokudomatic dans le forum JPA
    Réponses: 4
    Dernier message: 25/02/2007, 13h49
  3. [Conception] Modifier un enregistrement selon un combobox?
    Par Norin dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/01/2007, 10h11
  4. Réponses: 20
    Dernier message: 04/10/2006, 15h48
  5. Recherche selon liste deroulante
    Par martonpylon12 dans le forum IHM
    Réponses: 6
    Dernier message: 21/12/2005, 20h00

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