Problème Checkbox

Y compris Power BI, Power Query et toute autre question en lien avec Excel
b
bazinga
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 24 novembre 2016
Version d'Excel : 2010 FR

Message par bazinga » 20 décembre 2016, 14:17

Bonjour,

je suis confronté à un problème que je n'arrive pas à résoudre, je ne sais même pas comment il apparaît. Lorsque que je clique sur une checkbox, il y a l'apparition d'un vrai si je coche ou d'un faux si je décoche. Je n'arrive pas à trouver pourquoi !!
Sub creation_checkbox()

    Call Initialisation
    Dim nb_ligne_tableau As Double
    nb_ligne_tableau = (ShLiOpTu.Range("A" & Rows.Count).End(xlUp).Row) - 4
    Dim i As Double
    Dim cb As CheckBox
        
        If (ShLiOpTu.OLEObjects("active_marge").Object.Value = True) Then
            For i = 5 To nb_ligne_tableau

                If (ShLiOpTu.Range("A" & i).Value <> "Somme C2" And ShLiOpTu.Range("A" & i).Value <> "Somme C3") Then
                
                    If (ShLiOpTu.Range("R" & i).Value <> 0) Then
                
                        Set cb = ShLiOpTu.CheckBoxes.Add(Range("AA" & i).Left, Range("AA" & i).Top, 120, 12)
    
                        With cb
    
                            .Caption = "+10% de PS"
                            .LinkedCell = Range("AA" & i).Address
                            .OnAction = "maj_gain"
                            .Value = xlOff
                            .Display3DShading = False

                        End With
                    End If
                Else
                    i = i + 1
                End If
            Next i
        Else
            Call DeleteCheckbox
        End If
        

End Sub
En espérant que cela vous suffise !

Merci de vos réponses !
T
Theze
Passionné d'Excel
Passionné d'Excel
Messages : 4'020
Appréciations reçues : 305
Inscrit le : 26 janvier 2011
Version d'Excel : 2007/2019

Message par Theze » 20 décembre 2016, 14:30

Bonjour,

Il manque la macro "maj_gain" pour savoir ce qui se passe quand on clique !
Il vaut mieux un qui sait que cent qui cherchent :wink:

Ce forum étant un lieu de partage, je n'accepte pas les messages privés !
b
bazinga
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 24 novembre 2016
Version d'Excel : 2010 FR

Message par bazinga » 20 décembre 2016, 14:45

Sub maj_gain()

    Call Initialisation
    ShLiOpTu.Range("AB:AL").EntireColumn.Delete
    Dim cb As CheckBox
    Dim sCaller As String
    Dim cbx As CheckBox
    Dim shp As Shape
    Dim num_ligne As Double
    Dim num_ligne_ko As Double
    Dim num_ligne_koko As Double
    Dim resultat_vlookup As Variant
    
    Dim nb_ligne_tableau_C2 As Double
    Dim nb_ligne_tableau_C3C4 As Double
    nb_ligne_tableau_C2 = (Sheets("Import C3C4").Range("A" & Rows.Count).End(xlUp).Row) - 4
    nb_ligne_tableau_C3C4 = (Sheets("Import C3C4").Range("A" & Rows.Count).End(xlUp).Row) - 4
    

    sCaller = Application.Caller
    Set shp = ActiveSheet.Shapes(sCaller)
    Set cbx = ActiveSheet.CheckBoxes(sCaller)
    
    If (cbx.Value = 1) Then
    
    
        num_ligne = shp.TopLeftCell.Row
        ShLiOpTu.Range("AB" & num_ligne).FormulaLocal = "=ENT(SIERREUR(I" & num_ligne & "+(I" & num_ligne & "*0,1);""0""))"
        ShLiOpTu.Range("AB" & num_ligne).Copy
        ShLiOpTu.Range("I" & num_ligne).PasteSpecial Paste:=xlPasteValues

        ShLiOpTu.Range("AC" & num_ligne).FormulaLocal = "=ENT(SIERREUR(J" & num_ligne & "+(J" & num_ligne & "*0,1);""0""))"
        ShLiOpTu.Range("AC" & num_ligne).Copy
        ShLiOpTu.Range("J" & num_ligne).PasteSpecial Paste:=xlPasteValues

        ShLiOpTu.Range("AD" & num_ligne).FormulaLocal = "=ENT(SIERREUR(K" & num_ligne & "+(K" & num_ligne & "*0,1);""0""))"
        ShLiOpTu.Range("AD" & num_ligne).Copy
        ShLiOpTu.Range("K" & num_ligne).PasteSpecial Paste:=xlPasteValues

        ShLiOpTu.Range("AE" & num_ligne).FormulaLocal = "=ENT(SIERREUR(L" & num_ligne & "+(L" & num_ligne & "*0,1);""0""))"
        ShLiOpTu.Range("AE" & num_ligne).Copy
        ShLiOpTu.Range("L" & num_ligne).PasteSpecial Paste:=xlPasteValues

        ShLiOpTu.Range("AF" & num_ligne).FormulaLocal = "=ENT(SIERREUR(M" & num_ligne & "+(M" & num_ligne & "*0,1);""0""))"
        ShLiOpTu.Range("AF" & num_ligne).Copy
        ShLiOpTu.Range("M" & num_ligne).PasteSpecial Paste:=xlPasteValues

        ShLiOpTu.Range("AG" & num_ligne).FormulaLocal = "=ENT(SIERREUR(N" & num_ligne & "+(N" & num_ligne & "*0,1);""0""))"
        ShLiOpTu.Range("AG" & num_ligne).Copy
        ShLiOpTu.Range("N" & num_ligne).PasteSpecial Paste:=xlPasteValues

        ShLiOpTu.Range("AH" & num_ligne).FormulaLocal = "=ENT(SIERREUR(O" & num_ligne & "+(O" & num_ligne & "*0,1);""0""))"
        ShLiOpTu.Range("AH" & num_ligne).Copy
        ShLiOpTu.Range("O" & num_ligne).PasteSpecial Paste:=xlPasteValues

        ShLiOpTu.Range("AI" & num_ligne).FormulaLocal = "=ENT(SIERREUR(P" & num_ligne & "+(P" & num_ligne & "*0,1);""0""))"
        ShLiOpTu.Range("AI" & num_ligne).Copy
        ShLiOpTu.Range("P" & num_ligne).PasteSpecial Paste:=xlPasteValues

        ShLiOpTu.Range("AJ" & num_ligne).FormulaLocal = "=ENT(SIERREUR(Q" & num_ligne & "+ (Q" & num_ligne & "*0,1);""0""))"
        ShLiOpTu.Range("AJ" & num_ligne).Copy
        ShLiOpTu.Range("Q" & num_ligne).PasteSpecial Paste:=xlPasteValues

        ShLiOpTu.Range("AK" & num_ligne).FormulaLocal = "=ENT(SIERREUR(G" & num_ligne & "- ( Q" & num_ligne & ");""0""))"
        ShLiOpTu.Range("AK" & num_ligne).Copy
        ShLiOpTu.Range("R" & num_ligne).PasteSpecial Paste:=xlPasteValues

        ShLiOpTu.Range("AL" & num_ligne).FormulaLocal = "=SIERREUR(((G" & num_ligne & " -   Q" & num_ligne & " ) / G" & num_ligne & " );""0"")"
        ShLiOpTu.Range("AL" & num_ligne).Copy
        ShLiOpTu.Range("S" & num_ligne).PasteSpecial Paste:=xlPasteValues
        
    
    Else
        num_ligne_ko = shp.TopLeftCell.Row
'        ShLiOpTu.Range("AM" & num_ligne_ko).FormulaLocal = "=RECHERCHEV(A " & num_ligne_ko & ";'Import C2'!$I$4:$J$ " & num_ligne_ko & ";1;FAUX)"
        resultat_vlookup = Application.VLookup(ShLiOpTu.Range("A" & num_ligne_ko), Worksheets("Import C2").Range("I4:J" & nb_ligne_tableau_C2), 2, 0)
        If (IsError(resultat_vlookup)) Then
            ShLiOpTu.Range("I" & num_ligne_ko).Value = Application.VLookup(ShLiOpTu.Range("A" & num_ligne_ko), Worksheets("Import C3C4").Range("F4:AT" & nb_ligne_tableau_C3C4), 34, 0)
            ShLiOpTu.Range("J" & num_ligne_ko).Value = Application.VLookup(ShLiOpTu.Range("A" & num_ligne_ko), Worksheets("Import C3C4").Range("F4:AT" & nb_ligne_tableau_C3C4), 35, 0)
            ShLiOpTu.Range("K" & num_ligne_ko).Value = Application.VLookup(ShLiOpTu.Range("A" & num_ligne_ko), Worksheets("Import C3C4").Range("F4:AT" & nb_ligne_tableau_C3C4), 36, 0)
            ShLiOpTu.Range("L" & num_ligne_ko).Value = Application.VLookup(ShLiOpTu.Range("A" & num_ligne_ko), Worksheets("Import C3C4").Range("F4:AT" & nb_ligne_tableau_C3C4), 37, 0)
            ShLiOpTu.Range("M" & num_ligne_ko).Value = Application.VLookup(ShLiOpTu.Range("A" & num_ligne_ko), Worksheets("Import C3C4").Range("F4:AT" & nb_ligne_tableau_C3C4), 38, 0)
            ShLiOpTu.Range("N" & num_ligne_ko).Value = Application.VLookup(ShLiOpTu.Range("A" & num_ligne_ko), Worksheets("Import C3C4").Range("F4:AT" & nb_ligne_tableau_C3C4), 39, 0)
            ShLiOpTu.Range("O" & num_ligne_ko).Value = Application.VLookup(ShLiOpTu.Range("A" & num_ligne_ko), Worksheets("Import C3C4").Range("F4:AT" & nb_ligne_tableau_C3C4), 40, 0)
            ShLiOpTu.Range("P" & num_ligne_ko).Value = Application.VLookup(ShLiOpTu.Range("A" & num_ligne_ko), Worksheets("Import C3C4").Range("F4:AT" & nb_ligne_tableau_C3C4), 41, 0)
            ShLiOpTu.Range("Q" & num_ligne_ko).Value = Application.VLookup(ShLiOpTu.Range("A" & num_ligne_ko), Worksheets("Import C3C4").Range("F4:AT" & nb_ligne_tableau_C3C4), 15, 0)
            ShLiOpTu.Range("R" & num_ligne_ko).Value = Application.VLookup(ShLiOpTu.Range("A" & num_ligne_ko), Worksheets("Import C3C4").Range("F4:AT" & nb_ligne_tableau_C3C4), 16, 0)
            ShLiOpTu.Range("S" & num_ligne_ko).Value = Application.VLookup(ShLiOpTu.Range("A" & num_ligne_ko), Worksheets("Import C3C4").Range("F4:AT" & nb_ligne_tableau_C3C4), 17, 0)
        Else
            ShLiOpTu.Range("I" & num_ligne_ko).Value = Application.VLookup(ShLiOpTu.Range("A" & num_ligne_ko), Worksheets("Import C2").Range("I4:AM" & nb_ligne_tableau_C2), 24, 0)
            ShLiOpTu.Range("J" & num_ligne_ko).Value = Application.VLookup(ShLiOpTu.Range("A" & num_ligne_ko), Worksheets("Import C2").Range("I4:AM" & nb_ligne_tableau_C2), 25, 0)
            ShLiOpTu.Range("K" & num_ligne_ko).Value = Application.VLookup(ShLiOpTu.Range("A" & num_ligne_ko), Worksheets("Import C2").Range("I4:AM" & nb_ligne_tableau_C2), 26, 0)
            ShLiOpTu.Range("L" & num_ligne_ko).Value = Application.VLookup(ShLiOpTu.Range("A" & num_ligne_ko), Worksheets("Import C2").Range("I4:AM" & nb_ligne_tableau_C2), 27, 0)
            ShLiOpTu.Range("M" & num_ligne_ko).Value = Application.VLookup(ShLiOpTu.Range("A" & num_ligne_ko), Worksheets("Import C2").Range("I4:AM" & nb_ligne_tableau_C2), 28, 0)
            ShLiOpTu.Range("N" & num_ligne_ko).Value = Application.VLookup(ShLiOpTu.Range("A" & num_ligne_ko), Worksheets("Import C2").Range("I4:AM" & nb_ligne_tableau_C2), 29, 0)
            ShLiOpTu.Range("O" & num_ligne_ko).Value = Application.VLookup(ShLiOpTu.Range("A" & num_ligne_ko), Worksheets("Import C2").Range("I4:AM" & nb_ligne_tableau_C2), 30, 0)
            ShLiOpTu.Range("P" & num_ligne_ko).Value = Application.VLookup(ShLiOpTu.Range("A" & num_ligne_ko), Worksheets("Import C2").Range("I4:AM" & nb_ligne_tableau_C2), 31, 0)
            ShLiOpTu.Range("Q" & num_ligne_ko).Value = Application.VLookup(ShLiOpTu.Range("A" & num_ligne_ko), Worksheets("Import C2").Range("I4:AM" & nb_ligne_tableau_C2), 9, 0)
            ShLiOpTu.Range("R" & num_ligne_ko).Value = Application.VLookup(ShLiOpTu.Range("A" & num_ligne_ko), Worksheets("Import C2").Range("I4:AM" & nb_ligne_tableau_C2), 10, 0)
            ShLiOpTu.Range("S" & num_ligne_ko).Value = Application.VLookup(ShLiOpTu.Range("A" & num_ligne_ko), Worksheets("Import C2").Range("I4:AM" & nb_ligne_tableau_C2), 11, 0)
            
        End If
    End If
    ShLiOpTu.Range("AB:AL").EntireColumn.Delete
End Sub
T
Theze
Passionné d'Excel
Passionné d'Excel
Messages : 4'020
Appréciations reçues : 305
Inscrit le : 26 janvier 2011
Version d'Excel : 2007/2019

Message par Theze » 20 décembre 2016, 15:01

L'apparition du Vrai/Faux se fait où , dans une boite de message, dans une cellule, dans un contrôle ?
Poste ton classeur sans données confidentielles afin de voir ce qu'il en est !
Il vaut mieux un qui sait que cent qui cherchent :wink:

Ce forum étant un lieu de partage, je n'accepte pas les messages privés !
b
bazinga
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 24 novembre 2016
Version d'Excel : 2010 FR

Message par bazinga » 21 décembre 2016, 08:56

Merci de te pencher sur mon problème.

Oui c'est dans la même cellule. Quand j'efface le contenu de la cellule avec la méthode Clear, cela efface aussi la valeur du Checkbox. Par exemple si elle est cochée, cela la décochera ...

Par contre pour le classeur je suis désolé mais je peux vraiment rien posté ..

Cordialement,
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message