Mise en forme conditionnelle dans une macro
Bonjour,
Je suis nouveau sur le forum et j'aurais besoin de votre aide pour mon projet.
J'ai fait une macro qui parcourt une plage de cellules dont la plupart ont des dates. Toute la subtilité de mon problème est dans "la plupart"
En parcourant Internet, j'ai trouvé
With ThisWorkbook.Worksheets(1).Range("B1")
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:="=$A$1=1"
.FormatConditions(1).Interior.ColorIndex = 46
End With
Mon plus gros souci concerne la formule a indiqué, car il faut qu'elle soit dynamique par rapport au numéro de ligne ou à la colonne...
J'espère avoir été clair dans mes explications...
Je vous remercie d'avance pour vos futures réponses
Bonjour et bienvenue,
Joins un fichier pour une aide adaptée du forum.
Cdlt.
Comme j'ai le code sur mon ordi pro et que je ne peux pas me connecter à un forum, voici la retranscription du code
For NoLigne = 14 To DerLign
Delivery = Empty
Range ("N" & NoLigne).Select
Do Until IsEmpty(ActiveCell)
ActiveCell.offset(0,1).Select
Loop
ActiveCell.Offset(0,-1).Select
Delivery = ActiveCell.Value
Range("AH" & NoLigne).Select
If Delivery = "X" Or Delivery = "x" Or IsError(Range("AL" & NoLigne)) Then
ActiveCell.Value = "Unknown"
'With ActiveCell
' .FormatConditions.Delete
' .FormatConditions.Add Type:=xlExpression, Formula1:="=SI("AH & NoLigne)="Unknown"
' .FormatConditions(1).Interior.ColorIndex = 46
Else
ActiveCell.Value = "OK"
End If
Next NoLigneJ'ai conscience que ce que j'ai écrit et mis en commentaires (la partie With) n'est pas correcte car c'est un copier/coller d'Internet que j'ai essayé d'adapter comme j'ai pu à mon souci...
Je débute en VBA donc je suis très loin de connaître toutes les possibilités de ce langage...
Finalement, j'ai réussi à trouver et c'est beaucoup plus simple que ce que je pensais :
For NoLigne = 14 To DerLign
Delivery = Empty
Range ("N" & NoLigne).Select
Do Until IsEmpty(ActiveCell)
ActiveCell.offset(0,1).Select
Loop
ActiveCell.Offset(0,-1).Select
Delivery = ActiveCell.Value
Range((Split(Adresse1.Address, "$")(1) & NoLigne).Select
With ActiveCell
.FormatConditions.Delete
End With
If Delivery = "X" Or Delivery = "x" Or IsError(Range((Split(Adresse2.Address, "$")(1) & NoLigne)) Then
ActiveCell.Value = "Unknown"
ActiveCell.Interior.Color = RGB (201, 133, 203)
ActiveCell.Font.FontStyle = Calibri
ActiveCell.font.Size = 14
ActiveCell.Font.Bold = True
Else
ActiveCell.Value = "OK"
End If
Next NoLigne