Rechercher un critère et afficher un tableau

Fermé
nicole - 27 oct. 2008 à 22:05
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 28 oct. 2008 à 02:21
Bonjour,
J'ai le tableau suivant:
composant huile_1 huile_2 huile_3 huile_4 huile_5
molecule_1 0,05 0 3 2 3
molecule_2 1 2 5 7 3
molecule_3 14 0 0 0 0
molecule_4 0 3 6 0 3
molecule_5 0 0 0 0 0
molecule_6 5 4 2 0 3
molecule_7 5 0 0 3 34
molecule_8 5 0 0 0 0
molecule_9 5 0 9 3 23
molecule_10 5 0 9 0 0
molecule_11 5 0 0 3 0
molecule_12 5 0 12 0 0
molecule_13 5 0 0 0 0
molecule_14 0 5 1 0 4
molecule_15 0 5 0 3 0
molecule_16 0 5 0 1 0
molecule_17 6 5 18 5 5
molecule_18 0 5 0 0 0
molecule_19 16 5 0 5 6
molecule_20 0 0 0 0 0
molecule_21 10 40 0 0 0
molecule_22 0 5 30 23 6
molecule_23 0,95 0 0 34 5
molecule_24 0 4 0 0 0
molecule_25 12 4 5 5 0
molecule_26 0 0 0 6 5
molecule_27 0 8 0 0 0

Je souhaite créer une macro VBA qui m'affiche une fenêtre indiquant le nom de la molécule recherchée et qui afficherait au final le pourcentage de cette molécule dans chacune des huiles essentielles.
Pouvez-vous m'adier SVP!!!
J'ai débuté avec ceci mais je suis loin de la solution:

Sub Recherche2()

Dim xCellule As Range
Dim xSelection As String
Dim Message As String

'Crée une boîte de dialogue :
Message = InputBox(" Entrez le nom de la molécule : ", "Mon Programme", "01/mm/aaaa")


'Arrête procédure si utilisateur clique sur annuler
If Message = " " Then Exit Sub

'Place la valeur dans la cellule A1;
'Worksheets("feuil1").Range(" A1 ").Value = Message

'Sélectionner le tableau :
'sélectionner toutes les cellules du tableau :

Selection.Worksheet.UsedRange.Select

'activer la dernière cellule du tableau
Cells(ActiveSheet.UsedRange.Rows.Count, ActiveSheet.UsedRange.Columns.Count).Activate

'Recherche " Message " dans le tableau :

For Each xCellule In Selection
If xCellule.Value = Message Then
xSelection = xSelection & xCellule.Address & ","
End If
Next
If Len(xSelection) > 0 Then
Range(Left(xSelection, Len(xSelection) - 1)).Select
End If
A voir également:

2 réponses

lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
28 oct. 2008 à 01:58
Bonjour,
Au moins quelqu'un qui a essayé de résoudre sont problème.. Bravo
deux questions.
Les données que tu a sont dans une seule colonne et du type molecule_24 0 4 0 0 0 ?
Les chiffres représente quoi ?
et où trouvé la composition des huiles ?
Tu dit...
A+
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
28 oct. 2008 à 02:21
Un début de piste...
Sub Molecule()
Dim TB, TM
Dim E As Long
Dim Msg As String
    Msg = InputBox(" Entrez le numéro de la molécule ")
    'Supposons la liste des molécules dans Feuil2, plage B4 à B30
    With Sheets("Feuil2")
        For i = 4 To 30
            TB = Split(.Cells(i, 2), "_")
            TM = Split(TB(1), " ")
            If TM(0) = Msg Then
                MsgBox "Composition de la molécule " & Msg & Chr(13) & _
                "Huile 1 = " & TM(1) & Chr(13) & _
                "Huile 2 = " & TM(2) & Chr(13) & _
                "Huile 3 = " & TM(3) & Chr(13) & _
                "Huile 4 = " & TM(4) & Chr(13) & _
                "Huile 5 = " & TM(5) & Chr(13)
                Exit Sub
            End If
        Next i
    
    End With
End Sub

Je ne sais pas si c'est ce que tu veux mais cela te donnerra déja quelques idées.
A+
0