Problème Checkbox
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 !
Bonjour,
Il manque la macro "maj_gain" pour savoir ce qui se passe quand on clique !
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
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 !
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,