Macro : remplacer le contenu d'une cellule
Le
Françoise

Bonsoir,
je veux faire une macro qui
a chaque fois qu'elle rencontre dans la colonne C une valeur différente de
"A", "B" ou "-"
Efface le contenu de toute la ligne
remplit la cellule C avec le mot "SDF"
et répète l'opération jusqu'à la fin des données
J'ai testé :
Sheets("Plan de montage").Select
Range("C1").Select
Do Until ActiveCell = ""
If ActiveCell <> "A" And ActiveCell <> "B" And ActiveCell <> "-" Then
Selection.EntireRow.ClearContents
ActiveCell.FormulaR1C1 = "SDF"
End If
Loop
-
Ca bloque sur ActiveCell
Je ne vois pas pourquoi et n'y arrive pas
Merci de votre aide
Françoise
je veux faire une macro qui
a chaque fois qu'elle rencontre dans la colonne C une valeur différente de
"A", "B" ou "-"
Efface le contenu de toute la ligne
remplit la cellule C avec le mot "SDF"
et répète l'opération jusqu'à la fin des données
J'ai testé :
Sheets("Plan de montage").Select
Range("C1").Select
Do Until ActiveCell = ""
If ActiveCell <> "A" And ActiveCell <> "B" And ActiveCell <> "-" Then
Selection.EntireRow.ClearContents
ActiveCell.FormulaR1C1 = "SDF"
End If
Loop
-
Ca bloque sur ActiveCell
Je ne vois pas pourquoi et n'y arrive pas
Merci de votre aide
Françoise
j'ai considéré que c'était un OU entre A , B et - selon ce que tu as écrit
(une valeur différente de "A", "B" ou "-")
Set rng = Range("C1:C" & [C65536].End(xlUp).Row)
comparaison = Array("A", "B", "-")
On Error Resume Next
For Each c In rng
trouve = Application.WorksheetFunction.Match(c.Value, comparaison, 0)
If Err.Number <> 0 Then
With c
.EntireRow.ClearContents
.Value = "SDF"
End With
Err.Clear
End If
Next
A+
Une variante tirée de l'exemple de Philippe car il est fatigué et t'as posté
un proc qui fait l'inverse de se que tu demande ;o) :
Sub SDF()
Dim Plage As Range
Dim Cel As Range
With Worksheets("Plan de montage")
Set Plage = .Range(.[C2], .[C65536].End(3))
End With
For Each Cel In Plage
Select Case Cel
Case "A", "B", "-"
'ne fait rien
Case Else
Cel.EntireRow.Clear
Cel.Value = "SDF"
End Select
Next Cel
Set Cel = Nothing
Set Plage = Nothing
End Sub
Hervé
"Françoise" news:
Dim rngCell As Range
' Je suppose que la ligne 1 sert pour l'entête
For Each rngCell In Range(Cells(2, 3), Cells(Cells(65000, 3).End(xlUp).Row,
3))
Select Case rngCell.Value
Case "A", "B", "-" ' Case sensitive Majuscule ou Minuscule
rngCell.Value = "C"
End Select
Next rngCell
End Sub
Philippe
"Françoise" news:
Public Sub DetectColonneC()
Dim rngCell As Range
' Je suppose que la ligne 1 sert pour l'entête
For Each rngCell In Range(Cells(2, 3), Cells(Cells(65000, 3).End(xlUp).Row,
3))
Select Case rngCell.Value
Case "A", "B", "-" ' Case sensitive Majuscule ou Minuscule
rngCell.Value = "SDF"
End Select
Next rngCell
End Sub
Philippe
"anonymousA" de news:
Public Sub DetectColonneC()
Dim rngCell As Range
' Je suppose que la ligne 1 sert pour l'entête
For Each rngCell In Range(Cells(2, 3), Cells(Cells(65000, 3).End(xlUp).Row,
3))
Select Case rngCell.Value
Case "a", "b", "-" ' Case sensitive Majuscule ou Minuscule
Range(Cells(rngCell.Row, 1), Cells(rngCell.Row,
2)).ClearContents
rngCell.Value = "SDF"
End Select
Next rngCell
End Sub
Philippe
"Philippe W." news:%23ux%