VBA procedure publique et param form - VB/VBA/VBS - Programmation
Marsh Posté le 13-01-2003 à 15:58:04
nightmaster a écrit : salut |
Déjà, les sub ne prennent pas de parenthèses à l'appel.
taSub paramètre
Donc soit tu n'en met pas, soit tu fais un call
call taSub(parmètre)
Sinon, la syntaxe avec le "!" m'est inconnue. A mon avis il y a un problème à ce niveau.
En fait, j'essaie de comprendre
Logiquement, si tu appelles cette sub depuis une form qui doit se modifier elle-même :
form_service.masquerhaut1 Me
Si c'est ailleurs, ou qu'une form demande à une autre form de subir la modif :
form_service.masquerhaut1 NomDeLaForm
Par exemple :
form_service.masquerhaut1 service
Mais bon, je suis pas certain de tout comprendre ce que tu essaies de faire
Sinon, un truc, je pense que les "bt_xxxx" qu'il y a dans ta sub sont des éléments de la form passée en paramètre non ?
Alors :
Code :
|
Marsh Posté le 13-01-2003 à 16:25:06
Citation : |
euh, oki, ça ça marche, c kool
mais je comprend pas bien le principe de fonctionement du byref
ça veux dire koi en gros?
pasque faudrai que je puisse l'expliquer comment que ça marche
et pi au cas je le rutiliserai un jour..
pour ce qui est de ce que je veux faire , bah , j'ai plein de formulaires, tous pareils, et bah ça c une partie commune
c sur que de base c que ducopier coller, mais ça fait plus style et plus propre (moins bourrinage) de faire juste des pub
Marsh Posté le 13-01-2003 à 17:03:23
nightmaster a écrit :
|
ça devrait quand meme marcher sans le "byref" ,a mon avis c'est surtout le "wiht f" qui manquait
Marsh Posté le 13-01-2003 à 17:23:37
Public Sub parcours(ByRef f As Form, ByVal c As Integer)
wai, effectivement, le byref est pas indispensable, masi c qd meme mieux de passer une adresse que un form
bon
maintenant, je veux fair ça
Public Sub parcours(ByRef f As Form, ByVal c As Integer)
If c = 0 Then
With f
.bt_modif.Enabled = False
.bt_suppr.Enabled = False
.bt_rech.Enabled = False
End With
Else
With f
.bt_modif.Enabled = True
.bt_suppr.Enabled = True
.bt_rech.Enabled = True
End With
End If
et pi ça marche po
j'ai essayer avec juste with f au début et end with à la fin de la procedure, et ça marche po ;(
qqn peut m'en dire + sur ce with?
Marsh Posté le 13-01-2003 à 17:35:05
nightmaster a écrit : Public Sub parcours(ByRef f As Form, ByVal c As Integer) |
sur le principe ,je vois pas d'erreur mais fait plutot comme ça:
Public Sub parcours(ByRef f As Form, ByVal c As Integer)
With f
If c = 0 Then
.bt_modif.Enabled = False
.bt_suppr.Enabled = False
.bt_rech.Enabled = False
Else
.bt_modif.Enabled = True
.bt_suppr.Enabled = True
.bt_rech.Enabled = True
End If
End With
end sub
le with te permet d'eviter de taper F.bt... a chq fois
c'est peut etre l'emploi de ton c qui pose probleme
Marsh Posté le 13-01-2003 à 17:44:41
Tu passes bine le nombre en paramètre comme il faut ?
Syntaxe:
maSub maForm, monNombre
Marsh Posté le 14-01-2003 à 08:46:50
oki
alors ct bien avec with - end with au début et à la fin
le pb était plus loin dans la procedure
sur mon select case CurrentRecord
il failait en fait select case f.CurrentRecord
soit select case .CurrentRecord
je viens de trouvé ça en 2 min, comme koi à tête reposée, ça va mieux
merci bien de votre aide
Marsh Posté le 13-01-2003 à 15:37:59
salut
(bon alors a fait pas si longtps que ça que je fais du vba alors bon)
alors j'ai un procedure public que je fous ds un module pasque utilisée par tous les formulaires..
ça donne ça:
Public Sub masquerhaut1(f As Form)
bt_creer.Visible = False
bt_modif.Visible = False
bt_suppr.Visible = False
bt_rech.Visible = False
bt_prec.Visible = False
bt_suiv.Visible = False
bt_val.Visible = True
bt_annul.Visible = True
End Sub
et l'appelle dans le code des formulaire ça donne :
masquerhaut1 (Forms!service)
et le pb, c que qd c exécuté, il me surligne la ligne ci dessus et me dit "incompatibilité de type" arf
- logiquement, le module, avec les proc public, est un module, et pas un module de class ...
- "f as form", form, c bon kom type de déclaration?
- Forms!service = Forms!nomformulaire (form_service, c bien que le nom du module? de toute façon, ça marche pas)
et puis la syntaxe comme ça, c'est dans l'aide alors...
- ya des trucs particulier à cocher dans /outils/références ..??
si vous plais aidez moi! pasque, qd je trouve pas le pb, ça me soule très vite arf
++
Message édité par nightmaster le 13-01-2003 à 15:40:05