Eclatement

lcastell Messages postés 47 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 3 mai 2005 - 10 févr. 2005 à 10:10
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 - 10 févr. 2005 à 13:36
Bonjour,

J'ai une Feuille FRM avec toutes mes écritures, conditions etc... je voudrais
éclater tout ça et répartir mes différentes formules dans des .BAS.

Quand j'exécute mon programme, il ne va pas chercher mes .BAS, comment
faire pour associer dans mon FRM mes BAS.

Merci

5 réponses

cushy007 Messages postés 19 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 1 mars 2005
10 févr. 2005 à 10:30
Tu peux un peu préciser stp.



En tous cas, fais attention à la portée de tes variables (privées dans un module), redéfinis bien les portées...
0
lcastell Messages postés 47 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 3 mai 2005
10 févr. 2005 à 10:39
Par exemple, jai une variable qui me traite le NOM, je voudrais créer un BAS
avec les fonctions.

rivate Sub Nom_Change()
Nom = SaisieNom(Nom)
End Sub

Public Function SaisieNom(Text As String) As String
If Text <> "" Then
If IsNumeric(Text) Then
MsgBox ("Attention il faut saisir des Lettres")
SaisieNom = ""
Else
SaisieNom = Text
End If
End If
End Function

Private Sub Nom_Validate(Cancel As Boolean)
Dim tablo() As String
Dim chaine As String
Dim PremierMot As String
Dim SecondMot As String
Dim NOM1 As String
Dim PRENOM As String
Dim MajusculeSecondMot As String
Dim MinisculeSecondMot As String
Dim SecondMotSansPremiereLettre As String

chaine = Nom

tablo = Split(chaine, " ", , vbTextCompare)

PremierMot = tablo(LBound(tablo))
SecondMot = tablo(UBound(tablo))

MinisculeSecondMot = LCase(SecondMot)
MajusculeSecondMot = UCase(Left(MinisculeSecondMot, 1))
SecondMotSansPremiereLettre = Right(MinisculeSecondMot, Len(MinisculeSecondMot) - 1)

NOM1 = UCase(PremierMot)
PRENOM = MajusculeSecondMot & SecondMotSansPremiereLettre

Nom = NOM1 + " " + PRENOM
End Sub

Private Sub Nom_GotFocus()
Let Nom.SelStart = 0
Let Nom.SelLength = Len(Nom)
End Sub

Je voudrais mettre mon détail dans un .BAS pour pouvoir si je veux faire des
modifs sur le Nom je n'ai pas à chercher dans tout mon FRM.
0
MoiOlivier Messages postés 172 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 4 août 2005
10 févr. 2005 à 11:50
Salut,
Si j'ai bien compris, tu places tes fonctions dans un module, mais le module n'est pas pris en compte dans le projet...
Si c'est ça, il te suffit de faire un clic droit dans l'explorateur de projet > ajouter > module...
Puis tu vas chercher ton module, ou tu en crée un nouveau dans la boîte de dialogue qui apparait.
@+
0
lcastell Messages postés 47 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 3 mai 2005
10 févr. 2005 à 12:01
J'ai un message d'erreur :
Variable ou procedure attendue, et non un module.

Que puis-je faire ?

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
10 févr. 2005 à 13:36
Attention, quand tu éclates tes procédures dans différents modules, il faut vérifier que :



- Tes fonctions ne sont pas restées 'Private'. Sinon, tu ne pourras pas les appeler.

- Tu appelles désormais tes fonctions comme ceci : nomDuModule.nomDeLaFonction(paramètres)




AVANT ECLATEMENT

===================

Dans Form1

===================

Private Sub Nom_Change()

End Sub



Private Sub Form_Load()

Nom_Change 'appel de la procédure

End Sub





APRES ECLATEMENT

==================

Dans Form1

==================

Private Sub Form_Load()


Module1.Nom_Change 'appel de la procédure


End Sub

==================

Dans Module1

==================

Public Sub Nom_Change()


End Sub




Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
0
Rejoignez-nous