• Initiateur de la discussion Initiateur de la discussion Jiheme
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Jiheme

XLDnaute Accro
Bonsoir à tous

Trop longtemps que je n'était pas venu, surcharge de boulot.

Voici mon problème : je voudrias inserrer une case à cocher sur cent feuilles d'un classeur, je n'y arrive pas en sélectionnant toutes mes feuilles, pas moins en faisant copier / coller...

Merci d'avance
Jiheme
 
Re : Copier un contrôle

Bonsoir Jiheme, le forum

Voila ce fut laborieux ( quand on ne voit l'évidence!!! 😱 )

Cette fois-ci ca fonctionne !
EDIT:

Code:
Sub AddCheckBoxesOK()
On Error Resume Next
Application.ScreenUpdating = False
Dim c As Range, myRange As Range, i As Integer
For i = 1 To Worksheets.Count
Set myRange = Worksheets(i).Range("B1:B10")
For Each c In myRange.Cells
Worksheets(i).Activate
ActiveSheet.CheckBoxes.Add(c.Left, c.Top, c.Width, c.Height).Select
With Selection
.LinkedCell = c.Address
.Characters.Text = ""
.Name = c.Address
End With
Next c
Next i
End Sub
Le code ci-dessous crée bien des checkbox dans toutes les feuilles

Il reste une erreur à corriger (je ne trouve pas ou)

J'ai du faire une erreur de syntaxe

Qui a la solution au (petit) problème?

Code:
Sub AddCheckBoxes()
'SOURCE:[URL="http://blog.livedoor.jp/andrewe/archives/17357484.html"]Andrew's Excel Tips:Checkboxes[/URL]
    On Error Resume Next
    Dim c As Range, myRange As Range, i As Long
    Application.ScreenUpdating = False
   For i = 1 To Worksheets.Count
 
   Set myRange = Worksheets(i).Range("B2:B10")
   With Worksheets(i)
    For Each c In myRange.Cells
        .CheckBoxes.Add(c.Left, c.Top, c.Width, c.Height).Select
            With Selection
                .LinkedCell = c.Address
                .Characters.Text = vbNullString
                .Name = c.Address
            End With
 
        Next
        myRange.Select
     End With
Next i
End Sub
 
Dernière édition:
Re : Copier un contrôle

Bonjour Jiheme, Stapple

une autre solution sans "select" :

Code:
Sub test()
Dim c As Range, i As Integer, x As Object
Application.ScreenUpdating = False
For i = 1 To Worksheets.Count
    For Each c In Worksheets(i).Range("B1:B10")
        Set x = Worksheets(i).CheckBoxes.Add(c.Left, c.Top, c.Width, c.Height)
        With x
            .LinkedCell = c.Address
            .Caption = ""
        End With
    Next c
Next i
Application.ScreenUpdating = True
End Sub

bonne journée
@+
 
Re : Copier un contrôle

Salut Stapple

et oui, un rien 🙂 ... mais le plus important c'est la déclaration du "x" en type de donnée "Objet"
Code:
x As Object

mais je te rassure j'ai également perdu quelques cheveux avec les "shapes" et autre "oleobject"... bon après midi@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
665
Réponses
56
Affichages
3 K
T
  • Résolu(e)
Microsoft 365 pb effacement macro
Réponses
8
Affichages
795
Themax
T
Retour