checkbox

F

florent

Guest
Bonjour à tous,

Si quelqu'un(e) veut bien m'aider j'ai une petite question sur les checkbox .
j'ai dans mon userform plusieur checkbox et je souhaiterai rapporter les textes sur une feuille excel quand elles sont cochées

j'ai essayer le code suivant


Dim L As Integer
L = Sheets("feuil1").Range("A65536").End(xlUp).Row + 1

If CheckBox1.Value = True Then
.Range("A" & L).Value = "toto"
If CheckBox2.Value = True Then
.Range("A" & L).Value = "azerty"
If CheckBox4.Value = True Then
.Range("A" & L).Value = "papa"

enf if
.
.
.

seulement sur ma feuille excel seul la valeur "papa" est reportée malgré que les 3 box sont cochées

Merci de votre aide

Florent
 
H

Hervé

Guest
bonjour

c'est logique tu lui fait entrer les valeurs dans la même plage ("a" & l). il rentre donc tout mais tu ne vois que le dernier parametre "papa".

Modifie tes plages pour accepter les autres valeurs : ("b"&l)

salut
Hervé
 
F

florent

Guest
Bonjour bernard , hervé , le forum

merci pour les remarques et cette premiere solution
Seulement je souhaitai que les textes se positionnent les uns en dessous des autres dans la colonne A


Y a t il un moyen de réaliser cela ?

Meric d'avance

Florent
 
B

Bernard

Guest
re Florent et bonjour Hervé

modifie ta macro pour lui faire écrire dans les cellules en dessous :

If CheckBox1.Value = True Then
.Range("A" & L).Value = "toto"
If CheckBox2.Value = True Then
.Range("A" & L+1).Value = "azerty"
If CheckBox4.Value = True Then
.Range("A" & L+2).Value = "papa"

A+

Bernard
 
F

florent

Guest
re bernard,

Merci pour la solution ( ça marche )

Je me permet une derniere reflexion ( car je debute en vba et j'essaie d'apprendre avec des exemples)

j'ai déclaré pour la variable "L" la ligne suivante:

L = Sheets("feuil1").Range("A65536").End(xlUp).Row + 1

n'est ce pas sensé de trouver la derniere cellule pleine de la colonne A et d'aller à la cellule suivante

ce qui devrait normalement m'éviter de passer par L,L+1, etc
( et d'inscrire les textes les uns en dessous des autres)

Merci a nouveau de l'explication ( précision) que tu pourrais m'apporter

Florent
 
B

Bernard

Guest
Re Florent

je reprends le sujet ;

Ton raisonnement est tout à fait logique.

En language macro, cela se traduit par :

If CheckBox1.Value <> "" Then
Sheets("feuil1").Range("A65536").End(xlUp).offset(1,0) = "toto"
If CheckBox2.Value <> "" Then
Sheets("feuil1").Range("A65536").End(xlUp).offset(1,0) = "azerty"
If CheckBox4.Value <> "" Then
Sheets("feuil1").Range("A65536").End(xlUp).offset(1,0) = "papa"

A+

Bernard
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 294
Messages
2 086 896
Membres
103 404
dernier inscrit
sultan87