VBA Excel : Cells.formula [Fermé]

Signaler
Messages postés
8
Date d'inscription
mardi 22 juillet 2008
Statut
Membre
Dernière intervention
25 juillet 2008
-
Messages postés
8
Date d'inscription
mardi 22 juillet 2008
Statut
Membre
Dernière intervention
25 juillet 2008
-
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 ^^ !

5 réponses

Messages postés
41
Date d'inscription
mercredi 15 août 2007
Statut
Membre
Dernière intervention
29 janvier 2010
28
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
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

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

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

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

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...
Messages postés
8
Date d'inscription
mardi 22 juillet 2008
Statut
Membre
Dernière intervention
25 juillet 2008

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'
Messages postés
8
Date d'inscription
mardi 22 juillet 2008
Statut
Membre
Dernière intervention
25 juillet 2008

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="",""""),"" />"","""")))"