Je souhaite créer sous VB6 des variables nom_variable0, nom_variable1, ... est les déclarer dynamiquement avec une boucle :
Dim i as Integer
For i=0 to n
'déclarer ici la variable(i) avec Dim
Next
Je n'arrive pas à déclarer ces variables constituées du mot "nom_variable" et de l'indice i, c'est à dire un nom définit par la
chaîne :
"nom_fichier" & LTrim(Str$(i))
J'ai contourné le problème avec un tableau de dimension n.
Auriez-vous une idée pour résoudre ce problème ou est-ce impossible tout simplement ?
Merci beaucoup par avance.
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
Jean-marc
teddy wrote:
Bonjour à tous,
Hello,
Je souhaite créer sous VB6 des variables nom_variable0, nom_variable1, ... est les déclarer dynamiquement avec une boucle : Dim i as Integer For i=0 to n 'déclarer ici la variable(i) avec Dim Next
Je n'arrive pas à déclarer ces variables constituées du mot "nom_variable" et de l'indice i, c'est à dire un nom définit par la chaîne : "nom_fichier" & LTrim(Str$(i))
J'ai contourné le problème avec un tableau de dimension n. Auriez-vous une idée pour résoudre ce problème ou est-ce impossible tout simplement ?
C'est impossible syntaxiquement. Ca n'aurait d'ailleurs pas d'intérêt, car ça revient strictement identique à manipuler un tableau.
Le tableau de dimensions n est donc La solution. Au besoin, on peut faire de l'allocation dynamique comme présenté dans cet article: http://faq.vb.free.fr/index.php?question3
Onpeut finalement tout faire en utilisant judicieusement Dim, Redim et Erase.
Je souhaite créer sous VB6 des variables nom_variable0,
nom_variable1, ... est les déclarer dynamiquement avec une boucle :
Dim i as Integer
For i=0 to n
'déclarer ici la variable(i) avec Dim
Next
Je n'arrive pas à déclarer ces variables constituées du mot
"nom_variable" et de l'indice i, c'est à dire un nom définit par la
chaîne : "nom_fichier" & LTrim(Str$(i))
J'ai contourné le problème avec un tableau de dimension n.
Auriez-vous une idée pour résoudre ce problème ou est-ce impossible
tout simplement ?
C'est impossible syntaxiquement. Ca n'aurait d'ailleurs pas d'intérêt,
car ça revient strictement identique à manipuler un tableau.
Le tableau de dimensions n est donc La solution. Au besoin, on
peut faire de l'allocation dynamique comme présenté dans cet
article:
http://faq.vb.free.fr/index.php?question3
Onpeut finalement tout faire en utilisant judicieusement
Dim, Redim et Erase.
Je souhaite créer sous VB6 des variables nom_variable0, nom_variable1, ... est les déclarer dynamiquement avec une boucle : Dim i as Integer For i=0 to n 'déclarer ici la variable(i) avec Dim Next
Je n'arrive pas à déclarer ces variables constituées du mot "nom_variable" et de l'indice i, c'est à dire un nom définit par la chaîne : "nom_fichier" & LTrim(Str$(i))
J'ai contourné le problème avec un tableau de dimension n. Auriez-vous une idée pour résoudre ce problème ou est-ce impossible tout simplement ?
C'est impossible syntaxiquement. Ca n'aurait d'ailleurs pas d'intérêt, car ça revient strictement identique à manipuler un tableau.
Le tableau de dimensions n est donc La solution. Au besoin, on peut faire de l'allocation dynamique comme présenté dans cet article: http://faq.vb.free.fr/index.php?question3
Onpeut finalement tout faire en utilisant judicieusement Dim, Redim et Erase.
' program "déclaration" form 1 Option Explicit Dim variable() As String Dim i As Long Sub Form_Load() ReDim variable(3) For i = 1 To 3 If i = 1 Then variable(i) = i & " bonjour" If i > 1 Then variable(i) = i & " bonjours" Next i MsgBox variable(1) & vbLf & variable(2) & vbLf & variable(3) End Sub ' fin load ' processeur 32, 64 bits = type LONG (i as LONG) ' testé !
-- Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ " teddy" a écrit dans le message de news:
| Bonjour à tous, | | Je souhaite créer sous VB6 des variables nom_variable0, nom_variable1, ... est les déclarer dynamiquement avec une boucle : | | Dim i as Integer | For i=0 to n | 'déclarer ici la variable(i) avec Dim | Next | | Je n'arrive pas à déclarer ces variables constituées du mot "nom_variable" et de l'indice i, c'est à dire un nom définit par la | chaîne : | "nom_fichier" & LTrim(Str$(i)) | | J'ai contourné le problème avec un tableau de dimension n. | Auriez-vous une idée pour résoudre ce problème ou est-ce impossible tout simplement ? | Merci beaucoup par avance. | | Ted |
' program "déclaration" form 1
Option Explicit
Dim variable() As String
Dim i As Long
Sub Form_Load()
ReDim variable(3)
For i = 1 To 3
If i = 1 Then variable(i) = i & " bonjour"
If i > 1 Then variable(i) = i & " bonjours"
Next i
MsgBox variable(1) & vbLf & variable(2) & vbLf & variable(3)
End Sub ' fin load
' processeur 32, 64 bits = type LONG (i as LONG)
' testé !
--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
" teddy" <teddy@wanadoo.fr> a écrit dans le message de news:
uUGfNFfDJHA.1008@TK2MSFTNGP02.phx.gbl...
| Bonjour à tous,
|
| Je souhaite créer sous VB6 des variables nom_variable0, nom_variable1, ...
est les déclarer dynamiquement avec une boucle :
|
| Dim i as Integer
| For i=0 to n
| 'déclarer ici la variable(i) avec Dim
| Next
|
| Je n'arrive pas à déclarer ces variables constituées du mot "nom_variable"
et de l'indice i, c'est à dire un nom définit par la
| chaîne :
| "nom_fichier" & LTrim(Str$(i))
|
| J'ai contourné le problème avec un tableau de dimension n.
| Auriez-vous une idée pour résoudre ce problème ou est-ce impossible tout
simplement ?
| Merci beaucoup par avance.
|
| Ted
|
' program "déclaration" form 1 Option Explicit Dim variable() As String Dim i As Long Sub Form_Load() ReDim variable(3) For i = 1 To 3 If i = 1 Then variable(i) = i & " bonjour" If i > 1 Then variable(i) = i & " bonjours" Next i MsgBox variable(1) & vbLf & variable(2) & vbLf & variable(3) End Sub ' fin load ' processeur 32, 64 bits = type LONG (i as LONG) ' testé !
-- Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ " teddy" a écrit dans le message de news:
| Bonjour à tous, | | Je souhaite créer sous VB6 des variables nom_variable0, nom_variable1, ... est les déclarer dynamiquement avec une boucle : | | Dim i as Integer | For i=0 to n | 'déclarer ici la variable(i) avec Dim | Next | | Je n'arrive pas à déclarer ces variables constituées du mot "nom_variable" et de l'indice i, c'est à dire un nom définit par la | chaîne : | "nom_fichier" & LTrim(Str$(i)) | | J'ai contourné le problème avec un tableau de dimension n. | Auriez-vous une idée pour résoudre ce problème ou est-ce impossible tout simplement ? | Merci beaucoup par avance. | | Ted |
teddy
J'évoquais en fait dans ce problème quelque chose qui fait penser soit à la valeur d'1 variable soit à 1 nom qui fait référence à la valeur de cette variable (1 sorte de "pointeur").
Le problème se pose aussi pour redimensionner un tableau : Redim n'accepte pas autre chose qu'une valeur numérique et non 1 variable contenant cette valeur numérique, ce qui n'est pas toujours pratique.
En tout cas, merci à tous pour ces précisions.
Ted
"Jean-marc" a écrit dans le message de news:48bed7c7$0$2861$
teddy wrote:
Bonjour à tous,
Hello,
Je souhaite créer sous VB6 des variables nom_variable0, nom_variable1, ... est les déclarer dynamiquement avec une boucle : Dim i as Integer For i=0 to n 'déclarer ici la variable(i) avec Dim Next
Je n'arrive pas à déclarer ces variables constituées du mot "nom_variable" et de l'indice i, c'est à dire un nom définit par la chaîne : "nom_fichier" & LTrim(Str$(i))
J'ai contourné le problème avec un tableau de dimension n. Auriez-vous une idée pour résoudre ce problème ou est-ce impossible tout simplement ?
C'est impossible syntaxiquement. Ca n'aurait d'ailleurs pas d'intérêt, car ça revient strictement identique à manipuler un tableau.
Le tableau de dimensions n est donc La solution. Au besoin, on peut faire de l'allocation dynamique comme présenté dans cet article: http://faq.vb.free.fr/index.php?question3
Onpeut finalement tout faire en utilisant judicieusement Dim, Redim et Erase.
J'évoquais en fait dans ce problème quelque chose qui fait penser soit à la valeur d'1 variable soit à 1 nom qui fait référence à la
valeur de cette variable (1 sorte de "pointeur").
Le problème se pose aussi pour redimensionner un tableau : Redim n'accepte pas autre chose qu'une valeur numérique et non 1
variable contenant cette valeur numérique, ce qui n'est pas toujours pratique.
En tout cas, merci à tous pour ces précisions.
Ted
"Jean-marc" <jm@nowhere.invalid> a écrit dans le message de news:48bed7c7$0$2861$ba620e4c@news.skynet.be...
teddy wrote:
Bonjour à tous,
Hello,
Je souhaite créer sous VB6 des variables nom_variable0,
nom_variable1, ... est les déclarer dynamiquement avec une boucle :
Dim i as Integer
For i=0 to n
'déclarer ici la variable(i) avec Dim
Next
Je n'arrive pas à déclarer ces variables constituées du mot
"nom_variable" et de l'indice i, c'est à dire un nom définit par la
chaîne : "nom_fichier" & LTrim(Str$(i))
J'ai contourné le problème avec un tableau de dimension n.
Auriez-vous une idée pour résoudre ce problème ou est-ce impossible
tout simplement ?
C'est impossible syntaxiquement. Ca n'aurait d'ailleurs pas d'intérêt,
car ça revient strictement identique à manipuler un tableau.
Le tableau de dimensions n est donc La solution. Au besoin, on
peut faire de l'allocation dynamique comme présenté dans cet
article:
http://faq.vb.free.fr/index.php?question3
Onpeut finalement tout faire en utilisant judicieusement
Dim, Redim et Erase.
J'évoquais en fait dans ce problème quelque chose qui fait penser soit à la valeur d'1 variable soit à 1 nom qui fait référence à la valeur de cette variable (1 sorte de "pointeur").
Le problème se pose aussi pour redimensionner un tableau : Redim n'accepte pas autre chose qu'une valeur numérique et non 1 variable contenant cette valeur numérique, ce qui n'est pas toujours pratique.
En tout cas, merci à tous pour ces précisions.
Ted
"Jean-marc" a écrit dans le message de news:48bed7c7$0$2861$
teddy wrote:
Bonjour à tous,
Hello,
Je souhaite créer sous VB6 des variables nom_variable0, nom_variable1, ... est les déclarer dynamiquement avec une boucle : Dim i as Integer For i=0 to n 'déclarer ici la variable(i) avec Dim Next
Je n'arrive pas à déclarer ces variables constituées du mot "nom_variable" et de l'indice i, c'est à dire un nom définit par la chaîne : "nom_fichier" & LTrim(Str$(i))
J'ai contourné le problème avec un tableau de dimension n. Auriez-vous une idée pour résoudre ce problème ou est-ce impossible tout simplement ?
C'est impossible syntaxiquement. Ca n'aurait d'ailleurs pas d'intérêt, car ça revient strictement identique à manipuler un tableau.
Le tableau de dimensions n est donc La solution. Au besoin, on peut faire de l'allocation dynamique comme présenté dans cet article: http://faq.vb.free.fr/index.php?question3
Onpeut finalement tout faire en utilisant judicieusement Dim, Redim et Erase.
Le problème se pose aussi pour redimensionner un tableau : Redim n'accepte pas autre chose qu'une valeur numérique et non 1 variable contenant cette valeur numérique, ce qui n'est pas toujours pratique.
???
A moins d'avoir mal compris compris le problème, Redim accepte bien une variable comme paramètre, sinon il ne servirait pas à grand chose, Dim suffirait ;-) :
Dim tbl() As String Dim n As Integer
n = 2 * 5 ReDim tbl(3 * n) As String MsgBox "Indice tableau de : " & LBound(tbl) & " à " & UBound(tbl)
--
Cordialement,
Jacques.
Bonjour,
teddy a écrit :
[...]
Le problème se pose aussi pour redimensionner un tableau : Redim
n'accepte pas autre chose qu'une valeur numérique et non 1 variable
contenant cette valeur numérique, ce qui n'est pas toujours pratique.
???
A moins d'avoir mal compris compris le problème, Redim accepte bien une
variable comme paramètre, sinon il ne servirait pas à grand chose, Dim
suffirait ;-) :
Dim tbl() As String
Dim n As Integer
n = 2 * 5
ReDim tbl(3 * n) As String
MsgBox "Indice tableau de : " & LBound(tbl) & " à " & UBound(tbl)
Le problème se pose aussi pour redimensionner un tableau : Redim n'accepte pas autre chose qu'une valeur numérique et non 1 variable contenant cette valeur numérique, ce qui n'est pas toujours pratique.
???
A moins d'avoir mal compris compris le problème, Redim accepte bien une variable comme paramètre, sinon il ne servirait pas à grand chose, Dim suffirait ;-) :
Dim tbl() As String Dim n As Integer
n = 2 * 5 ReDim tbl(3 * n) As String MsgBox "Indice tableau de : " & LBound(tbl) & " à " & UBound(tbl)
--
Cordialement,
Jacques.
LE TROLL
Voici quelques variantes des possbilités offertes, mais normalement une varible s'appelle par son non, ce qui livre son contenu
Option Explicit Private Type groupe nom1 As Long nom2 As String End Type Dim nom As groupe '
Sub Form_Load() Dim i As Long Dim variable() As Long Dim nom_variable() As String ReDim variable(2) ReDim nom_variable(2) variable(1) = 25 nom_variable(1) = " Cette variable s'appelle : nom_variable 1" variable(2) = 50 nom_variable(2) = " Cette variable s'appelle : nom_variable 2" For i = 1 To 2 MsgBox variable(i) & nom_variable(i) Next i Call suite End Sub
' OU
Sub suite() nom.nom1 = 75 nom.nom2 = "variable nom.nom1" With nom .nom1 = 75 .nom2 = "variable nom.nom1" End With MsgBox nom.nom1 & vbLf & nom.nom2 End Sub
------ Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ " teddy" a écrit dans le message de news:
| J'évoquais en fait dans ce problème quelque chose qui fait penser soit à la valeur d'1 variable soit à 1 nom qui fait référence à la | valeur de cette variable (1 sorte de "pointeur"). | | Le problème se pose aussi pour redimensionner un tableau : Redim n'accepte pas autre chose qu'une valeur numérique et non 1 | variable contenant cette valeur numérique, ce qui n'est pas toujours pratique. | | En tout cas, merci à tous pour ces précisions. | | Ted | | "Jean-marc" a écrit dans le message de news:48bed7c7$0$2861$ | > teddy wrote: | >> Bonjour à tous, | > | > Hello, | > | >> Je souhaite créer sous VB6 des variables nom_variable0, | >> nom_variable1, ... est les déclarer dynamiquement avec une boucle : | >> Dim i as Integer | >> For i=0 to n | >> 'déclarer ici la variable(i) avec Dim | >> Next | >> | >> Je n'arrive pas à déclarer ces variables constituées du mot | >> "nom_variable" et de l'indice i, c'est à dire un nom définit par la | >> chaîne : "nom_fichier" & LTrim(Str$(i)) | >> | >> J'ai contourné le problème avec un tableau de dimension n. | >> Auriez-vous une idée pour résoudre ce problème ou est-ce impossible | >> tout simplement ? | > | > C'est impossible syntaxiquement. Ca n'aurait d'ailleurs pas d'intérêt, | > car ça revient strictement identique à manipuler un tableau. | > | > Le tableau de dimensions n est donc La solution. Au besoin, on | > peut faire de l'allocation dynamique comme présenté dans cet | > article: | > http://faq.vb.free.fr/index.php?question3 | > | > Onpeut finalement tout faire en utilisant judicieusement | > Dim, Redim et Erase. | > | > Cordialement, | > | > -- | > Jean-marc Noury (jean_marc_n2) | > Microsoft MVP - Visual Basic | > FAQ VB: http://faq.vb.free.fr/ | > mailto: remove '_no_spam_' ; | > | > | > | > |
Voici quelques variantes des possbilités offertes, mais normalement une
varible s'appelle par son non, ce qui livre son contenu
Option Explicit
Private Type groupe
nom1 As Long
nom2 As String
End Type
Dim nom As groupe
'
Sub Form_Load()
Dim i As Long
Dim variable() As Long
Dim nom_variable() As String
ReDim variable(2)
ReDim nom_variable(2)
variable(1) = 25
nom_variable(1) = " Cette variable s'appelle : nom_variable 1"
variable(2) = 50
nom_variable(2) = " Cette variable s'appelle : nom_variable 2"
For i = 1 To 2
MsgBox variable(i) & nom_variable(i)
Next i
Call suite
End Sub
' OU
Sub suite()
nom.nom1 = 75
nom.nom2 = "variable nom.nom1"
With nom
.nom1 = 75
.nom2 = "variable nom.nom1"
End With
MsgBox nom.nom1 & vbLf & nom.nom2
End Sub
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
" teddy" <teddy@wanadoo.fr> a écrit dans le message de news:
e553sbhDJHA.3268@TK2MSFTNGP03.phx.gbl...
| J'évoquais en fait dans ce problème quelque chose qui fait penser soit à
la valeur d'1 variable soit à 1 nom qui fait référence à la
| valeur de cette variable (1 sorte de "pointeur").
|
| Le problème se pose aussi pour redimensionner un tableau : Redim
n'accepte pas autre chose qu'une valeur numérique et non 1
| variable contenant cette valeur numérique, ce qui n'est pas toujours
pratique.
|
| En tout cas, merci à tous pour ces précisions.
|
| Ted
|
| "Jean-marc" <jm@nowhere.invalid> a écrit dans le message de
news:48bed7c7$0$2861$ba620e4c@news.skynet.be...
| > teddy wrote:
| >> Bonjour à tous,
| >
| > Hello,
| >
| >> Je souhaite créer sous VB6 des variables nom_variable0,
| >> nom_variable1, ... est les déclarer dynamiquement avec une boucle :
| >> Dim i as Integer
| >> For i=0 to n
| >> 'déclarer ici la variable(i) avec Dim
| >> Next
| >>
| >> Je n'arrive pas à déclarer ces variables constituées du mot
| >> "nom_variable" et de l'indice i, c'est à dire un nom définit par la
| >> chaîne : "nom_fichier" & LTrim(Str$(i))
| >>
| >> J'ai contourné le problème avec un tableau de dimension n.
| >> Auriez-vous une idée pour résoudre ce problème ou est-ce impossible
| >> tout simplement ?
| >
| > C'est impossible syntaxiquement. Ca n'aurait d'ailleurs pas d'intérêt,
| > car ça revient strictement identique à manipuler un tableau.
| >
| > Le tableau de dimensions n est donc La solution. Au besoin, on
| > peut faire de l'allocation dynamique comme présenté dans cet
| > article:
| > http://faq.vb.free.fr/index.php?question3
| >
| > Onpeut finalement tout faire en utilisant judicieusement
| > Dim, Redim et Erase.
| >
| > Cordialement,
| >
| > --
| > Jean-marc Noury (jean_marc_n2)
| > Microsoft MVP - Visual Basic
| > FAQ VB: http://faq.vb.free.fr/
| > mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
| >
| >
| >
| >
|
Voici quelques variantes des possbilités offertes, mais normalement une varible s'appelle par son non, ce qui livre son contenu
Option Explicit Private Type groupe nom1 As Long nom2 As String End Type Dim nom As groupe '
Sub Form_Load() Dim i As Long Dim variable() As Long Dim nom_variable() As String ReDim variable(2) ReDim nom_variable(2) variable(1) = 25 nom_variable(1) = " Cette variable s'appelle : nom_variable 1" variable(2) = 50 nom_variable(2) = " Cette variable s'appelle : nom_variable 2" For i = 1 To 2 MsgBox variable(i) & nom_variable(i) Next i Call suite End Sub
' OU
Sub suite() nom.nom1 = 75 nom.nom2 = "variable nom.nom1" With nom .nom1 = 75 .nom2 = "variable nom.nom1" End With MsgBox nom.nom1 & vbLf & nom.nom2 End Sub
------ Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ " teddy" a écrit dans le message de news:
| J'évoquais en fait dans ce problème quelque chose qui fait penser soit à la valeur d'1 variable soit à 1 nom qui fait référence à la | valeur de cette variable (1 sorte de "pointeur"). | | Le problème se pose aussi pour redimensionner un tableau : Redim n'accepte pas autre chose qu'une valeur numérique et non 1 | variable contenant cette valeur numérique, ce qui n'est pas toujours pratique. | | En tout cas, merci à tous pour ces précisions. | | Ted | | "Jean-marc" a écrit dans le message de news:48bed7c7$0$2861$ | > teddy wrote: | >> Bonjour à tous, | > | > Hello, | > | >> Je souhaite créer sous VB6 des variables nom_variable0, | >> nom_variable1, ... est les déclarer dynamiquement avec une boucle : | >> Dim i as Integer | >> For i=0 to n | >> 'déclarer ici la variable(i) avec Dim | >> Next | >> | >> Je n'arrive pas à déclarer ces variables constituées du mot | >> "nom_variable" et de l'indice i, c'est à dire un nom définit par la | >> chaîne : "nom_fichier" & LTrim(Str$(i)) | >> | >> J'ai contourné le problème avec un tableau de dimension n. | >> Auriez-vous une idée pour résoudre ce problème ou est-ce impossible | >> tout simplement ? | > | > C'est impossible syntaxiquement. Ca n'aurait d'ailleurs pas d'intérêt, | > car ça revient strictement identique à manipuler un tableau. | > | > Le tableau de dimensions n est donc La solution. Au besoin, on | > peut faire de l'allocation dynamique comme présenté dans cet | > article: | > http://faq.vb.free.fr/index.php?question3 | > | > Onpeut finalement tout faire en utilisant judicieusement | > Dim, Redim et Erase. | > | > Cordialement, | > | > -- | > Jean-marc Noury (jean_marc_n2) | > Microsoft MVP - Visual Basic | > FAQ VB: http://faq.vb.free.fr/ | > mailto: remove '_no_spam_' ; | > | > | > | > |
parci
On Thu, 4 Sep 2008 00:46:32 +0200, " teddy" wrote:
J'évoquais en fait dans ce problème quelque chose qui fait penser soit à la valeur d'1 variable soit à 1 nom qui fait référence à la valeur de cette variable (1 sorte de "pointeur").
Une variable fait toujours référence à une zone en mémoire. Tu as des fonctions cachées (VarPtr, StrPtr, ObjPtr) qui te retournent l'adresses de cette zone. Mais ça ne t'avanceras pas beacoup dans ton cas.
Le problème se pose aussi pour redimensionner un tableau : Redim n'accepte pas autre chose qu'une valeur numérique et non 1 variable contenant cette valeur numérique, ce qui n'est pas toujours pratique.
Ben non :
Private Sub Test()
Dim tNoms() As String Dim nbNoms As Long
nbNoms = 10 ReDim tNoms(0 To nbNoms) As String Debug.Print UBound(tNoms)
J'évoquais en fait dans ce problème quelque chose qui fait penser soit à la valeur d'1 variable soit à 1 nom qui fait référence à la
valeur de cette variable (1 sorte de "pointeur").
Une variable fait toujours référence à une zone en mémoire. Tu as des
fonctions cachées (VarPtr, StrPtr, ObjPtr) qui te retournent
l'adresses de cette zone. Mais ça ne t'avanceras pas beacoup dans ton
cas.
Le problème se pose aussi pour redimensionner un tableau : Redim n'accepte pas autre chose qu'une valeur numérique et non 1
variable contenant cette valeur numérique, ce qui n'est pas toujours pratique.
Ben non :
Private Sub Test()
Dim tNoms() As String
Dim nbNoms As Long
nbNoms = 10
ReDim tNoms(0 To nbNoms) As String
Debug.Print UBound(tNoms)
On Thu, 4 Sep 2008 00:46:32 +0200, " teddy" wrote:
J'évoquais en fait dans ce problème quelque chose qui fait penser soit à la valeur d'1 variable soit à 1 nom qui fait référence à la valeur de cette variable (1 sorte de "pointeur").
Une variable fait toujours référence à une zone en mémoire. Tu as des fonctions cachées (VarPtr, StrPtr, ObjPtr) qui te retournent l'adresses de cette zone. Mais ça ne t'avanceras pas beacoup dans ton cas.
Le problème se pose aussi pour redimensionner un tableau : Redim n'accepte pas autre chose qu'une valeur numérique et non 1 variable contenant cette valeur numérique, ce qui n'est pas toujours pratique.
Ben non :
Private Sub Test()
Dim tNoms() As String Dim nbNoms As Long
nbNoms = 10 ReDim tNoms(0 To nbNoms) As String Debug.Print UBound(tNoms)
End Sub
teddy
Exect ça marche. Le problème semblait venir du fait d'avoir prédimensionné le tableau Dim FileLoad(1000) As Long ce qui entraînait un message d'erreur.
Dim FileLoad() As Long ReDim FileLoad(Total_Files) -> fonctionne maintenant.
"Jacques93" a écrit dans le message de news:
Bonjour, teddy a écrit :
[...]
Le problème se pose aussi pour redimensionner un tableau : Redim n'accepte pas autre chose qu'une valeur numérique et non 1 variable contenant cette valeur numérique, ce qui n'est pas toujours pratique.
???
A moins d'avoir mal compris compris le problème, Redim accepte bien une variable comme paramètre, sinon il ne servirait pas à grand chose, Dim suffirait ;-) :
Dim tbl() As String Dim n As Integer
n = 2 * 5 ReDim tbl(3 * n) As String MsgBox "Indice tableau de : " & LBound(tbl) & " à " & UBound(tbl)
--
Cordialement,
Jacques.
Exect ça marche.
Le problème semblait venir du fait d'avoir prédimensionné le tableau Dim FileLoad(1000) As Long ce qui entraînait un message
d'erreur.
Dim FileLoad() As Long
ReDim FileLoad(Total_Files) -> fonctionne maintenant.
"Jacques93" <jacques@Nospam> a écrit dans le message de news:eSYKluhDJHA.3484@TK2MSFTNGP05.phx.gbl...
Bonjour,
teddy a écrit :
[...]
Le problème se pose aussi pour redimensionner un tableau : Redim n'accepte pas autre chose qu'une valeur numérique et non 1
variable contenant cette valeur numérique, ce qui n'est pas toujours pratique.
???
A moins d'avoir mal compris compris le problème, Redim accepte bien une variable comme paramètre, sinon il ne servirait pas à
grand chose, Dim suffirait ;-) :
Dim tbl() As String
Dim n As Integer
n = 2 * 5
ReDim tbl(3 * n) As String
MsgBox "Indice tableau de : " & LBound(tbl) & " à " & UBound(tbl)
Exect ça marche. Le problème semblait venir du fait d'avoir prédimensionné le tableau Dim FileLoad(1000) As Long ce qui entraînait un message d'erreur.
Dim FileLoad() As Long ReDim FileLoad(Total_Files) -> fonctionne maintenant.
"Jacques93" a écrit dans le message de news:
Bonjour, teddy a écrit :
[...]
Le problème se pose aussi pour redimensionner un tableau : Redim n'accepte pas autre chose qu'une valeur numérique et non 1 variable contenant cette valeur numérique, ce qui n'est pas toujours pratique.
???
A moins d'avoir mal compris compris le problème, Redim accepte bien une variable comme paramètre, sinon il ne servirait pas à grand chose, Dim suffirait ;-) :
Dim tbl() As String Dim n As Integer
n = 2 * 5 ReDim tbl(3 * n) As String MsgBox "Indice tableau de : " & LBound(tbl) & " à " & UBound(tbl)
--
Cordialement,
Jacques.
Jean-marc
teddy wrote:
Exect ça marche. Le problème semblait venir du fait d'avoir prédimensionné le tableau Dim FileLoad(1000) As Long ce qui entraînait un message d'erreur.
Dim FileLoad() As Long ReDim FileLoad(Total_Files) -> fonctionne maintenant.
A noter qu'un article très complet de la FAQ explique tout ceci en détail, avec des liens vers la documentation:
"Comment et pourquoi faut-il déclarer les variables d'un programme ?" http://faq.vb.free.fr/index.php?question0
Exect ça marche.
Le problème semblait venir du fait d'avoir prédimensionné le tableau
Dim FileLoad(1000) As Long ce qui entraînait un message d'erreur.
Dim FileLoad() As Long
ReDim FileLoad(Total_Files) -> fonctionne maintenant.
A noter qu'un article très complet de la FAQ explique tout ceci en
détail, avec des liens vers la documentation:
"Comment et pourquoi faut-il déclarer les variables d'un programme ?"
http://faq.vb.free.fr/index.php?question0
Exect ça marche. Le problème semblait venir du fait d'avoir prédimensionné le tableau Dim FileLoad(1000) As Long ce qui entraînait un message d'erreur.
Dim FileLoad() As Long ReDim FileLoad(Total_Files) -> fonctionne maintenant.
A noter qu'un article très complet de la FAQ explique tout ceci en détail, avec des liens vers la documentation:
"Comment et pourquoi faut-il déclarer les variables d'un programme ?" http://faq.vb.free.fr/index.php?question0
"Jean-marc" a écrit dans le message de news:48c0453a$0$2855$
teddy wrote:
Exect ça marche. Le problème semblait venir du fait d'avoir prédimensionné le tableau Dim FileLoad(1000) As Long ce qui entraînait un message d'erreur.
Dim FileLoad() As Long ReDim FileLoad(Total_Files) -> fonctionne maintenant.
A noter qu'un article très complet de la FAQ explique tout ceci en détail, avec des liens vers la documentation:
"Comment et pourquoi faut-il déclarer les variables d'un programme ?" http://faq.vb.free.fr/index.php?question0
"Jean-marc" <jm@nowhere.invalid> a écrit dans le message de news:48c0453a$0$2855$ba620e4c@news.skynet.be...
teddy wrote:
Exect ça marche.
Le problème semblait venir du fait d'avoir prédimensionné le tableau
Dim FileLoad(1000) As Long ce qui entraînait un message d'erreur.
Dim FileLoad() As Long
ReDim FileLoad(Total_Files) -> fonctionne maintenant.
A noter qu'un article très complet de la FAQ explique tout ceci en
détail, avec des liens vers la documentation:
"Comment et pourquoi faut-il déclarer les variables d'un programme ?"
http://faq.vb.free.fr/index.php?question0
"Jean-marc" a écrit dans le message de news:48c0453a$0$2855$
teddy wrote:
Exect ça marche. Le problème semblait venir du fait d'avoir prédimensionné le tableau Dim FileLoad(1000) As Long ce qui entraînait un message d'erreur.
Dim FileLoad() As Long ReDim FileLoad(Total_Files) -> fonctionne maintenant.
A noter qu'un article très complet de la FAQ explique tout ceci en détail, avec des liens vers la documentation:
"Comment et pourquoi faut-il déclarer les variables d'un programme ?" http://faq.vb.free.fr/index.php?question0