Rechercher : dans
Par :

VBA Excel : Cells.formula

Dernière réponse le 22 jui 2008 à 17:43:05 Bushinone, le 22 jui 2008 à 15:54:01 
 Signaler ce message aux modérateurs

Bonjour tout le monde,
j'essaie, au corus d'une macro, d'inscrire une formule dans une cellule, puis de la repartir dans une range donnée. Je procède comme ceci :

ThisWorkbook.Sheets(2).Activate
Cells(2, 2).Formula = "=SI(CHERCHE("permission";SUPPRESPACE(A2))>4;"";SUPPRESPACE(SUBSTITUE(SUBSTITUE(A2;"<permission name=";"");" />";"")))"
Cells(2, 2).AutoFill Destination:=Range("B3:B999"), Type:=xlFillDefault

Or, il m'affiche une erreur : attente d'instruction.

Si quelqu'un peut m'aider à résoudre mon problème, je lui en serait très reconnaissant ^^ !

Configuration: Windows XP
Firefox 3.0.1

1

CIAnure, le 22 jui 2008 à 15:58:54

Sur quel ligne, l'erreur est levée?

L'erreur : attente d'instruction c'est pour signaler un manque de paramètre si mes souvenirs sont bons.
Vérifie quand même tes parenthèses aussi.
Merci, Amicalement, CIAnure

Répondre à CIAnure

2

Bushinone, le 22 jui 2008 à 16:31:13

Oui, c'est ce que j'ai pensé aussi. J'ai vérifié plusieurs fois et ce n'est pas les parenthèses.
Le process s'arrête sur 'permission'

Répondre à Bushinone

3

cbia, le 22 jui 2008 à 16:46:13
  • +1

Essaie avec 2 double-côte avant permission au lieu de 1 seule:

Cells(2, 2).Formula = "=SI(CHERCHE(""permission"";SUPP..........

Répondre à cbia

4

cbia, le 22 jui 2008 à 16:57:29
  • +1

Exemple de formule qui marche :

Cells(2, 2).Formula = "=IF(SEARCH(""mi"",""permission"",1)=4,0,1)"

Quand tu cherches à coder une instruction en VBA je te recommande de "enregistrer une macro en automatique"
faire ta manip dans ton fichier, arrêter la macro
puis regarder ce qu'il a écrit tout seul et de t'en inspirer dans ton propre code.
Ca aide beaucoup pour la syntaxe...

Répondre à cbia

5

 Bushinone, le 22 jui 2008 à 17:43:05

Merci beaucoup ! Ca fonctionne :
ThisWorkbook.Sheets(2).Activate
Range("B2:B999").FormulaR1C1 = _
"=IF(SEARCH(""p"",TRIM(RC[-1]))>2,"""",TRIM(SUBSTITUTE(SUBSTITUTE(RC[-1],""<permission name="",""""),"" />"","""")))"

Répondre à Bushinone
Collection CommentÇaMarche.net