OVH Cloud OVH Cloud

Declaration variable String dynamique

3 réponses
Avatar
peron.pub
Bonjour,

J'utilise une variable de type String dans une macro. Malheureusement
celle-ci arrive rapidement a saturation (c'est a dire a plus de 255
caractères).

D'apres l'aide en ligne Je cite
"Il existe deux types de chaînes : les chaines de longueur variable et
les chaînes de longueur fixe.
Les chaines de longueur variable peuvent contenir environ 2 milliards
(2^31) de caractères.
Les chaines de longueur fixe peuvent contenir de 1 à environ 64 Ko
(2^16) de caractères. "

Comment faire pour declarer une chaine de longueur variable et
pourvoir stocker plus de 255 caractères dedans ?

D'avance merci,

JL

3 réponses

Avatar
Daniel
Bonjour.
2^16 = 65536, pas 255
Cordialement.
Daniel
"jl" a écrit dans le message de news:

Bonjour,

J'utilise une variable de type String dans une macro. Malheureusement
celle-ci arrive rapidement a saturation (c'est a dire a plus de 255
caractères).

D'apres l'aide en ligne Je cite
"Il existe deux types de chaînes : les chaines de longueur variable et
les chaînes de longueur fixe.
Les chaines de longueur variable peuvent contenir environ 2 milliards
(2^31) de caractères.
Les chaines de longueur fixe peuvent contenir de 1 à environ 64 Ko
(2^16) de caractères. "

Comment faire pour declarer une chaine de longueur variable et
pourvoir stocker plus de 255 caractères dedans ?

D'avance merci,

JL


Avatar
Daniel
J'ai testé le code suivant et je plante en "mémoire insuffisante" :
Sub Test()
Dim Var As String
Do While Len(Var) < 1000000000
Var = [A3] + Var + Var
Nb = Len(Var)
Loop
MsgBox Nb
End Sub
Auparavant j'arrive à 100 000 000 caractères sans problème.
Cordialement.
Daniel
"jl" a écrit dans le message de news:

Bonjour,

J'utilise une variable de type String dans une macro. Malheureusement
celle-ci arrive rapidement a saturation (c'est a dire a plus de 255
caractères).

D'apres l'aide en ligne Je cite
"Il existe deux types de chaînes : les chaines de longueur variable et
les chaînes de longueur fixe.
Les chaines de longueur variable peuvent contenir environ 2 milliards
(2^31) de caractères.
Les chaines de longueur fixe peuvent contenir de 1 à environ 64 Ko
(2^16) de caractères. "

Comment faire pour declarer une chaine de longueur variable et
pourvoir stocker plus de 255 caractères dedans ?

D'avance merci,

JL


Avatar
MichDenis
Bonjour JL,

Il est possible dans une procédure de limiter l'espace mémoire qu'occupe une variable de type "String" en limitant à l'avance
qu'elle est le nombre de caractères que la variable pourra contenir. Pour ce faire, nous utilisons la syntaxe suivane :

Dim A As String * 65535

Tu peux substituer la valeur de ton choix entre 1 et 65535 et tu auras une variable de type string de longueur variable.

au delà de 65535 , la variable est de longueur fixe et n'accepte plus un choix déterminé de caractère à l'avance


Et tu peux faire ce petit test sur une variable string de longueur variable :

Dim A As String * 1
A = "toto"
MsgBox A

A = "t" le reste de la chaîne a été coupé puisque la variable A ne peut contenir qu'un caractère défini lors de sa déclaration.


Salutations!


"jl" a écrit dans le message de news:
Bonjour,

J'utilise une variable de type String dans une macro. Malheureusement
celle-ci arrive rapidement a saturation (c'est a dire a plus de 255
caractères).

D'apres l'aide en ligne Je cite
"Il existe deux types de chaînes : les chaines de longueur variable et
les chaînes de longueur fixe.
Les chaines de longueur variable peuvent contenir environ 2 milliards
(2^31) de caractères.
Les chaines de longueur fixe peuvent contenir de 1 à environ 64 Ko
(2^16) de caractères. "

Comment faire pour declarer une chaine de longueur variable et
pourvoir stocker plus de 255 caractères dedans ?

D'avance merci,

JL