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. 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. 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. ok fichier recupere...
        Par contre comment va tu faire ta selection de critere ..?
        1
        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. Merci de ton merci, votes pour le message, ce sera toujours ça de pris...
            1
            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
              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. Le voila:

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

                  Je te remercie fortement pour ton aide !!
                  0
                  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. Wao WAo WAo!

                      Ca marche parfaitement trop trop bien!

                      Je te remercie vraiment pour ton aide !!!!!
                      0