Boucle dans variable

Lu K

XLDnaute Occasionnel
Bonjour à toutes à à tous,

Cela fait plusieurs heures que je cherche, mais sans succès ! Alors je fait appel à vous !!!

Dans une macro j'ai ça :
nbr_point= 2 'correspont à mon nombre de point
'Point 1
position_x1 =10
position_y1 = 5
position_z1 = 3
'Point 2
position_x2 = 12
position_y2 = .2
position_z2 = 15
Call point (nbr_point,position_x1, position_y1, position_z1, position_x2, position_y2, position_z2)

Ensuite ma macro appelé : (qui se trouve dans un module)
sub point (nbr_point,position_x1, position_y1, position_z1, position_x2, position_y2, position_z2)
For g = 1 To nbr_point
.Cells(g, 1) = position_x(g) & "," & position_y(g) & "," & position_z(g)
next g
end sub

Mon problème est que je n'arrive pas à récupérer mes valeur de variable en boucle (position_x(g)...)

Pouvez vous m'aidez ?

Merci d'avance
 

youky(BJ)

XLDnaute Barbatruc
Re : Boucle dans variable

Salut bien,
Il faut créer un tableau à 2 dimensions.
Voici un exemple vite fait afin de comprendre le mécanisme.
Code:
Sub essai()
Dim tx(10, 10) As Long' 10 est le longueur de chaque tableau
myposition = 1
For mypoint = 1 To 10
tx(mypoint, myposition) = 100 + mypoint' exemple pour mettre une valeur
Next
MsgBox tx(5, 1)'pour lire une donnée
End Sub
Bruno
 

youky(BJ)

XLDnaute Barbatruc
Re : Boucle dans variable

Voici, déclaration dans la 1ère ligne du module en Public
Toutes les macros auront accès à tx
Code:
Public tx(10, 10) As Long
Sub essai()
myposition = 1
For mypoint = 1 To 10
tx(mypoint, myposition) = 100 + mypoint
Next
suite 'ou call suite ou ta macro
End Sub


Sub suite()
MsgBox tx(5, 1) 'pour lire une donnée
End Sub
Bruno
 

mutzik

XLDnaute Barbatruc
Re : Boucle dans variable

bonjour,

pour ma part, je crée dans toutes mes applications un module m_init dans lequel je mets toutes les variables public utilisées, et je leur assigne la bonne valeur de départ dans une sub init que je lance au 'worbook open'
 

Celeborn61

XLDnaute Occasionnel
Re : Boucle dans variable

Bonjour,
Le mieux, c'est, je pense, de passer par un objet Range et de le passer en paramètre de macro.
Sub Essai()
Dim MesValeurs As Range
Set MesValeurs = ActiveSheet.Range("A1:A8")
Traitement MesValeurs
End Sub
Private Sub Traitement(LaPlage As Range)
' Le traitement à réaliser
End Sub

en plus simple ça donne
Sub Essai()
Traitement ActiveSheet.Range("A1:A8")
End Sub
Private Sub Traitement(LaPlage As Range)
' Le traitement à réaliser
End Sub
 

Celeborn61

XLDnaute Occasionnel
Re : Boucle dans variable

Bonjour à tous,

mutzik, je pense que tu vas au devant de déconvenue, et de débogage, lol.
Si tu te retrouve à devoir découper ton projet en plusieurs module, il va te falloir faire extrêmement attention à la portée de tes variables.
 

Dranreb

XLDnaute Barbatruc
Re : Boucle dans variable

Bonsoir

Si la structure de départ est plus pratique compte tenu du contexte, il y a le ParamArray :
VB:
Sub Macro1()
Points 10, 5, 3, 12, 0.2, 15
End Sub

Sub Points(ParamArray P())
Dim N&, T() As String
ReDim T(0 To UBound(P) \ 3)
For N = 0 To UBound(P) Step 3
   T(N \ 3) = "Point " & N \ 3 + 1 & ": X=" & P(N) & " Y=" & P(N + 1) & " Z=" & P(N + 2)
   Next N
MsgBox Join(T, vbLf)
End Sub
 

Discussions similaires

Réponses
4
Affichages
213
Réponses
22
Affichages
785

Statistiques des forums

Discussions
312 248
Messages
2 086 593
Membres
103 249
dernier inscrit
solo