iferror déclaration pour les macros en vba excel

J'ai une macro qui, à un point crée un tableau croisé dynamique. Mon problème est parfois pas toutes les valeurs sont dans la deuxième colonne et j'obtiens une erreur.

J'ai pensé à un moyen de contourner ce problème en obtenant les valeurs de la colonne à gauche, qui sont les mêmes. Mais avec cette méthode si les pivots sont les mêmes, j'obtiens une erreur "pas de cellules spéciales trouvé".

Désolé laissez-moi être plus clair, j'ai une colonne pour les noms de contrats et de la colonne C est un pivot qui affiche les valeurs d'un contrat à partir d'une autre table. Où je reçois l'erreur est la colonne B qui a une instruction if qui dit en substance si la colonne C est "oui", puis utiliser les noms de contrats. Je veux toujours la valeur si mon instruction if dans la colonne B produit une erreur

Ce que je veux, c'est quelque chose le long des lignes de

For each cl in range("C1:C200")  
if error and cl.offset(0, 1).value = yes then    
cl.value = cl.offste(0, -1) Else
Cl.value = cl.value
End if
  • Ce que vous cherchez à voir, c'est une erreur que vous ne teste pas toutes les variables. Vous vous regarder pour voir si il y a une erreur dans la cl?
  • Sean, vous avez besoin de le préciser. Tu parles d'un "deuxième colonne,", "pivot", "pivots", et l'erreur d'avoir à faire avec des cellules spéciales. Afin d'obtenir une réponse dont vous avez besoin pour développer et à disserter sur ces, et peut-être d'autres articles. Et, comme toujours, montre-nous ton code.
  • Désolé, laissez-moi être plus clair, j'ai une colonne pour les noms de contrats et de la colonne C est un pivot qui affiche les valeurs d'un contrat à partir d'une autre table. Où je reçois l'erreur est la colonne B qui a une instruction if qui dit en substance si la colonne C est "oui", puis utiliser les noms de contrats. Je veux toujours la valeur si mon instruction if dans la colonne B produit une erreur
  • comme je l'ai déjà été voté pour montrer trop de code / tapant trop beaucoup, j'essaie de garder mes deux codes et des questions aussi simples que possible (en omettant les parties de mon code qui ne sont pas pertinentes pour la question) je crois que j'ai fait suffisamment de travail en tant qu'utilisateur ci-dessous a été en mesure de répondre à ma question. Pouvez vous s'il vous plaît supprimer votre downvote parce que je ne crois pas qu'il est juste d'être downvoted pour faire quelque chose, et aussi pour ne pas le faire (écrire trop/ écriture plus courte, réponse) si vous estimez que j'ai fait quelque chose de vraiment impardonnable, je vous invite à me pm si je peux essayer de m'expliquer
  • Mon downvote n'était pas basé sur vos précédentes réponses. J'ai simplement constaté qu'il est très difficile, ce qui est l'un des deux critères de sélection pour downvoting. Notez que même si vous avez obtenu une réponse commence par "je suis très confus par votre question". En tout cas, je vois que vous avez mis à jour la question avec plus de détails, j'ai donc supprimé le downvote. Sur une note un peu différente, je compte @user2140261 quand ils disent qu'il y a probablement une BIEN meilleure solution. Bonne chance avec votre code!
  • désolé de vous déranger mais je me demandais si vous pourriez retirer votre voix que j'ai édité ma question pour le rendre plus clair... je suis nouveau sur le site donc je ne sais pas le protocole et a essayé d'être bref pour le rendre moins pénible à lire
  • Désolé, mais aucune de la voix sont de moi.