OVH Cloud OVH Cloud

recherche et deplacement

4 réponses
Avatar
le lauxeti
Bonsoir,

Je souhaites dans une macro, rechercher dans une colonne=20
chaque cellule contenant "toto" et si je trouve "toto" me=20
deplacer sur la droite de 5 cellules et faire un calcul.

Quelqu'un aurait il une id=E9e ?

A tout de suite...
YB

4 réponses

Avatar
michdenis
Bonsoir le lauxeti,


Essaie ceci : Tu dois adapter le nom de la feuille, la plage de cellules où s'effectue la recherche et définir la
formule que tu veux entrer 5 colonnes à droite de l'adresse trouvée.

'-----------------------------------------
Sub ChercherMot()

Dim FoundCell As Range
Dim LeString As String, Adr As String

LeString = 2 'La Valeur que tu cherches

With Worksheets("Feuil2") 'à déterminer
.Activate
With .Range("A1:A50") 'à déterminer
Set FoundCell = .Cells.Find( _
What:=LeString, _
LookIn:=xlValues, _
LookAt:=xlWhole)
If Not FoundCell Is Nothing Then
Adr = FoundCell.Address
Do

'Remplace ceci par ta formule
MsgBox FoundCell.Offset(, 5).Address

FoundCell.Offset(, 5).Formula = " "


Set FoundCell = .Cells.FindNext( _
After:=FoundCell)
Loop While Not FoundCell Is Nothing And _
FoundCell.Address <> Adr
End If
End With
End With
End Sub
'-----------------------------------------


Salutations!



"le lauxeti" a écrit dans le message de news:070a01c37d6a$e862f2b0$
Bonsoir,

Je souhaites dans une macro, rechercher dans une colonne
chaque cellule contenant "toto" et si je trouve "toto" me
deplacer sur la droite de 5 cellules et faire un calcul.

Quelqu'un aurait il une idée ?

A tout de suite...
YB
Avatar
AV
Pourquoi ne pas faire une formule ?

Avec ta plage de recherche en A2:A50, en F2 > recopie F50 :
=SI(A4="toto";"ton Calcul";"")

Par macro :
Sub zzz()
[F2:F50] = "=if(A2=""toto"",""ton Calcul"","""")"
[F2:F50] = [F2:F50].Value
End Sub

AV


"le lauxeti" a écrit dans le message news:
070a01c37d6a$e862f2b0$
Bonsoir,

Je souhaites dans une macro, rechercher dans une colonne
chaque cellule contenant "toto" et si je trouve "toto" me
deplacer sur la droite de 5 cellules et faire un calcul.

Quelqu'un aurait il une idée ?

A tout de suite...
YB
Avatar
michdenis
Bonsoir AV,

J'espère que le Monsieur n'avait rien sur toute la colonne F2:F50 ...il risque d'avoir une petite surprise !

;-))


Salutations!



"AV" a écrit dans le message de news:%23EGyr%
Pourquoi ne pas faire une formule ?

Avec ta plage de recherche en A2:A50, en F2 > recopie F50 :
=SI(A4="toto";"ton Calcul";"")

Par macro :
Sub zzz()
[F2:F50] = "=if(A2=""toto"",""ton Calcul"","""")"
[F2:F50] = [F2:F50].Value
End Sub

AV


"le lauxeti" a écrit dans le message news:
070a01c37d6a$e862f2b0$
Bonsoir,

Je souhaites dans une macro, rechercher dans une colonne
chaque cellule contenant "toto" et si je trouve "toto" me
deplacer sur la droite de 5 cellules et faire un calcul.

Quelqu'un aurait il une idée ?

A tout de suite...
YB
Avatar
AV
J'espère que le Monsieur n'avait rien sur toute la colonne F2:F50 ...il risque
d'avoir une petite surprise !


Pffff......Ben, comment deviner ? A lui de voir ;-)

A défaut (colonne F non vide), me semble que le filtre devrait être plus rapide
(pas testé) que la méthode find :
Un truc dans ce genre :

[A1:A50].AutoFilter Field:=1, Criteria1:="toto"
[A2:A50].SpecialCells(xlCellTypeVisible).Offset(0, 5) = "mon calcul"
[A1:A50].AutoFilter

AV