J'ai une longue formule que je veux enregistrer sous VBA.
Il me la tronque lors de l'enregistrement. Il semble que la limite soit de
255 caractères.
Est-ce bien cela et existe t'il une astuce pour passer outre cette limite.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour Éric,
Est-ce que tu veux dire que ceci ne te renvoie pas toute la formule inscrite en A1
Dim Formule As String
'Pour obtenir la formule dans la version 'française tel que saisit dans la cellule Formule = Range("A1").FormulaLocal
'La formule est traduite en anglais Formule = Range("A1").Formula
Salutations!
"Eric RENAUD" a écrit dans le message de news:% Bonjour,
J'ai une longue formule que je veux enregistrer sous VBA. Il me la tronque lors de l'enregistrement. Il semble que la limite soit de 255 caractères. Est-ce bien cela et existe t'il une astuce pour passer outre cette limite.
D'avance merci.
Bonjour Éric,
Est-ce que tu veux dire que ceci ne te renvoie pas toute la formule inscrite en A1
Dim Formule As String
'Pour obtenir la formule dans la version
'française tel que saisit dans la cellule
Formule = Range("A1").FormulaLocal
'La formule est traduite en anglais
Formule = Range("A1").Formula
Salutations!
"Eric RENAUD" <erenaud@normandet.fr> a écrit dans le message de news:%23KDcH1JSEHA.2704@TK2MSFTNGP10.phx.gbl...
Bonjour,
J'ai une longue formule que je veux enregistrer sous VBA.
Il me la tronque lors de l'enregistrement. Il semble que la limite soit de
255 caractères.
Est-ce bien cela et existe t'il une astuce pour passer outre cette limite.
Est-ce que tu veux dire que ceci ne te renvoie pas toute la formule inscrite en A1
Dim Formule As String
'Pour obtenir la formule dans la version 'française tel que saisit dans la cellule Formule = Range("A1").FormulaLocal
'La formule est traduite en anglais Formule = Range("A1").Formula
Salutations!
"Eric RENAUD" a écrit dans le message de news:% Bonjour,
J'ai une longue formule que je veux enregistrer sous VBA. Il me la tronque lors de l'enregistrement. Il semble que la limite soit de 255 caractères. Est-ce bien cela et existe t'il une astuce pour passer outre cette limite.
D'avance merci.
D.Lair
Bonjour, Il semble bien que la limite soit 255 caractères (sinon EXCEL renvoie le message "Formule trop longue"). Pour s'en sortir, il faudrait "éclater" la formule sur plusieurs cellules (contenant des sous-éléments), en pratiquant selon le principe suivant:
Dans C3, initialement, on aurait eu par exemple =SI(ET(A1="TOTO";B1="TUTU");"C'EST BON POUR LES DEUX";"TITI OU TUTU SEUL, OU AUCUN DES 2")
à remplacer par :
mettre dans A2 : =SI(A1="TOTO";1;0) mettre dans B2 : =SI(B1="TUTU";1;0) puis dans C3 : =SI(A2*B2=1;"C'EST BON";"") (en raccourcissant aussi les chaines "texte")
A adapter à chaque cas. Bon courage. DL
-----Message d'origine----- Bonjour,
J'ai une longue formule que je veux enregistrer sous VBA. Il me la tronque lors de l'enregistrement. Il semble que la limite soit de
255 caractères. Est-ce bien cela et existe t'il une astuce pour passer outre cette limite.
D'avance merci.
.
Bonjour,
Il semble bien que la limite soit 255 caractères (sinon
EXCEL renvoie le message "Formule trop longue").
Pour s'en sortir, il faudrait "éclater" la formule sur
plusieurs cellules (contenant des sous-éléments), en
pratiquant selon le principe suivant:
Dans C3, initialement, on aurait eu par exemple
=SI(ET(A1="TOTO";B1="TUTU");"C'EST BON POUR LES
DEUX";"TITI OU TUTU SEUL, OU AUCUN DES 2")
à remplacer par :
mettre dans A2 : =SI(A1="TOTO";1;0)
mettre dans B2 : =SI(B1="TUTU";1;0)
puis dans C3 :
=SI(A2*B2=1;"C'EST BON";"")
(en raccourcissant aussi les chaines "texte")
A adapter à chaque cas. Bon courage.
DL
-----Message d'origine-----
Bonjour,
J'ai une longue formule que je veux enregistrer sous VBA.
Il me la tronque lors de l'enregistrement. Il semble que
la limite soit de
255 caractères.
Est-ce bien cela et existe t'il une astuce pour passer
outre cette limite.
Bonjour, Il semble bien que la limite soit 255 caractères (sinon EXCEL renvoie le message "Formule trop longue"). Pour s'en sortir, il faudrait "éclater" la formule sur plusieurs cellules (contenant des sous-éléments), en pratiquant selon le principe suivant:
Dans C3, initialement, on aurait eu par exemple =SI(ET(A1="TOTO";B1="TUTU");"C'EST BON POUR LES DEUX";"TITI OU TUTU SEUL, OU AUCUN DES 2")
à remplacer par :
mettre dans A2 : =SI(A1="TOTO";1;0) mettre dans B2 : =SI(B1="TUTU";1;0) puis dans C3 : =SI(A2*B2=1;"C'EST BON";"") (en raccourcissant aussi les chaines "texte")
A adapter à chaque cas. Bon courage. DL
-----Message d'origine----- Bonjour,
J'ai une longue formule que je veux enregistrer sous VBA. Il me la tronque lors de l'enregistrement. Il semble que la limite soit de
255 caractères. Est-ce bien cela et existe t'il une astuce pour passer outre cette limite.
D'avance merci.
.
Jacky
Bonjour
Longueur maximale du contenu d'une formule 1 024 caractères(excel 97)
Va voir l'aide à "limite d'Excel"
Salutations JJ
"Eric RENAUD" a écrit dans le message de news:%
Bonjour,
J'ai une longue formule que je veux enregistrer sous VBA. Il me la tronque lors de l'enregistrement. Il semble que la limite soit de
255 caractères. Est-ce bien cela et existe t'il une astuce pour passer outre cette limite.
D'avance merci.
Bonjour
Longueur maximale du contenu d'une formule 1 024 caractères(excel 97)
Va voir l'aide à "limite d'Excel"
Salutations
JJ
"Eric RENAUD" <erenaud@normandet.fr> a écrit dans le message de
news:%23KDcH1JSEHA.2704@TK2MSFTNGP10.phx.gbl...
Bonjour,
J'ai une longue formule que je veux enregistrer sous VBA.
Il me la tronque lors de l'enregistrement. Il semble que la limite soit
de
255 caractères.
Est-ce bien cela et existe t'il une astuce pour passer outre cette limite.
Private Function SK_String(s As String) Dim s2 As String Dim c As String * 1 Dim i As Integer s2 = "" For i = 1 To Len(s) c = Mid(s, i, 1) Select Case c Case "+", "^", "%", "(", ")", "~": s2 = s2 & "{" & c & "}" Case Else: s2 = s2 & c End Select Next SK_String = s2 End Function
Public Sub TypeFunction(myRange As Range, Funct As String) Dim myStr1 As String Dim myStr2 As String myStr1 = "{F5}" & SK_String(myRange.Address) & "~" myStr2 = SK_String(Funct) & "^+~" SendKeys myStr1, True SendKeys myStr2, True End Sub
Salutations,
Daniel M.
Salut Éric,
J'ai une longue formule que je veux enregistrer sous VBA.
Il me la tronque lors de l'enregistrement. Il semble que la limite soit de
255 caractères.
Si c'est une matricielle, c'est bien le cas.
Est-ce bien cela et existe t'il une astuce pour passer outre cette limite.
Private Function SK_String(s As String)
Dim s2 As String
Dim c As String * 1
Dim i As Integer
s2 = ""
For i = 1 To Len(s)
c = Mid(s, i, 1)
Select Case c
Case "+", "^", "%", "(", ")", "~": s2 = s2 & "{" & c & "}"
Case Else: s2 = s2 & c
End Select
Next
SK_String = s2
End Function
Public Sub TypeFunction(myRange As Range, Funct As String)
Dim myStr1 As String
Dim myStr2 As String
myStr1 = "{F5}" & SK_String(myRange.Address) & "~"
myStr2 = SK_String(Funct) & "^+~"
SendKeys myStr1, True
SendKeys myStr2, True
End Sub
Private Function SK_String(s As String) Dim s2 As String Dim c As String * 1 Dim i As Integer s2 = "" For i = 1 To Len(s) c = Mid(s, i, 1) Select Case c Case "+", "^", "%", "(", ")", "~": s2 = s2 & "{" & c & "}" Case Else: s2 = s2 & c End Select Next SK_String = s2 End Function
Public Sub TypeFunction(myRange As Range, Funct As String) Dim myStr1 As String Dim myStr2 As String myStr1 = "{F5}" & SK_String(myRange.Address) & "~" myStr2 = SK_String(Funct) & "^+~" SendKeys myStr1, True SendKeys myStr2, True End Sub