VBA : instruction sur colonne C si colonne A contient

Bonjour,

Je voudrai dans la même ligne, quand le mot "titi" est présent dans la colonne A, faire que dans la colonne D le mot "toto" soit effacé. J'ai une partie de la fonction qui teste la colonne A, mais je n'arrive pas à ensuite aller dans la colonne C pour effacer "toto".

Sub remplacermot()

Dim Cel As Range, Plage As Range

Dim Mot As String

Mot = "toto"

Set Plage = Range("A5:A100")

For Each Cel In Plage

If Cel Like "*titi*" Then

Cel = Replace(Cell, Mot, " ") ici ce n'est pas sur Cel qu'il faut appliquer Replace, mais sur la cellule de la même ligne et de la colonne C

End If

Next Cel

End Sub

Bonjour Eddim,

Essaie avec Cel.Offset(0, 2) qui signifié Cel décalée de deux colonnes a droite...

Thautheme, j'ai essayé offset mais je n'arrive pas à faire fonctionner le code, il reste une ligne qui bug

Sub remplacermot()

Dim Cel As Range, Plage As Range

Dim Celdroite As Range

Dim Mot As String

Mot = "toto"

Set Plage = Range("A5:A100")

For Each Cel In Plage

If Cel Like "*titi*" Then

Set Celdroite = Cel.Offset(0, -3) Cette ligne bug, elle doit déclarer Celdroite comme la cellule située 2 colonnes à droite de la cellule Cel

Celdroite = Replace(Celdroite, Mot, " ")

End If

Next Cel

End Sub

Re,

Tu veux décaler de 2 colonnes à droite (positif) et tu décales de 3 colonnes à gauche (négatif) !?... Comme tu pars de la colonne A, déclarer vers la gauche est impossible et, par conséquent, génère une erreur. Il te suffisait de reprendre mon exemple.

Essai :

Sub remplacermot()

Dim Cel As Range, Plage As Range
Dim Mot As String

Mot = "toto"
Set Plage = Range("A5:A100")
For Each Cel In Plage
   If Cel Like "*titi*" Then
      Cel.Offset(0, 2).Value = Replace(Cel.Offset(0, 2).Value, Mot, " ")
   End If
Next Cel
End Sub

Super ton code fonctionne C'est le .Value qui manquait

Rechercher des sujets similaires à "vba instruction colonne contient"