Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1220 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VBA Fin de la fonction je reviens dans ma boucle ???

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

VBA Fin de la fonction je reviens dans ma boucle ???

n°1961528
PsYKrO_Fre​d
Posté le 29-01-2010 à 12:14:17  profilanswer
 

Bonjour,  
 
Voila je viens de faire une fonction qui retourne lire un tableau passer en paramètre par valeur.
Dans cette fonction, je regenere un nouveau tableau.
Lorsque ma boucle For i = 0 arrive à nb_lig, j'arrive à la derniere ligne du code : End Function
 
Je pensé que j'allé arrete... la fonction mais non il revient sur la ligne "'''''''''''''''COMMENTAIRE
 
C'est parceque c'est une fonction ?
 
 
LireTableau =  
 

Code :
  1. Function LireTableau(ByVal transfert)
  2. Dim ligne_compare As Integer
  3. Dim ligne_origine As Integer
  4. Dim ligne_disponible As Integer
  5. ligne_disponible = nb_lig
  6. ligne_suivante = 0
  7. ligne_origine = 0
  8. i = 0
  9. j = 0
  10.     For i = 0 To nb_lig
  11.         For ligne_compare = (i + 1) To nb_lig
  12.             compte = 0
  13.             For j = 0 To nb_col
  14.                 If (transfert(i, j) <> -1) And (transfert(ligne_compare, j) <> -1) Then
  15.                     If transfert(i, j) >= transfert(ligne_compare, j) Then
  16.                         compte = compte + 1
  17.                         If compte = ligne_disponible Then
  18.                               tableau_original = transfert
  19.                               transfert = GenererTableau(ligne_compare, ligne_compare, transfert)
  20.                               LireTableau (transfert) '''''''''''''''''''''''''''''''''''''''''''COMMENTAIRE
  21.                               ligne_disponible = ligne_disponible - 1
  22.                         End If
  23.                      End If
  24.                 End If
  25.             Next j
  26.         Next ligne_compare
  27.     Next i
  28. End Function


Message édité par PsYKrO_Fred le 29-01-2010 à 12:14:58
mood
Publicité
Posté le 29-01-2010 à 12:14:17  profilanswer
 

n°1961535
breizhbugs
Posté le 29-01-2010 à 12:59:20  profilanswer
 

C'est parce que c'est une fonction ... récursive!

n°1961536
PsYKrO_Fre​d
Posté le 29-01-2010 à 13:02:45  profilanswer
 

et comment j'en sorts de ma récursivité :)...?
 
 

n°1961605
breizhbugs
Posté le 29-01-2010 à 20:03:36  profilanswer
 

Aucune idée, je comprends pas trop le but de ton algo a ta ligne COMMENTAIRE, tu appelles lireTableau(transfert) alors que ton tableau transfert a une taille differente non? Comment fais-tu pour lui indiquer la nouvelle taille?

n°1961671
PsYKrO_Fre​d
Posté le 30-01-2010 à 14:25:17  profilanswer
 

breizhbugs a écrit :

Aucune idée, je comprends pas trop le but de ton algo a ta ligne COMMENTAIRE, tu appelles lireTableau(transfert) alors que ton tableau transfert a une taille differente non? Comment fais-tu pour lui indiquer la nouvelle taille?


 
via cette fonction GenererTableau  
 

Code :
  1. Function GenererTableau(ligne_supprimer As Integer, colonne_supprimer As Integer, ByVal tableau_original)
  2. Dim tableau_generer()
  3.     For i = 0 To nb_lig
  4.         For j = 0 To nb_col
  5.             If i = ligne_supprimer Or j = colonne_supprimer Then
  6.                 tableau_original(i, j) = -1
  7.             End If
  8.         Next j
  9.     Next i
  10.     GenererTableau = tableau_original
  11. End Function


 
En fait je supprime pas vraiment la ligne mais je mets une valeur à -1
Le problème c'est quand j'arrive à la fin de ma Fonction LireTableau au moment du End Function... je reviens la ou j'ai mis "COMMENTAIRE"
au lieu de revenir au début de ma fonction LireTableau....
 
Moi je veux qu'à la fin de ma fonction je retourne au début pas au milieux... sinon il m'incrémente mes variables et c'est reparti pour un tour... et le résultat est faux...

Message cité 1 fois
Message édité par PsYKrO_Fred le 30-01-2010 à 14:28:40
n°1961728
breizhbugs
Posté le 31-01-2010 à 11:28:04  profilanswer
 

PsYKrO_Fred a écrit :


 
En fait je supprime pas vraiment la ligne mais je mets une valeur à -1
Le problème c'est quand j'arrive à la fin de ma Fonction LireTableau au moment du End Function... je reviens la ou j'ai mis "COMMENTAIRE"
au lieu de revenir au début de ma fonction LireTableau....
 
Moi je veux qu'à la fin de ma fonction je retourne au début pas au milieux... sinon il m'incrémente mes variables et c'est reparti pour un tour... et le résultat est faux...


 
Non!
quand tu appel une fonction dans un programme (par exemple "transfert(i,j)" ), le programme continue après le retour de cette fonction!
Pourquoi veux tu qu'il en soit différemment quand tu appelles liretableau()
Il va te falloir réécrire ta fonction!


Message édité par breizhbugs le 31-01-2010 à 11:30:00
n°1961861
PsYKrO_Fre​d
Posté le 01-02-2010 à 00:53:07  profilanswer
 

mmm mais alors comment dois je la réécrire?
je suis dans un casse tete chinois lol....  
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VBA Fin de la fonction je reviens dans ma boucle ???

 

Sujets relatifs
Problème de BoucleWeather Data, VBA, HELPPP
[RESOLU] Soucis avec mysql_fetch_array dans une fonction[VBA]Existence d'un chemin UNC
une question sur une boucle dans se progBug VBA Word 2010 sur form load
[C/SDL] undefined reference to mes fonction[Résolu] boucle for ne retient que la dernière ligne du fichier
[Résolu] [VBA] Multiplication fausseRécupérer un int en dehors de la fonction.
Plus de sujets relatifs à : VBA Fin de la fonction je reviens dans ma boucle ???


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR