Remplir une zone de texte si une case est cochée

Fermé
Yoshimario77 Messages postés 33 Date d'inscription jeudi 13 juillet 2017 Statut Membre Dernière intervention 22 août 2017 - 10 août 2017 à 13:46
Yoshimario77 Messages postés 33 Date d'inscription jeudi 13 juillet 2017 Statut Membre Dernière intervention 22 août 2017 - 22 août 2017 à 07:30
Bonjour,

Comme dis dans le titre, je cherche à remplir le contenu d'une zone de texte en fonction de si une case à cocher est cochée ou non.

L'opération requiert des champs placés dans deux tables: Lot_arbres et Comptages.
Les champs nécessaires sont num_phase dans Lot_arbres, phase_comptage dans Comptages, la case à cocher "plantation" dans Comptages et le champ calculé num_comptage dans Comptages.

Donc le champ calculé num_comptage doit être égal à 0 si la case est cochée, sinon il doit être égal à [phase_comptage] - [Formulaires]![Lot_arbres]![lm_phase] + 1

J'ai donc fait un code vba (enfin, trouvé sur internet et essayé d'adapter à mon cas particulier) mais il n'a pas l'air de fonctionner. Cela affiche #Nom dans la zone de texte calculée.

Je l'ai affecté au champ calculé et activé l'événement "sur clic" dans un premier temps. Comme c'est un événement simple, il me permet facilement de vérifier si le code fonctionne avant de trouver un événement plus approprié.

Voici le code utilisé:


Private Sub calcul_num_comptage()
If [plantation].Value = True Then
[num_comptage].Value = 0
Else
[num_comptage].Value = [phase_comptage] - [Formulaires]![Lot_arbres]![lm_phase] + 1
End If
[plantation].Requery
End Sub


Je galère déjà un petit peu avec Access, quoi que mes soucis commencent à se résoudre, mais je ne connais vraiment rien en VBA. Mais il me semble curieux de mettre des crochets. Sauf pour le "[Formulaires]![Lot_arbres]![lm_phase]. (lm_phase est une liste permettant de choisir num_phase)

Quand je retire les crochets, ça fait la même chose quand je déclenche la macro sur l'événement BeforeUpdate par contre, sur OnClick, ça affiche le message d'erreur suivant:
https://img-19.ccm2.net/m2acQTUts4pPQ5R1OOFjmX53Tvc=/fc82b560ade340e5940f4a16aa614ced/ccm-ugc/rreur_BDD_projet_ceinture_forestiere.png

Est-ce que quelqu'un s'y connaîtrait un peu mieux que moi en VBA et saurait trouver l'erreur svp ?

Merci d'avance !

3 réponses

yg_be Messages postés 23401 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 décembre 2024 Ambassadeur 1 557
Modifié le 10 août 2017 à 17:31
bonjour, je te suggère de faire simple, puis de plus en plus compliqué.
cela va t'aider à découvrir où cela coince.
surtout, ajoute
option explicit
au début de ton code.
commence par tester ceci: as-tu bien soit 0 soit 1?
If [plantation].Value = True Then
    [num_comptage].Value = 0
Else
    [num_comptage].Value =  1
End If

ensuite ainsi:
If [plantation].Value = True Then
    [num_comptage].Value = 0
Else
    [num_comptage].Value =  [Formulaires]![Lot_arbres]![lm_phase] + 1
End If

puis ainsi:
If [plantation].Value = True Then
    [num_comptage].Value = 0
Else
    [num_comptage].Value = [phase_comptage]
End If
1
Yoshimario77 Messages postés 33 Date d'inscription jeudi 13 juillet 2017 Statut Membre Dernière intervention 22 août 2017
11 août 2017 à 09:25
Non j'ai un message d'erreur "Erreur de compilation: instruction incorrecte dans une procédure"
Private Sub num_comptage_Click()
Option Explicit
If ([plantation].Value = True) Then
[num_comptage].Value = 0
Else
[num_comptage].Value = 1
End If
End Sub

La première ligne est mise avec un fond jaune au texte.
0
yg_be Messages postés 23401 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 décembre 2024 1 557 > Yoshimario77 Messages postés 33 Date d'inscription jeudi 13 juillet 2017 Statut Membre Dernière intervention 22 août 2017
11 août 2017 à 09:46
option explicit
doit être au début du module de code.
0
Yoshimario77 Messages postés 33 Date d'inscription jeudi 13 juillet 2017 Statut Membre Dernière intervention 22 août 2017 > yg_be Messages postés 23401 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 décembre 2024
11 août 2017 à 10:44
impossible d'attribuer une valeur à cet objet (erreur d'exécution 2448)
0
yg_be Messages postés 23401 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 décembre 2024 1 557 > Yoshimario77 Messages postés 33 Date d'inscription jeudi 13 juillet 2017 Statut Membre Dernière intervention 22 août 2017
11 août 2017 à 10:46
nous ne voyons pas ce que tu vois, nous ne savons pas ce que tu sais. 
si tu ne nous donnes pas d'information, nous ne pouvons pas les deviner.
0
Yoshimario77 Messages postés 33 Date d'inscription jeudi 13 juillet 2017 Statut Membre Dernière intervention 22 août 2017
11 août 2017 à 10:52
C'est le message d'erreur qui apparaît quand je met option explicit sur la ligne avant Private Sub num_comptage_Click()
0
Utilisateur anonyme
14 août 2017 à 19:41
Bonjour,

si tu fais :
Private Sub num_comptage_Click()
    
msgbox plantation

End Sub 


que cela retourne t'il ?

A+
0
Yoshimario77 Messages postés 33 Date d'inscription jeudi 13 juillet 2017 Statut Membre Dernière intervention 22 août 2017
16 août 2017 à 07:46
Une boîte de dialogue apparaît et renvoie 0 ou -1 suivant si la case est cochée ou non
0
Utilisateur anonyme
16 août 2017 à 18:11
Essaie alors avec ce code :

Option Explicit
Private Sub plantation_Click()
    If plantation = -1 Then
    Me!num_comptage= "0"
Else
    Me!num_comptage = "1"
End If
End Sub 
0
Yoshimario77 Messages postés 33 Date d'inscription jeudi 13 juillet 2017 Statut Membre Dernière intervention 22 août 2017
21 août 2017 à 08:54
Toujours le même message d'erreur sur la ligne
Me![num_comptage] = "0"
0
yg_be Messages postés 23401 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 décembre 2024 1 557 > Yoshimario77 Messages postés 33 Date d'inscription jeudi 13 juillet 2017 Statut Membre Dernière intervention 22 août 2017
21 août 2017 à 09:07
peux-tu partager ton fichier?
0
Yoshimario77 Messages postés 33 Date d'inscription jeudi 13 juillet 2017 Statut Membre Dernière intervention 22 août 2017 > yg_be Messages postés 23401 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 décembre 2024
21 août 2017 à 09:29
J'ai envie de dire oui bien sûr, mais je ne peux mettre que des images dans mon message !
0
yg_be Messages postés 23401 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 décembre 2024 1 557 > Yoshimario77 Messages postés 33 Date d'inscription jeudi 13 juillet 2017 Statut Membre Dernière intervention 22 août 2017
21 août 2017 à 09:47
tu peux partager ton fichier sur internet, et partager le lien ici.
exemples de possibilités de partage sur internet: google drive, cjoint.
0
Yoshimario77 Messages postés 33 Date d'inscription jeudi 13 juillet 2017 Statut Membre Dernière intervention 22 août 2017 > yg_be Messages postés 23401 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 décembre 2024
21 août 2017 à 10:24
0