[PB] vb et procédure

vb et procédure [PB] - VB/VBA/VBS - Programmation

Marsh Posté le 14-12-2004 à 12:23:02    

Voilà une question qui je l'espere va etre simple pour nombre d'entre vous :
 
comment passer en parametre le nom d'une procédure ?
Je cherche mais je ne trouve pas...
 
Voilà ce que je veux faire :
 
dans la feuille MDI
 
'personnalisation de la boite de dialogue ouvrir
cdl_ouvrir.DialogTitle = "Choisissez un fichier"
cdl_ouvrir.InitDir = "c:\"
cdl_ouvrir.CancelError = False
cdl_ouvrir.Filter = "fichier notes(*.notes)|*.notes"
cdl_ouvrir.ShowOpen
 
Open cdl_ouvrir.FileName For Input As #3
If MDIForm1.cdl_ouvrir.FileName = "C:\C.notes" Then
fonction_ouvrir (affichage_fm)
End If
 
Je veux donc passer le nom de la feuille, ici affichage_fm en parametre.
 
Dans un module, le code de la procedure
 
Public Sub fonction_ouvrir(feuille As String)
 
While Not EOF(3)
Input #3, element
feuille.txt_affnom(i) = element
Input #3, element
feuille.txt_affnote(i) = element
result = result + element
i = i + 1
Wend
Close #3
 
feuille.txt_result = result / 10
feuille.Show
 
Exit Sub
 
End Sub
 
voilà ca marche pas ca doit pas etre string ou ce ne doit pas être comme ca du tout mais j'aimerai bien avoir un peu d'aide.
 
Merci d'avance

Reply

Marsh Posté le 14-12-2004 à 12:23:02   

Reply

Marsh Posté le 14-12-2004 à 12:30:33    

Tu passes ta form sous forme de chaine, pas étonnant que ça marche pas ! C'est pas le nom qu'il faut passer en paramètre, mais la Form elle même

Code :
  1. Public Sub fonction_ouvrir(feuille As Form)
  2.    (...)
  3.    feuille.Show
  4.    (...)
  5. End Sub


De plus, ceci  

Code :
  1. (...)
  2.    Exit Sub
  3. End Sub


est redondant et inutile. Tu peux virer le Exit Sub

Reply

Marsh Posté le 14-12-2004 à 12:51:03    

J'avais déjà essayé avec form mais ca ne fonctionne pas, il ne rentre meme pas dans la procedure.
 
Je l'ai appelé comme ceci :
fonction_ouvrir (C_fm)
 
pour le exit sub, c vrai que j'ai oublié de le virer, c'était pour un controle d'erreur.
 

Reply

Marsh Posté le 14-12-2004 à 13:31:05    

t'utilises quelle version de VB ?


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 14-12-2004 à 13:41:57    

VB 6
 
C'est le dernier hic que je rencontre,j'aimerai bien finir ce programme au plus vite.
 
Merci en tt cas pour ton aide ;)

Reply

Marsh Posté le 14-12-2004 à 16:46:30    

ca ne doit pas être si dure tout de meme. Il suffit juste de remplacer mon : feuille.txt_affnom(i)  par le vrai nom de ma feuille (affichage_fm ou affichage_fm2 ou affichage_fm3). Le seul probème est de savoir comment passer en paramêtre le nom de ma feuille.
 
Mon programme marche sans utiliser de procédure mais j'aimerai mieux en créer pour avoir une meilleur visibilité.
 
Y'a plus d'idées ?
 

Reply

Marsh Posté le 14-12-2004 à 21:16:00    

gling a écrit :

J'avais déjà essayé avec form mais ca ne fonctionne pas, il ne rentre meme pas dans la procedure.
 
Je l'ai appelé comme ceci :
fonction_ouvrir (C_fm)


C'est à dire ? il te lance une erreur ?


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
Reply

Marsh Posté le 14-12-2004 à 21:59:28    

tu te complique bien la vie , a mon avis il suffirait de definir la form dans une variable Feuille ( as Form ) avant de faire appel a ta procédure Fonction_Ouvrir :
 

Code :
  1. Dim Feuille as Form
  2. (...)
  3. If choix = 1 then
  4. Set Feuille = Form2
  5. Fonction_ouvrir
  6. end If
  7. If choix = 2 then
  8. Set Feuille =Form3
  9. Fonction_ouvrir
  10. end If
  11. (...)
  12. Sub Fonction_ouvrir
  13. (...)
  14. Feuille.Show
  15. (...)
  16. End sub


Message édité par Profil supprimé le 14-12-2004 à 22:00:01
Reply

Marsh Posté le 15-12-2004 à 00:03:11    

merci beaucoup ca marche impec avec la dernière soluce ;)
 
@ bientot

Reply

Sujets relatifs:

Leave a Replay

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