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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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" <brunetty@wanadoo.fr> a écrit dans le message de news:070a01c37d6a$e862f2b0$a301280a@phx.gbl...
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.
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
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
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" <brunetty@wanadoo.fr> a écrit dans le message news:
070a01c37d6a$e862f2b0$a301280a@phx.gbl...
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.
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
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
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" <alain.vallon@wanadoo.fr> a écrit dans le message de news:%23EGyr%23YfDHA.3104@TK2MSFTNGP11.phx.gbl...
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" <brunetty@wanadoo.fr> a écrit dans le message news:
070a01c37d6a$e862f2b0$a301280a@phx.gbl...
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.
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
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 :