Bonjour,
J'ai une macro qui fonctionnait très bien, j'en ai fais d'autres, changer les noms de mes feuilles ou mes plages de cellules ont bougé mais j'ai bien tout vérifié et modifié correctement mais j'obtiens l'erreur du titre sur la ligne :
With Activesheet.Shapes("Check box"& cellule.Row)
Mais j'ai vérifié 15 fois et j'ai rien touché par rapport au début... je vous joint la macro complète :
Merci pour votre aide... J'espère trouver une solution, je viens de créer et renommer 100 check box pour cette macro...
J'ai une macro qui fonctionnait très bien, j'en ai fais d'autres, changer les noms de mes feuilles ou mes plages de cellules ont bougé mais j'ai bien tout vérifié et modifié correctement mais j'obtiens l'erreur du titre sur la ligne :
With Activesheet.Shapes("Check box"& cellule.Row)
Mais j'ai vérifié 15 fois et j'ai rien touché par rapport au début... je vous joint la macro complète :
VB:
Sub Generer_listes_preparation()
Application.ScreenUpdating = False
'Filtre avancé qui séléctionne les éléments cochés dans la feuille Choix matériaux et les copie dans la feuille Mise en préparation
Columns("AH:AM").Hidden = False
Sheets("Choix_materiaux").Activate
Sheets("Choix_materiaux").Range("B34:G118").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets("Mise_en_preparation").Range("BW2:CB3"), CopyToRange:=Sheets("Mise_en_preparation").Range("B2:E2"), Unique:=False
Sheets("Mise_en_preparation").Select
' Cacher la zone de critères
Columns("BV:CC").Hidden = True
' Afficher ou masquer des cases à cocher
Dim cellule As Range
For Each cellule In Range("B3:B154")
'Lorsque la valeur 0 est détecté dans la colonne B, le contenu de la cellule est effacé pour faire disparaitre la case à cocher
If cellule.Value = "0" Then cellule.ClearContents
'Lorsque la valeur est différente de 0 dans la colonne B, une case à cocher apparaît dans la colonne nommée "CHOIX"
If cellule.Value <> "0" Then
Sheets("Mise_en_preparation").Activate
With ActiveSheet.Shapes("Check Box" & cellule.Row)
.DrawingObject.Value = False
.Visible = cellule <> ""
End With
End If
Next
'Uniformise la mise en page
Range("B3:F54").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Rows("3:54").Select
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("A3").Select
End Sub
Merci pour votre aide... J'espère trouver une solution, je viens de créer et renommer 100 check box pour cette macro...