• Initiateur de la discussion Initiateur de la discussion florent
  • 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 !

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
 
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é
 
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
 
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
 
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
 
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
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
716
Réponses
4
Affichages
680
Réponses
18
Affichages
867
Réponses
2
Affichages
334
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
13
Affichages
617
Réponses
6
Affichages
440
Retour