Affectation de caractères sous conditions

  • Initiateur de la discussion Initiateur de la discussion fouggy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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.
 
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+
 
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+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
823
Réponses
4
Affichages
573
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
26
Affichages
2 K
Réponses
3
Affichages
540
Retour