Affectation de caractères sous conditions

fouggy

XLDnaute Junior
Slt le forum, Slt Job75,

A la suite de mon post du 21/09, Job75 m'aidait en me proposant la codification suivante :

Sub Macro4()
Dim w As Worksheet
For Each w In Worksheets
With w.Range("A1", w.UsedRange).Columns(9)
.FormulaR1C1 = "=IF(OR(""""&RC[-1]=""0"",""""&RC[-1]=""1""),0,IF(ISNUMBER(RC[-1]),""*"",""""))"
.Value = .Value
End With
Next
End Sub


Elle répond parfaitement à la demande qui était la suivante :

Dans un fichier Excel et dans chaque feuille existante (presque 1000), affecte le chiffre "0" en colonne "I" dans la cellule de la ligne correspondante lorsque tu rencontres le chiffre "0" ou "1" en colonne "H" et une étoile ("*") en colonne "I" lorsque le chiffre est différent de "0" ou "1" en colonne "H".

Mon projet évoluant, je souhaiterais apporter à cette codification, la modification suivante :

Dans un fichier Excel et dans chaque feuille existante (presque 1000), affecte le chiffre "0" en colonne "I" dans la cellule de la ligne correspondante lorsque tu rencontres le chiffre "0", "1" ou "2" en colonne "H" et une étoile ("*") en colonne "I" lorsque le chiffre est différent de "0", "1" ou "2" en colonne "H".

En espérant que Job75 ouvre ce post et puisse y répondre, merci par avance.
 

job75

XLDnaute Barbatruc
Bonjour fouggy,

Ben oui job75 est là...

Vous avez de la suite dans les idées mais manquez diablement d'imagination :
Code:
Sub Macro4()
Dim w As Worksheet
For Each w In Worksheets
With w.Range("A1", w.UsedRange).Columns(9)
    .FormulaR1C1 = "=IF(OR(""""&RC[-1]=""0"",""""&RC[-1]=""1"",""""&RC[-1]=""2""),0,IF(ISNUMBER(RC[-1]),""*"",""""))"
    .Value = .Value 'supprime les formules
End With
Next
End Sub
A+
 

job75

XLDnaute Barbatruc
Re,

Vous pouvez mettre "0" "1" "2" dans un tableau, c'est mieux s'il y en a beaucoup comme ça :
Code:
Sub Macro4()
Dim a, w As Worksheet
a = Array("0", "1", "2") 'tableau à adapter
ThisWorkbook.Names.Add "T", a 'nom défini
For Each w In Worksheets
With w.Range("A1", w.UsedRange).Columns(9)
    .FormulaR1C1 = "=IF(ISNUMBER(MATCH(""""&RC[-1],T,0)),0,IF(ISNUMBER(RC[-1]),""*"",""""))"
    .Value = .Value 'supprime les formules
End With
Next
End Sub
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 328
Membres
103 517
dernier inscrit
hbenaoun63