2017-09-22 6 views
0

Lorsque j'essaie d'ajouter une formule IF via le code vba, j'obtiens une erreur «définie par l'application ou définie par l'objet». J'ai vérifié toutes mes références et elles semblent être correctes. La feuille n'est pas protégée. Rien à voir sur cette erreur et toute aide est très appréciée.Erreur lors de l'ajout de la formule IF dans la liste de validation par VBA

With Range("C3").Validation 
    .Delete 
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ 
    xlBetween, Formula1:="=IF(B3="""","""",'Sheet3'!$A$1:$A$2)" 
    .IgnoreBlank = True 
    .InCellDropdown = True 
    .InputTitle = "" 
    .ErrorTitle = "" 
    .InputMessage = "" 
    .ErrorMessage = "" 
    .ShowInput = True 
    .ShowError = True 
End With 
+0

Mise à jour: J'obtiens une erreur sur la ligne de codage ".Add" quand je débogue. – marv

+0

Pourriez-vous essayer si cela fonctionne si vous supprimez le 'Type: =', 'AlertStyle: =', 'Operator: =' et 'Formule1: ='? Ne retirez pas ce qui est après eux, il suffit de retirer ces pièces. – Moacir

+0

@Moacir Si vous supprimez tout, il existe un message d'erreur indiquant que [ce n'est pas facultatif] (https://msdn.microsoft.com/fr-fr/vba/excel-vba/articles/validation-add-method-excel). Parce que le type est requis. Et quand l'opérateur est x1Entre, formule2 doit être spécifié – danieltakeshi

Répondre

0

Essayez de changer votre formule Formula1:="=IF(COUNTBLANK(B3)=1,"""",'Sheet3'!$A$1:$A$2)" si vous cherchez cellule vide dans B3. Si cela aide il n'y a pas d'erreur si B3 n'est pas une cellule vide ..