Problème ouverture UserForm avec condition

bonjour à toutes et tous,

je reviens vers vous pour un problème d'UserForm.

quand je clic dans la cellule K92 et que les conditions sont réuni l'UserForm est sensée s'ouvrir mais il ne se passe rien

Je joint un fichier pour que ce soit plus clair.

j'espère que vous pourrez m'aider.

par avance merci

6test-userform.zip (284.82 Ko)

Bonjour,

K92 est une checkbox qui doit déclencher l'ouverture du USF ? De plus nous n'avons pas le mot de passe du projet VBA, difficile d'investiguer ..

Cdlt,

Oups le MDP est cn13723

Bonjour,

Le code du projet est de vous ? Car vous n'avez pas lié votre checkbox à votre macro, ce qui est la base ... Ci-contre la manipulation à suivre :

2021 05 09 10 17 17 affecter une macro

Cdlt,

bonjour Ergotamine,

tout d'abord merci pour ton aide et oui le code est de moi & as mal d'aide trouver ici.

le problème est qu'il a déjà une macro d'affectée à cette CHECKBOX et on ne peux pas en mettre une 2eme, je crois, il existe un autre moyen ?

Bonjour,

Oui, intégrer votre sub dans la sub active de votre checkbox :

'Active la CheckBox "K92" Kit 1B 1er retour
Sub Kit1BK92()
Application.ScreenUpdating = False
    ThisWorkbook.Sheets("calcul").Unprotect Password:=""
    If Worksheets("Enquête").Range("F71") = "Estimation" And [K92] = True Then
    If Worksheets("Enquête").Range("G5") = "Série" And [K17] = False _
    And Worksheets("Enquête").Range("G42") = "Retour Série" And [K58] = False Then
    Feuil2.Cells(33, 4).Value = -86
    Feuil2.Range("A33:F33").Interior.Color = RGB(192, 192, 192)
End If

    Else
    Feuil2.Cells(33, 4).ClearContents
    Feuil2.Range("A33").Interior.Color = xlNone
    Feuil2.Range("B33:F33").Interior.Color = RGB(192, 192, 192)

        'Si on est en retour usine ou refus banc et que le kit est déjà existant on n'applique pas les -96g

    If Worksheets("Enquête").Range("F71") = "1er retour usine le" And [K92] = True _
    Or Worksheets("Enquête").Range("F71") = "Refus banc du" And [K92] = True _
    Or Worksheets("Enquête").Range("F71") = "Valeurs banc du" And [K92] = True Then
    Feuil2.Range("A33:F33").Interior.Color = RGB(192, 192, 192)

    Else
    Feuil2.Cells(33, 4).ClearContents
    Feuil2.Range("A33").Interior.Color = xlNone
    Feuil2.Range("B33:F33").Interior.Color = RGB(192, 192, 192)
End If
    End If
    ThisWorkbook.Sheets("calcul").Protect Password:=""
    Application.ScreenUpdating = True
    If Worksheets("Enquête").Range("F71") = "Estimation" And [K92] = True Then Taraudage.Show
End Sub

Bon par contre bon courage pour maintenir votre code. Je ne l'ai pas étudié mais réflechissez à un possible code unique a affecter à toutes vos checkbox, via un ID qui correspond au numéro de ligne, etc ... Ou ouvrez un nouveau sujet en expliquant où doit aller chercher les infos car vos tableaux semblent tous les mêmes, il est donc fortement probable de faire un boucle, un offset à partir de la checkbox active et retrouver ou recopier les informations souhaitées.

En tout cas pour moi le problème est résolu ici.

Cdlt,

Merci beaucoup pour votre aide. je vais tenir compte de vos conseils mais étant complètement novice en VBA cela me paraît très compliqué.

bonne journée.

Bonjour,

Il faut que vous vous posiez la question de "si je clic sur cette checkbox alors je regarde la valeur de X cellules au dessus, ou à droite" si vous parlez en référence relative.

Par exemple votre code en posant bien le raisonnement logique et priorisant les tests conditionnels auparavant pourrait peut être être réduit en :

Sub Kit1BK92()
With Worksheets("Calcul")
    .Unprotect Password:=""
    If [K92] = True Then
        If [F71] = "Estimation" And [G5] = "Série" And [K17] = False And [G42] = "Retour Série" And [K58] = False Then
            .[D33] = -86
            Else
            .[D33].ClearContents
        End If
        .[B33:F33].Interior.Color = RGB(192, 192, 192)
        .[A33].Interior.Color = xlNone
    End If
    .Protect Password:=""
End With
If [F71] = "Estimation" And [K92] = True Then Taraudage.Show
End Sub

Ensuite il faut établir le raisonnement mathématique entre la checkbox active et les cellules à vérifier, si le nombre de lignes ou colonnes est égal pour chaque checkbox alors un seul code unique est possible.

Mais là il faudra que vous fassiez le travail en amont, avec une feuille de papier et un stylo.

Cdlt,

encore merci.

Maintenant, je mesure l'étendue de mon ignorance en VBA. Je garde précieusement votre code.

Rechercher des sujets similaires à "probleme ouverture userform condition"