XL 2019 Checkbox_click qui s'execute toute seule ! (non désiré)

Azuveus

XLDnaute Nouveau
Bonjour les amies du Net,

Aujourd'hui, j'ai un petit problème avec mon programme,
Sur une Userform j'ai parmi d'autre Button, Textbox, Etc. quatre Checkbox :

exemple :
VB:
Private Sub CheckBox25_Click() 'LIVRAISON STOCK
       
        If CheckBox25.Value = True Then
        Exit Sub
        Else
        TextBox61.Value = "Appareil(s) livré(s) au stock."
        CheckBox25.Value = True
        CheckBox25.Enabled = False
        'Update commentaire
        UpdateCom
        End If
End Sub

Il s'avere que cette Useform me sert a afficher des informations d'un seul client a la fois et que par conséquences elle sont unique au client.
J'ai créé (sur ma Userform) deux boutons (client suivant, client précédent) qui me permette de naviguer entre plusieurs clients sans devoir quiter la Useform...
VB:
'FONCTION FICHE SUIVANTE
Sub FICHE_SUIVANTE()
   
    Dim X As Integer
   
    Dim J As Long: J = 1
    Do Until ActiveCell.Offset(J, 0).Rows.Hidden = False
        J = J + 1
    Loop
   
    P = ActiveCell.Offset(J, 0).Value
   
    If P = "" Then
        Exit Sub
    End If
   
    Dim n As Long: n = 1
    Do Until ActiveCell.Offset(n, 0).Rows.Hidden = False
        n = n + 1
    Loop
    ActiveCell.Offset(n, 0).Select
    X = ActiveCell.Row
   
    update_files
   
End Sub

OR ! Lorsque je clique sur Client Précedent / Suivant, la macro SUB Click s'execute! (uniquement si la checkbox du client vu avant été coché).
et lorsque je tente de "reinitialiser la checkbox' la sub s'execute deux fois'...

Je ne comprends vraiment pas pourquoi...

Pourriez vous me venir en aide svp ?
Merci beaucoup d'avance
 

Azuveus

XLDnaute Nouveau
Voici les 3 etapes :

STEP 1 :
1660908465713.png
CLient : 1 > fiche précedente >
STEP 2 :

1660908574227.png

Sur la fiche du Client2 la case est coché (ce qui est normal > fiche suivante pour revenir au client 1 !
STEP 3 : retour client 1 >

1660908688034.png


La case est resté coché... du coup, il a update la fiche de l'autre client, y compris les commentaires.
J'ai tenté de réinitialiser la checkbox au moment du changement de client, mais çà n'a fait qu'agraver la situation.

Dans cette action je n'ai utiliser que 2 boutons : "fiche Précédente et fiche suivante".

25 000 client dans le programmes... je ne peut pas le shared...
 

Deadpool_CC

XLDnaute Accro
Et bien cela ressemble à un bug dans ton code qui remplit les champs / checkbox avec les données de l'enregistrement suivant/précédent données suite au clique sur précédent ou suivant.

as-tu vérifier que dans cette action click suivant tu initialise bien tous les éléments de ton formulaire ?

sans fichier je peux pas faire mieux
 

Azuveus

XLDnaute Nouveau
Dans mon sub
VB:
'FONCTION FICHE SUIVANTE
Sub FICHE_SUIVANTE()
 
    Dim X As Integer
 
    Dim J As Long: J = 1
    Do Until ActiveCell.Offset(J, 0).Rows.Hidden = False
        J = J + 1
    Loop
 
    P = ActiveCell.Offset(J, 0).Value
 
    If P = "" Then
        Exit Sub
    End If
 
    Dim n As Long: n = 1
    Do Until ActiveCell.Offset(n, 0).Rows.Hidden = False
        n = n + 1
    Loop
    ActiveCell.Offset(n, 0).Select
    X = ActiveCell.Row
 
    update_files
 
End Sub

J'appelle la fonction " update_files qui initialise tout les champs, y compris celui ci... (Update file et appelé dans mon Private Sub UserForm_Initialize() et fonctionne tres bien... Le problême vient uniquement lorsque j'utilise le bouton fiche précédente / suivante dont le code est juste au dessus.

Ici, j'ai réellement l'impression que mon Sub Checkbox s'exécute sans ma permission… a croire que vu que "la checbox" change de variable alors il doit exécuter le sub...

Lorsque je mets mon Sub Checkbox21 en commentaire… plus de bug… logique puisque il n'a plus d'instruction a executer... sauf que si je veux cliquer sur mon checkbox, il n'y aura plus rien a faire non plus...
 
Dernière édition:

vgendron

XLDnaute Barbatruc
On va faire simple et clair !! Whoua Super... !

Je vais etre precis :
Je veux juste savoir pourquoi un event click s'exécute tout seul sans ma permission et comment faire en sorte que cela ne se reproduise pas !
Excel et VBA ne sont pas encore dotés d'intelligence Artificielle.. donc.. si l'évènement _click se déclenche c'est que ton code provoque l'évènement
et pour savoir ce qui déclenche........ FICHIER !!!

à défaut de savoir pourquoi ce click intervient, tu peux désactvier les évènements.. et ca.. c'était dans ma première proposition... post 5
 

Azuveus

XLDnaute Nouveau
Ok, il semblerait que j'ai un début de réponse...

Effectivement si je n'initialise pas du tout la checkbox dans ma sub Update, la sub Checkbox_click n'est pas appelé... en revanche, c'est bien mignon tout çà mais c'est pénible car, j'ai besoin de l'initialiser pour savoir si elle est True or False... a un moment donné...

Question : Updater la checkbox dans la Sub Update revient-il a appeler la sub Checkbox _click ?

A savoir que dans ma sub update je lui dis juste : Checkbox.value = BoardSheet.Cells(X, MaCol(14)).Value ....
 
Dernière édition:

Deadpool_CC

XLDnaute Accro
à priori sur internet on trouve d'autre parsonne qui ont le même soucis avec les checkbox ... ou le _Click() et le _Change() semblent être déclenché tous les deux lors de la mise à jour de la valeur checkbox.value


et aussi :

après je suis sec ... j'ai pas d'autres pistes
 

Statistiques des forums

Discussions
314 629
Messages
2 111 349
Membres
111 110
dernier inscrit
chergui