Bonsoir,
Je suis a la recherche d'une formule que si l'une des cellules "I19:I100" >0 la cellule correspondant dans la colonne "J" est égal a "OK"
ex: si en "I22" >0 "J22" est égal à "OK"
Je vous remercie de votre aide
Cordialement
max
Version imprimable
Bonsoir,
Je suis a la recherche d'une formule que si l'une des cellules "I19:I100" >0 la cellule correspondant dans la colonne "J" est égal a "OK"
ex: si en "I22" >0 "J22" est égal à "OK"
Je vous remercie de votre aide
Cordialement
max
Bonsoir,
La MFC ne peut pas renvoyer une valeur mais une mise en forme d'où son nom.
Donc si tu souhaites que la cellule de la colonne J qui se trouve sur la même ligne que celle de la colonne I et ce entre les lignes 19 à 100 prenne un format spécifique si la valeur de la cellule I est supérieur à 0, voici la méthode.
1) Sélectionner la plage $J$19:$J$100
2) Aller dans la MFC et sélectionner la règle "Utiliser une formule pour déterminer pour quelles cellules le format sera appliqué".
3) Placer cette formule
ensuite choisir le format.Code:=I9>0
Si maintenant il s'agit d'avoir le texte OK
1) Sélectionner la plage $J$19:$J$100
2) Entrer la formule
3) Valider par Ctrl+EnterCode:=SI(I9>0;"OK";"")
Bonjour Philippe Tulliez,
Je reviens vers vous car j'ai un petit souci avec la formule qui fonctionne trés bien. Le problème est le suivant a chaque enregistrement par VBA donc le code est le suivant:
la ligne descend d'un rang et je n'ai donc plus ma formule a la ligne "19" c'était pour cela que je chercher une formule par Mise en Forme Conditionnelle mais vue les explications très claire que ma données il serai peut être plus simple par VBA.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 Sub Enregistrer() ' ' Enregistrer Macro ' ' Rows("19:19").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Range("K12:Q12").Select Selection.Copy Range("B19").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Application.CutCopyMode = False With Selection .HorizontalAlignment = xlLeft .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With Range("H20:I20").Select Selection.AutoFill Destination:=Range("H19:I20"), Type:=xlFillDefault Range("H19:I20").Select Range("K12:P12").Select Selection.ClearContents Range("K12").Select End Sub
Je vous remercie d'avance.
Bonne journée
Max
Bonjour,
Plus simple par VBA, je n'en suis pas convaincu.
Appliqué une mise en forme conditionnelle prend trois minutes, le faire en VBA prendra sûrement plus de temps.
A mon avis, la question à se poser avant de développer en VBA est de savoir si cela se justifie soit parce-que on ne sais pas le faire avec Excel, soit c'est une opération qu'il faut faire régulièrement, soit c'est trop lent avec Excel.
Pour ma part, alors que je développe régulièrement, je n'ai jamais dû le faire avec du VBA.
Je ne sais pas ce que tu comptais faire avec le code VBA que tu affiches. Je vois que tu fais une copie de cellules que tu transposes et que tu copies ensuite vers d'autres.
Bonjour Philippe
Oui je copie des cellules que je transposes et que je copies ensuite vers d'autres cellules.
Le problème que j'ai, chaque copie se fait sur la ligne "19", se qui veut dire que les lignes déjà copier descendent d'une ligne, et la formule elle aussi descend d'une ligne?
A te lire
@+
Max