problème procédure

problème procédure - VB/VBA/VBS - Programmation

Marsh Posté le 29-03-2005 à 19:41:45    

Bonsoir,
 
J'ai un exercice en info, sur les procédures dans VBA il faut que j'écrive la procédure Renverser qui prend comme paramètre un tableau d’entiers de 5 cases qui est trié par ordre croissant et le trie cette fois-ci par ordre décroissant.      
 
Le problème : le prof n'a pas mis son cours en ligne, donc je ne me suis aidée que des cours que j'ai pu trouver sur le net, mais bon, c'est pas trop ça : mon programme ne marche donc pas :/ j'aimerai savoir si quelqu'un pourrait m'éclairer sur mon, ou mes erreurs svp,  
 
 
procedure tableau(T() as Integer)  
Dim i, j, aux As Integer  
Dim T1(5) As Integer  
 
For i = 1 To 5  
T1(i) = T(5 - i + 1)  
Next  
 
For i = 1 To 5  
MsgBox ("valeurs" & T1(i))  
Next  
 
End  
 
Sub ok()  
Dim T(5) As Integer  
Dim i As Integer  
 
For i = 1 To 5  
T(i) = i * 2  
Next  
 
msgbox(tableauT())
 
End Sub  
 
merci !

Reply

Marsh Posté le 29-03-2005 à 19:41:45   

Reply

Marsh Posté le 29-03-2005 à 20:00:36    

C'est quoi "procedure" ??? Je metterais :

Sub ReverseArray(ByVal t() As Integer)


Sinon qu'est-ce qui ne marche pas exactement ? Message d'erreur ? Affichage bizarre ?

Reply

Marsh Posté le 29-03-2005 à 20:12:19    

Ben quand je mets :
 
Sub ReverseArray(ByVal T() As Integer)
 
ça me met que l'argument du tableau doit etre ByRef
 
donc quand je mets
 
Sub ReverseArray(ByVal T(ByRef) As Integer)
 
ça me dit que l'argument du tableau doit être objectif
 
je comprends plus rien :/
 
La suite est :
 
 
Dim i As Integer
Dim T1(5) As Integer
 
For i = 1 To 5
T1(i) = T(5 - i + 1)
Next
 
For i = 1 To 5
MsgBox ("valeurs" & T1(i))
Next
 
End
 
Sub ok()
Dim T(5) As Integer
Dim i As Integer
 
For i = 1 To 5
T(i) = i * 2
Next
MsgBox (tableauT())
 
End Sub

Reply

Marsh Posté le 29-03-2005 à 20:21:05    

C'est quoi ça :

Sub ReverseArray(ByVal T(ByRef) As Integer)


:D
 
Quand il dit qu'il faut mettre ByRef, c'est :

Sub ReverseArray(ByRef T() As Integer)


;)

Reply

Marsh Posté le 29-03-2005 à 20:41:01    

ben c'et simple :
 
tu déclares un entier i de valeur 1
tu lis ton tableau à l'envers, dans une boucle de 5 à 1
tu mets tableau(index) dans tableau(i)
tu incrémentes i de 1
...
 

Reply

Marsh Posté le 30-03-2005 à 00:01:46    

merci beaucoup à vous deux !  :)  
je vais plancher dessus :ange:

Reply

Marsh Posté le 04-04-2005 à 22:45:19    

Bonsoir,
 
Je suis tjrs dessus et je ne vois pas ce qui ne va pas dans le prog ... en fait on a pas vu comment faire une boucle allant de 5 à 1 :
 
 
Sub tableau(ByRef T() As Integer)
 
Dim i As Integer
Dim T1(5) As Integer
 
    For i = 1 To 5
        T(i) = T1(5 - i + 1)
    Next
 
End Sub
 
dans cette partie, j'essaie d'écrire que le nouveau tableau T va prendre la valeur du tableau initial en partant à l'envers. pour donc avoir l'ordre décroissant.
 
Sub test()
Dim T1(5) As Integer
Dim i As Integer
 
    For i = 1 To 5
        T1(i) = i * 2
    Next
 
        Call tableau(5)
 
End Sub
 
dans cette partie, je fixe un tableau croissant pour ça j'ai crée un tableau tel que il soit 2 4 6 8 10 croissant.
et ensuite j'aimerai appeller la procédure du haut afin qu'il s'affiche par ordre décroissant
 
pourriez vous me dire ce qui ne va pas svp?
 
merci bcp

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed