> Tous les forumsAutres langages

 Pb VBA : insérer checkbox avec cellule liée
Statut du sujet : NON RESOLU Imprimer
 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!

 Afficher le profil de bubale Envoyer un message privé à bubale
 
 
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!


Afficher le profil de Bérylion Voir la configuration de BérylionEnvoyer un message privé à Bérylion
 Revenir en haut de la page
 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...

Afficher le profil de Bérylion Voir la configuration de BérylionEnvoyer un message privé à Bérylion
 Revenir en haut de la page
 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

Afficher le profil de davidouandcoEnvoyer un message privé à davidouandco
 Revenir en haut de la page
 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


Afficher le profil de Bérylion Voir la configuration de BérylionEnvoyer un message privé à Bérylion
 Revenir en haut de la page
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

TOUT EST GRATUIT !

Je crée mon compte



Les sujets pertinents liés
appeler des touches clavier dans une macro Excel
vba excel solveur
vba comparatif
Pb entre VBA Excel 97 et Excel 07
probleme fonction dessin
programmation vba et interruption
JAVA dans du HTML
VBA
EXCEL
VBA
[C++]Appel des méthodes avec l'héritage
Script Pres : vba ???
VBA - Format Date
[c++] surcharge new, new[], delete et delete[]
deprime avec mon code :(
pb avec fichier JAVA
erreur java
 
Vous avez besoin d'aide ?
Des centaines d'experts sont à votre disposition sur les forums PC Astuces pour vous aider gratuitement, 24h/24, 7j/7.

Les derniers sujets résolus !



 > Tous les forumsAutres langages

 
Forum PC Astuces© 1997-2008 WebastucesAller en haut de la page
Comme PC Astuces, mettez-vous au vert avec Ikoula !
Faites le choix d'un hébergeur acteur de l'environnement !