| | bubale | Posté le 15/04/2008 @ 12:29 | Petit astucien
120 Messages
| Bonjours à tous, j'ai un soucis en VBA, j'ai créé une macro qui insère un ensemble checkbox dans une colonne et je voudrais que chaque checkbox ait comme cellule lié la cellule qui est a coté d'elle. Par exemple, la premiere checkbox aura la cellule B2 qui lui sera liée, la deuxieme aura la cellule B3 liée etc... Voici le code mais ca ne marche pas! Sub Inserer_checkboxes() 'Insère autant de case à cocher que d'élève Dim C As Integer ' C est le nombre de case a insérer C = Worksheets("Options").Range("B4").Value Dim Nom As Variant For i = 2 To C Sheets("Affich").Select ActiveSheet.CheckBoxes.Add(170, 3.5 + 12.75 * (i - 1), 120.75, 34.5).Select With Selection .Value = True .LinkedCell = Cells(i, 2) .Display3DShading = True End With Nom = Worksheets("Infos_eleves").Cells(i, 2).Value Sheets("Affich").Select Selection.Characters.Text = Nom Next End Sub C'est l'expression en gras souligné qui me pose pb. Quelqu'un aurait-il une idée pour me sauver la vie? Merci d'avance!
| | |
| |
| Publicité |
|
| | Bérylion | Posté le 17/04/2008 à 10:04 | Astucien
1960 Messages
| Message original par bubale
Bonjours à tous, j'ai un soucis en VBA, j'ai créé une macro qui insère un ensemble checkbox dans une colonne et je voudrais que chaque checkbox ait comme cellule lié la cellule qui est a coté d'elle. Par exemple, la premiere checkbox aura la cellule B2 qui lui sera liée, la deuxieme aura la cellule B3 liée etc... Voici le code mais ca ne marche pas! Sub Inserer_checkboxes() 'Insère autant de case à cocher que d'élève Dim C As Integer ' C est le nombre de case a insérer C = Worksheets("Options").Range("B4").Value Dim Nom As Variant For i = 2 To C Sheets("Affich").Select ActiveSheet.CheckBoxes.Add(170, 3.5 + 12.75 * (i - 1), 120.75, 34.5).Select With Selection .Value = True .LinkedCell = Cells(i, 2).address .Display3DShading = True End With Nom = Worksheets("Infos_eleves").Cells(i, 2).Value Sheets("Affich").Select Selection.Characters.Text = Nom Next End Sub C'est l'expression en gras souligné qui me pose pb. Quelqu'un aurait-il une idée pour me sauver la vie? Merci d'avance! 
| | | | | Bérylion | Posté le 17/04/2008 à 12:49 | Astucien
1960 Messages
| la même en plus court : VBA Sub Inserer_checkboxes() Sheets("Affich").Select For i% = 2 To Worksheets("Options").Range("B4").Value Sheets("Affich").CheckBoxes.Add(170, 3.5 + 12.75 * (i - 1), 120.75, 34.5).Select With Selection .Value = True .LinkedCell = Cells(i, 2).Address .Characters.Text = Worksheets("Infos_eleves").Cells(i, 2).Value End With Next End Sub
ça tourne à peu près 2x plus vite...
| | | | | davidouandco | Posté le 13/06/2008 à 19:51 | Petit astucien
7 Messages
| Sub Inserer_checkboxes() 'Insère autant de case à cocher que d'élève Dim C As Integer ' C est le nombre de case a insérer C = Worksheets("Options").Range("B4").Value Dim Nom As Variant For i = 2 To C Worksheets("Options").Range("C1").Value = i Case_en_cours = "B" & i Sheets("Affich").Select ActiveSheet.CheckBoxes.Add(170, 3.5 + 12.75 * (i - 1), 120.75, 34.5).Select With Selection .Value = True .LinkedCell = Case_en_cours .Display3DShading = True End With Nom = Worksheets("Infos_eleves").Cells(i, 2).Value Sheets("Affich").Select Selection.Characters.Text = Nom Next End Sub | | | | | Bérylion | Posté le 16/06/2008 à 13:29 | Astucien
1960 Messages
| davidouandco a écrit :
Sub Inserer_checkboxes() 'Insère autant de case à cocher que d'élève Dim C As Integer ' C est le nombre de case a insérer C = Worksheets("Options").Range("B4").Value Dim Nom As Variant For i = 2 To C Worksheets("Options").Range("C1").Value = i Case_en_cours = "B" & i Sheets("Affich").Select ActiveSheet.CheckBoxes.Add(170, 3.5 + 12.75 * (i - 1), 120.75, 34.5).Select With Selection .Value = True .LinkedCell = Case_en_cours .Display3DShading = True End With Nom = Worksheets("Infos_eleves").Cells(i, 2).Value Sheets("Affich").Select Selection.Characters.Text = Nom Next End Sub
Salut davidouandco
pourquoi faire simple quand on peut faire compliqué, hein ?
Sub Inserer_checkboxes() 'Insère autant de case à cocher que d'élève Dim C As Integer ' C est le nombre de case a insérer C = Worksheets("Options").Range("B4").Value Dim Nom As Variant For i = 2 To C Worksheets("Options").Range("C1").Value = i Sheets("Affich").Select ActiveSheet.CheckBoxes.Add(170, 3.5 + 12.75 * (i - 1), 120.75, 34.5).Select With Selection .Value = True .LinkedCell = "B" & i .Display3DShading = True End With Nom = Worksheets("Infos_eleves").Cells(i, 2).Value Sheets("Affich").Select Selection.Characters.Text = Nom Next End Sub

| | | |
| | Haut de la page |
| | Inscrivez-vous ! |
- Posez vos questions
- Résolvez vos problèmes
- Aidez les autres
- Participez et créez vos discussions
- Dialoguez en privé avec d'autres membres
- Suivez vos sujets préférés
- Affichez les signatures des membres
|
|