OVH Cloud OVH Cloud

macro

3 réponses
Avatar
karine
bonjour,

dans un formulaire, j'ai une case =E0 cocher. j'ai fait une=20
macro qui active ou d=E9sactive un certain nombre de champs=20
si la case est ou non coch=E9e. Jusque la tout va bien. ce=20
que je souhaiterai faire en plus c'est que ma macro=20
vienne =E9galement supprim=E9 le contenu des champs qu'elle=20
d=E9sactive.
Est ce possible?
Quelqu'un connaitrait il la commande =E0 utiliser?

Access 2000

merci d'avance=20

amicalment

3 réponses

Avatar
Jefflec
Salut !

Je crois qu'il vaudrait mieux passer par du VBA...
Dans ce cas là, tu peux créer un événement sur ta case à cocher (sur clic) :

Private Sub caseACocher_Click()
If caseACocher = -1 Then
' case = cochée, donc on active le champ
monchamp.Enabled = True
Else
' case non cochée, donc on désactive le champ et on supprime la
valeur qu'il contient...
monchamp.Enabled = False
monchamp = Null
End If
End Sub

Si ce n'est pas assez clair, fais moi signe...

@+
Jefflec

"karine" a écrit dans le message de
news:0c9401c38f26$e5d274d0$
bonjour,

dans un formulaire, j'ai une case à cocher. j'ai fait une
macro qui active ou désactive un certain nombre de champs
si la case est ou non cochée. Jusque la tout va bien. ce
que je souhaiterai faire en plus c'est que ma macro
vienne également supprimé le contenu des champs qu'elle
désactive.
Est ce possible?
Quelqu'un connaitrait il la commande à utiliser?

Access 2000

merci d'avance

amicalment
Avatar
karine
bonjour,

je viens de tester ton code (j'ai fais de la recopie car je ne connais pas
Vba) et il fait exactement ce que je voulais.
J'abuse encore un peu : ma case à cocher doit activer... plusieurs champs.
Comment dois-je procéder ? faut - il répéter les différentes lignes du codes
autant de fois que de champs, si oui je les copies où, après "End if"

merci d'avance
"Jefflec" 'adresse.nonmais> a écrit dans le message de news:
#
Salut !

Je crois qu'il vaudrait mieux passer par du VBA...
Dans ce cas là, tu peux créer un événement sur ta case à cocher (sur clic)
:


Private Sub caseACocher_Click()
If caseACocher = -1 Then
' case = cochée, donc on active le champ
monchamp.Enabled = True
Else
' case non cochée, donc on désactive le champ et on supprime la
valeur qu'il contient...
monchamp.Enabled = False
monchamp = Null
End If
End Sub

Si ce n'est pas assez clair, fais moi signe...

@+
Jefflec

"karine" a écrit dans le message de
news:0c9401c38f26$e5d274d0$
bonjour,

dans un formulaire, j'ai une case à cocher. j'ai fait une
macro qui active ou désactive un certain nombre de champs
si la case est ou non cochée. Jusque la tout va bien. ce
que je souhaiterai faire en plus c'est que ma macro
vienne également supprimé le contenu des champs qu'elle
désactive.
Est ce possible?
Quelqu'un connaitrait il la commande à utiliser?

Access 2000

merci d'avance

amicalment




Avatar
Jefflec
Salut Karine !

Non, tu n'abuses pas... ;o)
(enfin, je veux dire que le newsgroupe est là pour ça...)

Tu dois comprendre le code comme ça :

Private Sub caseACocher_Click()
' Si une case est cochée, elle renvoie la valeur -1
SI caseACocher = -1 ALORS
' case = cochée, donc on active le champ
monchamp.DISPONIBLE = VRAI
SINON
' case non cochée, donc on désactive le champ et on supprime la
' valeur qu'il contient...
monchamp.DIPONIBLE = FAUX
monchamp = RIEN
FIN du SI
End Sub

Donc tu vois, on a des "blocs" de code délimités par un SI, un SINON et un
FIN du SI...
(pour que l'ordinateur sache ou il en est et pour pas qu'il exécute le code
du voisin... :o)
SI ta case est cochée, ALORS tu mets tous les champs à rendre disponible
juste en dessous, séparés par un retour à la ligne.
Ensuite, tu as le "SINON", c'est pareil, en dessous, tu mets toutes les
instructions à exécuter. ATTENTION, ici tu as 2 instructions pour chaque
champ !
(donc 2 lignes autant de fois que tu as de champ à verrouiller/ à vider...)

Si tu as bien compris, tu vas arriver à un résultat comme celui ci :
(Exemple avec 3 champs A, B et C)

Private Sub caseACocher_Click()
If caseACocher = -1 Then
' case = cochée, donc on active le champ
monchampA.Enabled = True
monchampB.Enabled = True
monchampC.Enabled = True
Else
' case non cochée, donc on désactive le champ et on supprime la
' valeur qu'il contient...
monchampA.Enabled = False
monchampA = Null
monchampB.Enabled = False
monchampB = Null
monchampC.Enabled = False
monchampC = Null
End If
End Sub

Au plaisir de t'avoir aidé... :o))
Et franchement, si je peux me permettre, essaie de comprendre et d'apprendre
le VBA, c'est pas trop compliqué et ça rend de grands services !

@+,
Jefflec


"karine" a écrit dans le message de
news:
bonjour,

je viens de tester ton code (j'ai fais de la recopie car je ne connais pas
Vba) et il fait exactement ce que je voulais.
J'abuse encore un peu : ma case à cocher doit activer... plusieurs champs.
Comment dois-je procéder ? faut - il répéter les différentes lignes du
codes

autant de fois que de champs, si oui je les copies où, après "End if"

merci d'avance
"Jefflec" 'adresse.nonmais> a écrit dans le message de news:
#
Salut !

Je crois qu'il vaudrait mieux passer par du VBA...
Dans ce cas là, tu peux créer un événement sur ta case à cocher (sur
clic)


:

Private Sub caseACocher_Click()
If caseACocher = -1 Then
' case = cochée, donc on active le champ
monchamp.Enabled = True
Else
' case non cochée, donc on désactive le champ et on supprime la
valeur qu'il contient...
monchamp.Enabled = False
monchamp = Null
End If
End Sub

Si ce n'est pas assez clair, fais moi signe...

@+
Jefflec

"karine" a écrit dans le message de
news:0c9401c38f26$e5d274d0$
bonjour,

dans un formulaire, j'ai une case à cocher. j'ai fait une
macro qui active ou désactive un certain nombre de champs
si la case est ou non cochée. Jusque la tout va bien. ce
que je souhaiterai faire en plus c'est que ma macro
vienne également supprimé le contenu des champs qu'elle
désactive.
Est ce possible?
Quelqu'un connaitrait il la commande à utiliser?

Access 2000

merci d'avance

amicalment