PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 3 févr. 2007 à 14:37
salut,
ce n'est pas parce que tu appelles une_autre_form.fonction que la fonction se copie miraculeusement dans l'autre form....
le code est correct, il faut juste mettre les sub en public et les préfixer de la form propriétaire, ou copier les sub dans un module (déclarées tout de même en public)
nb : on met "option explicit" en début de chaque fichier (.frm, .bas, etc...), çà force à déclarer les variables...
pour dire de coupler tout çà, çà donne ...
'FORM
Option Explicit
Private Sub Command1_Click()
'
CHARGE
Call ListBoxResource(Me.List1, LA_Read)
End Sub
Private Sub Command2_Click()
'
SAUVE
Call ListBoxResource(Me.List1, LA_Write)
End Sub
'MODULE
Option Explicit
Public Enum ListAction
LA_Read
LA_Write
End Enum
Public Sub ListBoxResource(ByRef oList As ListBox, eAction As ListAction)
On Error GoTo Lbl_Exit
Dim sPath As String, FF As Integer
If eAction = LA_Read Then
' charge la listbox à partir du
fichier
Dim sLine As String
oList.Clear
Open sPath For Input As #FF
Do Until EOF(FF)
Line Input #FF, sLine
oList.AddItem sLine
Loop
Close #FF
Else
' charge le fichier à partir de la
listbox
Dim i As Integer
Open sPath For Output As #FF
For i = 0 To oList.ListCount - 1
Print #FF, oList.List(i)
Next
Close #FF
End If
Lbl_Exit:
If Err.Number <> 0 Then Err.Clear
End Sub
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 3 févr. 2007 à 00:53
Salut,
rajoute le paramètre Form dans la sub, et modifie aussi l'appel :
Private Sub Sauveliste(oForm As Form, LaListe As ListBox)
Open App.Path & "" & "laliste.lst" For Output As 1
For i = 0 To oForm.List1.ListCount - 1
LaListe.ListIndex = i
Print #1, LaListe.Text
Next
Close 1
End Sub
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 3 févr. 2007 à 00:55
Arf, je suis allez trop vite, j'en ai oublié un :
change
For i = 0 To oForm.<strike>List1</strike>.ListCount - 1
pour
For i = 0 To oForm.LaListe.ListCount - 1
@++
<hr size="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
nono78220
Messages postés181Date d'inscriptiondimanche 3 décembre 2006StatutMembreDernière intervention28 octobre 2010 4 févr. 2007 à 13:17
Hello,
J'ai pris note de ce que vous me proposez.
Peut-être que Call frmAutreForm.Sauveliste(Me. ListBox1
)ne fonctionne pas parce que ma feuille n'est pas "loadée". qu'en pensez-vous ?
Je vais la "loader", et si toujours un bug, je vais faire cue que tu me proposes PCPT
Merci et à bientot