Excel et Macro

Bonjour,

Voila mon problème:

J'ai créé une base de donnée de l'ensemble des téléphones mobiles avec environ 10 caractéristiques par modèles.
J'ai fait cela en mettant une marque par page. J'ai donc 8 pages différentes.

ce que je souhaite faire est une macro qui me permettent d'afficher la marque de l'ensemble des mobiles puis, une fois choisit, les modèles de la marque et enfin, je souhaite qu'un Oui ou non s'affiche en fonction de présence ou non d'au moins 3 critères prédéfinit.

Comme je suis débutant, je vous demande votre aide..

Merci
Configuration: Windows XP
Firefox 3.0.10

13 réponses

  1. Merci de ton merci, votes pour le message, ce sera toujours ça de pris...
    1
    1. Wao WAo WAo!

      Ca marche parfaitement trop trop bien!

      Je te remercie vraiment pour ton aide !!!!!
      0
      1. Et ba rien que ca !
        Comme je suis joueur, je t'ai meme rajoute lorsque tu double cliques sur la liste, la possibilité d'aller directement dans la feuille sur le téléphone associé...

        http://www.cijoint.fr/cjlink.php?file=cj200905/cijP7acfUQ.xls

        pour ceux que ca intéresse, ci dessous le code utilisé...
        à coller dans une userform
        sur la feuille mettre

        un combobox, nom Cmb_Marque
        un commandbutton, Cmd_Valide_Marque
        un listview, Lst_Appareils

        et coller le code ci dessous dans la feuille

        Private Sub Cmb_Marque_Change()

        Call Cmb_Marque_Click

        End Sub

        Private Sub Cmb_Marque_Click()

        If Cmb_Marque.Text = "" Then
        Cmd_Valide_Marque.Enabled = False
        Else
        Cmd_Valide_Marque.Enabled = True
        End If

        Call RAZ_Resultat

        End Sub

        Private Sub RAZ_Resultat()

        With Lst_Appareils
        .ListItems.Clear
        .ColumnHeaders.Clear
        .ColumnHeaders.Add , , , 0, 0
        .ColumnHeaders.Add , , "Référence", 240, 2
        .ColumnHeaders.Add , , "Compatibilité", 65, 2
        End With

        End Sub

        Private Sub Cmd_Valide_Marque_Click()

        Dim I As Integer
        Dim It_Appareil As ListItem
        Dim Sub_It_Appareil As ListSubItem

        On Local Error Resume Next
        I = 2
        Do Until Worksheets("" & Cmb_Marque.Text & "").Cells(I, 1).Value = ""
        Set It_Appareil = Lst_Appareils.ListItems.Add(, , I)
        Set Sub_It_Appareil = It_Appareil.ListSubItems.Add(, , Worksheets("" & Cmb_Marque.Text & "").Cells(I, 1).Value)
        'BLUETOOTH
        If Worksheets("" & Cmb_Marque.Text & "").Cells(I, 4).Value <> "" Then
        'JSR 82
        If InStr(1, Worksheets("" & Cmb_Marque.Text & "").Cells(I, 9).Value, "82") <> 0 Then
        'JSR 135
        If InStr(1, Worksheets("" & Cmb_Marque.Text & "").Cells(I, 9).Value, "135") <> 0 Then
        'MEMOIRE JAR
        If StrConv(Worksheets("" & Cmb_Marque.Text & "").Cells(I, 18).Value, vbUpperCase) = "OUI" Then
        Set Sub_It_Appareil = It_Appareil.ListSubItems.Add(, , "OUI")
        Sub_It_Appareil.ForeColor = vbBlue
        Else
        Set Sub_It_Appareil = It_Appareil.ListSubItems.Add(, , "NON")
        Sub_It_Appareil.ForeColor = vbRed
        End If
        Else
        Set Sub_It_Appareil = It_Appareil.ListSubItems.Add(, , "NON")
        Sub_It_Appareil.ForeColor = vbRed
        End If
        Else
        Set Sub_It_Appareil = It_Appareil.ListSubItems.Add(, , "NON")
        Sub_It_Appareil.ForeColor = vbRed
        End If
        Else
        Set Sub_It_Appareil = It_Appareil.ListSubItems.Add(, , "NON")
        Sub_It_Appareil.ForeColor = vbRed
        End If
        I = I + 1
        Loop
        Lst_Appareils.Refresh
        On Local Error GoTo 0

        Sheets("Caractéristiques générales").Activate

        End Sub

        Private Sub Lst_Appareils_DblClick()

        On Local Error Resume Next
        Sheets("" & Cmb_Marque.Text & "").Select
        Dim Ligne As Long
        Ligne = Lst_Appareils.SelectedItem.Text
        Rows("" & Ligne & ":" & Ligne & "").Select
        On Local Error GoTo 0
        End Sub

        Private Sub UserForm_Initialize()

        Dim Sh As Worksheet

        For Each Sh In Worksheets
        Select Case Sh.Name
        Case "Caractéristiques générales"
        Case "Evolution mondiale"
        Case Else
        Cmb_Marque.AddItem Sh.Name
        End Select
        Next Sh

        Call RAZ_Resultat

        End Sub
        1
        1. Voila ce que je désire:

          Je souhaite que en fonction de la marque choisit, les modèles de cette marques s'affichent. Puis la personne va choisir son modèle parmi la liste.
          Une fois le modèle choisit, devra apparaitre la chose suivante "Compatible" ou "Incompatible".

          Pour vérifier le compatibilité, je souhaite qu'il y ait 3 critères:

          1) La présence du bluetooth
          2) La présence du JSR 82 et 135 (il faut que les 2 soit présent)
          3) Que dans la dernière colonne (Mémoire JAR) apparaisse "Oui"

          Si les 3 critères sont présent, doit apparaitre "Compatible"!

          Et si j'ajoute un nouveau mobile dans cette liste de téléphones, j'aimerais qu'il soit automatiquement inclus dans la macro!
          0
          1. ok fichier recupere...
            Par contre comment va tu faire ta selection de critere ..?
            1
            1. Le voila:

              http://www.cijoint.fr/cjlink.php?file=cj200905/cijiJO6uuS.xls

              Je te remercie fortement pour ton aide !!
              0
              1. Mets ton fichier en ligne sur cijoint.fr et mets moi le lien en post ( prive ou non ) afin que j'ai le schema de tes feuilles de donnée...
                1
                1. donc en fait, tu saisis trois criteres, et tu veux que ta macro parcoure toutes les lignes de toutes les feuilles afin de trouver les téléphones correspondant ?
                  1
                  1. Je te remercie pour ton aide mais cela ne marche malheureusement pas !

                    Je dois avouer que je suis perdu !

                    Ya til une autre solution pour faire les recherches plutôt que de passé par des macro?
                    0
                    1. Tes débutant mais tu as de grandes idées.

                      en ce qui concerne les macros Excell, moi je me sers bcp de l'enregistreur automatique. (outil -> Macro -> enregistreur de macro) sous Office 2003

                      En fait, je le déclenche et je fais tout ce que j'ai à faire manuellement. Ensuite, je vais dans le code pr des modifs. Il suffit de s'y connaitre un peu en VB et en progrmmation. C'est beaucoup plus accessible comme ça et en plus t'as pas besoin d'être un champion de VBA.

                      J'espère que ce petit topo va t'aider.

                      Bye
                      0