Boucle avec find
bonsoir, voici on j'en suis arrivé pour le moment mais là je bloque et j'ai besoin d'aide. J'ai commencé une macro mais je dois boucler dessus et je ne sais pas comment m'y prendre, le but étant de rechercher dans la colonne 2 la ou les valeur identique à A1 et si trouvé, sur cette même ligne afficher colonne 8 le produit de colonne 3 * colonne 5 (le bout de code suivant fait cela mais ne boucle pas) ... de plus il faudrait que si il y a une valeur en colonne 9 on affiche en colonne 8 le produit de colonne 3 * colonne 9 ( au lieu de colonne 3 * colonne 5).
voici ou j'en suis pour l'instant... je mets également le fichiertest en PJ
Sub majValue()
test = Cells(1, 1).Value
With Worksheets("page").Range("C:C")
Set test1 = .Find(test, LookIn:=xlValues)
var1 = Cells(test1.Row, test1.Column + 1).Value ' var colonne D
var2 = Cells(test1.Row, test1.Column + 3).Value ' variable colonne F
var3 = var1 * var2
Cells([C:C].Find(test).Row, 7) = var1
Cells([C:C].Find(test).Row, 8) = var2
Cells([C:C].Find(test).Row, 9) = var3
Cells([C:C].Find(test).Row, 13) = (Date)
End With
End SubBonsoir
Essayez le code comme ceci
Sub majValue()
Dim TS As ListObject
Dim c As Range
Dim prem As String
Dim lig As Integer
Set TS = Range("Tableau1").ListObject
With TS
Set c = .DataBodyRange.Find(Range("A1"), LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
prem = c.Address
Do
lig = c.Row - .HeaderRowRange.Row
If .DataBodyRange(lig, 9) > 0 Then
.DataBodyRange(lig, 8) = .DataBodyRange(lig, 3) * .DataBodyRange(lig, 9)
Else: .DataBodyRange(lig, 8) = .DataBodyRange(lig, 3) * .DataBodyRange(lig, 5)
End If
Set c = .DataBodyRange.FindNext(c)
Loop While Not c Is Nothing And c.Address <> prem
End If
End With
End SubSi ok et terminé pensez à cloturer
Cordialement
et dire que je me gratte la tête depuis 2 jours et là en moins d'1 heure ... ça fonctionne à merveille. Merci beaucoup pour votre aide, maintenant je vais étudier tout celà. Bonne soirée à vous