Fonction de recherche

Fonction de recherche - VB/VBA/VBS - Programmation

Marsh Posté le 11-12-2006 à 11:38:10    

Bonjour,
 
je dispose d'un tableau comme celui-ci:
 
Col A     Col B              Col C
 
1    110 000,00      2, 4
2    110 000,00      1, 4
3    92 000,00        5
4    110 000,00      1,2
5    92 000,00        3
6    56 000,00        
7    45 000,00
 
 
Je veux afficher dans la colonne C la liste des valeurs de la colonne A avec comme critère de recherche la colonne B. En rouge les valeurs que je souhaite obtenir avec la formule.
 
 
Merci.

Message cité 1 fois
Message édité par Dolu007 le 11-12-2006 à 11:38:51
Reply

Marsh Posté le 11-12-2006 à 11:38:10   

Reply

Marsh Posté le 11-12-2006 à 12:28:18    

 

tu peux expliciter ton critère stp ? s'agit-il d'un tri, d'une sélection de valeur, que représentent les 2.4 et co ??
merci :jap:


Message édité par jpcheck le 11-12-2006 à 12:28:52
Reply

Marsh Posté le 11-12-2006 à 12:49:41    

Bonjour,
Pour voir si j'ai deviné:
 
2, 4  signifie que je trouve l'équivalent de la ligne 1 (110000,00) en ligne 2 puis en ligne 4
1, 4 signifie que je trouve l'équivalent de la ligne 2 (110000,00) en ligne 1 puis en ligne 4
etc..etc..
Cordialement
 

Reply

Marsh Posté le 11-12-2006 à 14:06:43    

seniorpapou a écrit :

Bonjour,
Pour voir si j'ai deviné:
 
2, 4  signifie que je trouve l'équivalent de la ligne 1 (110000,00) en ligne 2 puis en ligne 4
1, 4 signifie que je trouve l'équivalent de la ligne 2 (110000,00) en ligne 1 puis en ligne 4
etc..etc..
Cordialement


 
Oui c'est tout à fait ça! une idée?

Reply

Marsh Posté le 11-12-2006 à 16:24:19    

Bonsoir,
Une idée à améliorer bien entendu:
Sub Macro1()
 
Columns("C:C" ).Select
 Selection.NumberFormat = "@"
    With Selection
        .HorizontalAlignment = xlLeft
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
Cells(60000, 2).End(xlUp).Select
fincol = Selection.Row
For i = 1 To fincol
   maval = Cells(i, 2)
   Cells(i, 3) = " "
   virg = " "
   Columns("B:B" ).Select
    With Selection
    Set c = .Find(maval, after:=Cells(64000, 2), LookIn:=xlValues)
     
    cc = c.Row
    If (Not c Is Nothing) And c.Row <> i Then
        Cells(i, 3) = virg & Str(Cells(c.Row, 1).Value)
        virg = ", "
    End If
        firstAddress = c.Address
     
        Do
           Set c = .FindNext(c)
            If (Not c Is Nothing) And c.Row <> i And c.Address <> firstAddress Then
            Cells(i, 3) = Cells(i, 3) & virg & Str(Cells(c.Row, 1).Value)
            virg = ", "
            End If
        Loop While Not c Is Nothing And c.Address <> firstAddress
     
    End With
Next
End Sub
Cordialement

Reply

Marsh Posté le 15-12-2006 à 10:04:59    

seniorpapou,
 
Je pense que ça m'a l'air vraiment pas mal. Je teste plus en profondeur et je confirme l'excellent fonctionnement.
 
Merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed