Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Autres Problème de " dans Formulalocal en vba

jacsimo

XLDnaute Nouveau
Bonjour.
J'ai une formule de cellule qui fonctionne correctement dans Excel :
=SI(ESTVIDE(LC(9));;"-Montant "&LC(9)&" ")
Si la cellule de même ligne à 9 colonnes de distance est vide, je ne fais rien, si elle n'est pas vide, je recopie son contenu dans la cellule contenant la formule en le faisant précéder par -Montant et en le faisant suivre par un espace (en fait, j'ai plusieurs formules analogues qui se suivent, liées par & et l'espace est nécessaire pour séparer les résultats les uns des autres.
Je voudrais générer cette formule par VBA dans un certain nombre de cellules et j'essaie de le faire par formulalocal. Le simple copier/coller de la formule de cellule dans FormulaLocal, comme suit :
Range (cellule de formule).FormulaLocal = "=SI(ESTVIDE(LC(9));;"-Montant "&LC(9)&" ")"
ne passe pas et tout ce que j'ai pu essayer de double " ou de ' ou d'utilisation de variable intermédiaire ou d'utilisation de chr(34) à la place de " plante à chaque fois, je n'ai visiblement pas trouvé la bonne écriture qui ne doit pas être si compliquée.
Je me dépanne en écrivant la formule dans une cellule hors champ et en la recopiant là où j'en ai besoin par PasteSpecial, mais j'aimerais bien comprendre quelle est la bonne syntaxe.
Quelqu'un pourrait-il m'aider à la comprendre ?
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
Vous devez doubler les guillemets à reproduire dans une constante String, sinon il les considère comme délimiteurs.
Donc …).FormulaR1C1Local = "=SI(ESTVIDE(LC(9));;""-Montant ""&LC(9)&"" "")"
 

jacsimo

XLDnaute Nouveau
Merci, c'est sympa d'avoir des gens compétents qui répondent si vite.
Le doublement des guillemets, qui marche effectivement, c'est une chose que je pensais avoir essayé (en premier), mais j'ai peut-être été trompé par une particularité : la formule initiale laisse la cellule de formule vide si L(9) est vide, alors que la formule chargée par VBA laisse un zéro, (toutes les cellules sont en format standard et y restent). Pas grave, je suis simplement amené à compléter la formule par 4 guillemets entre les deux points-virgules et j'obtiens le bon résultat.
Merci encore.
 

Discussions similaires

  • Question
Microsoft 365 Formule si
Réponses
2
Affichages
227
Réponses
2
Affichages
314
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…