2013-04-18 1 views
1

J'ai 3 matrices de corrélation:Mise en forme conditionnelle sur les cellules non vides - Excel VBA 2010

corrélation d'entrée:

    Acc & Health  AE  Avemco Aviation  Bail 
Acc & Health   1   0.15  0.15   0.15 
AE     0.15   1   0.15   0.25 
Avemco Aviation  0.15   0.15   1    0.15 
Bail    0.15   0.25  0.15    1 

corrélation de sortie:

   Acc & Health  AE  Avemco Aviation  Bail 
Acc & Health   1   
AE     0.158   1  
Avemco Aviation 0.139  0.158   1 
Bail    0.177  0.258   0.130   1 

corrélation de comparaison (valeur absolue Tableaux de corrélation entrée-sortie):

   Acc & Health  AE  Avemco Aviation  Bail 
Acc & Health  0.000    
AE     0.008  0.000  
Avemco Aviation 0.011  0.008   0.000  
Bail    0.027  0.008   0.020   0.000 

Je fais une demande de mise en forme conditionnelle à la table de corrélation Comparaison si les valeurs de la table de corrélation d'entrée sont supérieurs à 0,2 et une autre condition mathématique et si les cellules dans le tableau de correspondance comparaison ne sont pas en blanc:

Cependant, je suis toujours obtenir le formatage dans des cellules vides comme E3 (AE et Bail) puisque la valeur d'entrée est supérieure à 0.2. Comment puis-je résoudre ce problème afin qu'aucun formatage ne soit effectué sur des cellules vides?

Une partie de mon code VBA:

.Range(.Cells(5, 2), .Cells(LastRowAgg, LastColumnAgg)).Select 
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _ 
       "=AND((('Input Correlation'!B5:AT49-'Aggregate Loss Correlation'!B5:AT49)/'Input Correlation'!B5:AT49)>=(1/3),'Input Correlation'!B5:AT49>=0.2,B5:AT49<>"" "")" 
      Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority 
      With Selection.FormatConditions(1).Interior 
       .PatternColorIndex = xlAutomatic 
       .Color = 255 
       .TintAndShade = 0 
      End With 
     Selection.FormatConditions(1).StopIfTrue = False 

Toute aide sera appréciée!

Répondre

1

Je vous suggère d'utiliser une instruction if avec la fonction isblank():

... Formula1:="=IF(isblank(a32);;and(a32<=a$19;a32>a$18))" 

Si isblank est True, rien d'autre formule d'évaluer (and(a32<= ...)

Questions connexes