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
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
anonymousA
Le #2156151
re,

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+


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


Hervé
Le #2156131
Salut Fançoise,
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:
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


Philippe W.
Le #2156081
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 = "C"
End Select
Next rngCell
End Sub


Philippe


"Françoise" news:
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


Philippe W.
Le #2156061
Désolé, petite erreur

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:
re,

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+


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




Philippe W.
Le #2156021
Prendre le temps de lire la question comme il faut:

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%
Désolé, petite erreur

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" message

de news:
re,

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+


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








Poster une réponse
Anonyme