> Tous les forums > Forum Autres langages
 Pb VBA : insérer checkbox avec cellule liée
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
bubale
  Posté le 15/04/2008 @ 12:29 
Aller en bas de la page 
Petit astucien

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 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

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 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien


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 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien

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 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

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


Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
88,80 €Disque dur externe portable Toshiba Canvio Basics 4 To USB 3.0 à 88,80 €
Valable jusqu'au 16 Avril

Amazon propose actuellement le disque dur externe portable Toshiba Canvio Basics 4 To USB 3.0 à 88,80 € seulement ! Avec ses 4 To et sa connectique USB 3.0 compatible USB 2.0, vous aurez de quoi stocker rapidement et emporter avec vous vos photos, vos films, etc.  La livraison est gratuite.


> Voir l'offre
78,99 €Kit de 16 Go (2 x 8 Go) de mémoire DDR4 Crucial Ballistix 3200 MHz à 78,99 €
Valable jusqu'au 16 Avril

Amazon fait une promotion sur le kit de 16 Go (2x8 Go) de mémoire DDR4 Crucial Ballistix 3200 MT/s CL16 qui passe à 78,99 € alors qu'on le trouve ailleurs à partir de 95 €.


> Voir l'offre
22,80 €Bracelet connecté Xiaomi Mi Band 5 avec tracker cardiaque IP67, écran OLED et Bluetooth 5 à 22,80 €
Valable jusqu'au 15 Avril

Cdiscount fait une promotion sur dernière version du bracelet connecté de fitness Xiaomi Mi Band 5 avec tracker cardiaque à 22,80 €. Ce bracelet est étanche IP67 et possède le bluetooth 5.0. Avec lui, vous pouvez suivre votre rythme cardiaque, mais également vos pas et vos calories dépensées que vous pourrez afficher sur son écran OLED couleur, de même que l'heure courante. Il intègre également un réveil vibreur silencieux (pratique pour se réveiller la nuit sans réveiller sa moitié) et peut suivre vos phases de sommeil. Vous pourrez configurer le bracelet et suivre votre activité depuis n'importe quel appareil mobile avec Bluetooth 5 sous Android ou iOS. Vous pourrez contrôler votre musique du téléphone depuis le bracelet et afficher vos notifications.

Cette version française est directement expédiée depuis un entrepôt français. Sa batterie autorise une autonomie de 20 jours entre 2 recharges.


> Voir l'offre

Sujets relatifs
Ameliorer le Main "Java" avec les fonctions & procédures
concatenation avec Arduino
URGENT ! Fin de développement d'application C++ avec MFC
Problème avec WinPython - Spyder
Convertir un fichier image de 2002 avec extension ".GOOD"
Correction conditionnelle avec TEXTPAD OU NOTEPAD
Site dynamique avec Dream et Wamp
macro excell pour ouverture fichier avec password
Comment coloriser les doublons et unique avec VBA
Carnet Adresse avec VB
Plus de sujets relatifs à Pb VBA : insérer checkbox avec cellule liée
 > Tous les forums > Forum Autres langages