Bonjour,
je souhaite utiliser l'enregistreur de macro pour enregistrer une formule que j'ai tapé sur Excel(la formule est très longue):
Et ca me met:
Impossible d'enregistrer
je ne comprends pas?
Comment faire
Merci
Bonjour,
je souhaite utiliser l'enregistreur de macro pour enregistrer une formule que j'ai tapé sur Excel(la formule est très longue):
Et ca me met:
Impossible d'enregistrer
je ne comprends pas?
Comment faire
Merci
Bonjour,
Question bête mais, au hasard :
as-tu libérer la cellule ? c.a.d. le curseur ne doit pas être dans la fenêtre des formules
ou une autre macro est en cours...
Cordialement,
Dom
_____________________________________________
Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
pensez à cliquer sur :resolu: si votre problème l'est
Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)
Merci de m'avoir lu, mais oui j'ai libéré la cellule
donc c pas ca
n'est ce pas lié à la longueur de la formule?n'y aurait il pas une option à cocher sous Excel ou qqchose????, pour une formule plus courte ca marche très bien
Merci
Écris ta formule sans l'enregistreur de macro.
Sélectionne ta cellule contenant la formule.
Lance cette macro (sur le module de ta feuille)
sur la fenêtre exécution de l'éditeur vba, tu récupèrera la syntaxe de ta formule
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Public Sub xxx() Debug.Print ActiveCell.Formula End Sub
j'avaoue que je ne comprends pas tout
sur la fenêtre exécution de l'éditeur vba??? c ou je ne vois pas
Merci
dans Affichage Fenetre Execution
Cordialement,
Dom
_____________________________________________
Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
pensez à cliquer sur :resolu: si votre problème l'est
Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)
Merci pour votre aide
Je n'arrive pas à la laisser sur une seule ligne dans mon module VBA(je crois qu'elle est trop longue c peut etre pour ca que que l'enregistreur de macro refusait de la lire) je mets donc espace_ pour aller à la ligne pour couper la formule en 3 mais la formule s'affiche en rouge et m'affiche:
Code : Sélectionner tout - Visualiser dans une fenêtre à part =IF(ISBLANK(CI1042),"",IF(COUNTIF(AM1042:CI1042,5)=1,IF(AND(SUMPRODUCT((OFFSET(AM1042:CI1042,,MATCH(5,AM1042:CI1042,0),,COUNTA(AM1042:CI1042)-MATCH(5,AM1042:CI1042,0))=-1)*1)=0,SUMPRODUCT((OFFSET(AM1042:CI1042,,MATCH(5,AM1042:CI1042,0),,COUNTA(AM1042:CI1042)-MATCH(5,AM1042:CI1042,0))=1)*1)=0),1,0),0))
Erreur de compilation:
Attendu : fin d'instruction
Quelqun aurait une idée??
Merci encore
Bonjour
C'est pas la longueur de la formule mais plus tôt il fallait dédoubler les "
Code : Sélectionner tout - Visualiser dans une fenêtre à part Range("C1").Formula = "=IF(ISBLANK(CI1042),"""",IF(COUNTIF(AM1042:CI1042,5)=1,IF(AND(SUMPRODUCT((OFFSET(AM1042:CI1042,,MATCH(5,AM1042:CI1042,0),,COUNTA(AM1042:CI1042)-MATCH(5,AM1042:CI1042,0))=-1)*1)=0,SUMPRODUCT((OFFSET(AM1042:CI1042,,MATCH(5,AM1042:CI1042,0),,COUNTA(AM1042:CI1042)-MATCH(5,AM1042:CI1042,0))=1)*1)=0),1,0),0))"
j'ai dedoublé mais vba me mets toujours une partie de la formule à la ligne suivante et me l'affiche en rouge,
Si on la coupe en deux ou trois la bonne syntaxe pour passer à la ligne ca serait??(j'ai essayé espace_ mais ce ne marche pas)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Range("C1").Formula = "=IF(ISBLANK(CI1042),"""",IF(COUNTIF(AM1042:CI1042,5)=1,IF(AND(SUMPRODUCT((OFFSET(AM1042:CI1042,,MATCH(5,AM1042:CI1042,0),,COUNTA(AM1042:CI1042)-MATCH(5,AM1042:CI1042,0))=-1)*1)=0,SUMPRODUCT((OFFSET(AM1042:CI1042,,MATCH(5,AM1042:CI1042,0),,COUNTA(AM1042:CI1042)-MATCH(5,AM1042:CI1042,0))=1)*1)=0),1,0),0))"
Merci
Bon, j'avais testé sur mon Excel 2007, la précédente proposition passait sans problème.
Sinon, réessaies ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Range("C1").Formula = _ "=IF(ISBLANK(CI1042),"""",IF(COUNTIF(AM1042:CI1042,5)=1,IF(AND(SUMPRODUCT((OFFSET(AM1042:CI1042,,MATCH(5,AM1042:CI1042,0),,COUNTA(AM1042:CI1042)-MATCH(5,AM1042:CI1042,0))=-1)*1)=0,SUMPRODUCT((OFFSET(AM1042:CI1042,,MATCH(5,AM1042:CI1042,0),,COUNTA(AM1042:CI1042)-MATCH(5,AM1042:CI1042,0))=1)*1)=0),1,0),0))"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Dim Frm As String Frm = "=IF(ISBLANK(CI1042),"""",IF(COUNTIF(AM1042:CI1042,5)=1," Frm = Frm & "IF(AND(SUMPRODUCT((OFFSET(AM1042:CI1042,," Frm = Frm & "MATCH(5,AM1042:CI1042,0),,COUNTA(AM1042:CI1042)" Frm = Frm & "-MATCH(5,AM1042:CI1042,0))=-1)*1)=0," Frm = Frm & "SUMPRODUCT((OFFSET(AM1042:CI1042,,MATCH(5,AM1042:CI1042,0),," Frm = Frm & "COUNTA(AM1042:CI1042)-MATCH(5,AM1042:CI1042,0))=1)*1)=0),1,0),0))" Range("C1").Formula = Frm
Partager