OVH Cloud OVH Cloud

Nb caractères dans une instruction VBA

4 réponses
Avatar
Eric RENAUD
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.

4 réponses

Avatar
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.
Avatar
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.


.



Avatar
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.




Avatar
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.

Il y a ceci:


'
http://groups.google.com/groups?hl=fr&lr=&ie=UTF-8&oe=UTF8&threadm>5e9f10.0112171316.189ed6d0%40posting.google.com&rnum=1&prev=/groups%3Fas_q%3DTypeFunction%26ie%3DUTF-8%26oe%3DUTF8%26as_ugroup%3D*excel*%26lr%3D%26hl%3Dfr

Option Base 1

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.