Supprimer la valeur d'une cellule mais conserver la formule
oo7jb5
Messages postés45Date d'inscriptionjeudi 8 mars 2007StatutMembreDernière intervention 3 mars 2010
-
3 mars 2010 à 15:24
r1r2
Messages postés22Date d'inscriptionmardi 23 janvier 2007StatutMembreDernière intervention31 mars 2010
-
5 mars 2010 à 12:34
Bonjour,
je dispose d'un modèle Excel permettant de faire du contrôle de factures. J'aimerais parfois être en mesure de réinitialiser toute la feuille, càd mettre une chaine vide dans toutes les cellules variables. Pour les cellules qui ne possèdent pas de formule, pas de soucis, mais pour les autres c'est une autre paire de manches.
Pour ces dernières, j'ai tenté la méthode bourrine, à savoir supprimer la valeur (Value "") puis réaffecter la formule à la cellule (Formula "=SI...")
Problème, j'ai presque 40 formules et le debugger s'arrête sur une bonne dizaine... avec un vieux message énigmatique : "Erreur définie par l'application ou par l'objet" !
Deux questions donc :
- Y'a t'il un moyen plus simple pour faire ce genre de choses ?
- Pourquoi ma méthode, aussi peu optimisée soit-elle, ne marche pas ?
un exemple de ligne qui ne passe pas :
Worksheets("Contrôle").Range("B15").FormulaLocal = "=SI($F$2="";"";SI(RECHERCHEV($F$2;'D:\[BDD.xls]Signés_Actifs'!$1:$65536;33;FAUX)="";""Avertissement"";RECHERCHEV($F$2;'D:\[BDD.xls]Signés_Actifs'!$1:$65536;33;FAUX)))"
r1r2
Messages postés22Date d'inscriptionmardi 23 janvier 2007StatutMembreDernière intervention31 mars 2010 5 mars 2010 à 12:34
Bonjour,
Si dans une plage de cellules tu veux réinitialiser celles qui ne contiennent pas de formule, tu peux utiliser quelque chose du type (en supposant que maplage fasse référence à une plage de cellules) :
pour réinitialiser les cellules contenant des nombres ou du texte.
Cette instruction VBA correspond dans Excel à : menu 'Edition' / 'Atteindre' (ou CTRL+T) puis 'Cellules...' et option 'Constantes'.
En espérant que cela puisse t'aider...
PS : je pense que ton erreur sur la formule vient d'un problème de doubles cotes.
Essaie avec Worksheets("Contrôle").Range("B15").FormulaLocal = "=SI($F$2="";"";SI(RECHERCHEV($F$2;'D:\[BDD.xls]Signés_Actifs'!$1:$65536;33;FAUX)="""";""Avertissement"";RECHERCHEV($F$2;'D:\[BDD.xls]Signés_Actifs'!$1:$65536;33;FAUX)))"