Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • 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 Florent

Si tu écris trois textes différents successivement dans une même cellule c'est normal de voir apparaître seulement le troisième.

Cordialement

Bernard
 
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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…