XL 2010 Enregistrement donné case à cocher dans un Userform

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

LosPlainas

XLDnaute Nouveau
Bonjour,
Novice en VBA, je souhaiterais savoir comment faire dans le paramétrage de mon Userform pour qu'il exporte les caption des case à cocher sélectionner dans une feuille excel après avoir renseigné son nom et cliquer sur un bouton.
Je sais que j'en demande beaucoup mais j'ai vraiment du mal tout seul...
Merci
 
Solution
Hello Patrick, LosPlainas

Oui comme dit LosPlainas, le "AddSheet" était un exemple suite au post#7 mais donc qui ne montrait "de loin" cette possibilité qui a été abandonnée. D'ailleurs je n'avais adapté ton astuce que sur le bouton "NewLine".

Maintenant j'étais surpris que tu puisses géré l'erreur 1004 sans gestion d'erreur ou sans "analyse" de ce qui avait été tapé dans la TextBox1, mais en fait cette condition "incroyable" (comme toi !) :
VB:
If TypeName(Evaluate(TextBox1.Value & "!A1:A2")) <> "Range" Then
(je me suis longuement gratté la tête en lisant cette ligne) ne gère que le doublon de feuille name, mais pas si, par exemple, le user a tapé "Toto/1" dans la TextBox.

Mais bravo encore une cabriole barbatruqueste de ta...
sélectionner dans une feuille excel après avoir renseigné son nom

Re j'avais mal lu cetté étape, voici une version v01 qui va "jouer" avec les feuilles...
(Taper le nom de feuille dans une TextBox est trop aléatoire et on doit géréer les erreurs si le user tape n'importe quoi)

Bonne découverte
@+Thierry
 

Pièces jointes

Re je constate une erreur avec les copiéscollés,

Remplacer cette partie :

With ThisWorkbook.Worksheets(ListBox1.Value)
.Range("B1") = Me.TextBox1
.Range("B2") = Me.CheckBox1
.Range("B3") = Me.CheckBox1
.Range("B4") = Me.CheckBox1
.Range("B5") = Me.OptionButton1
.Range("B6") = Me.OptionButton2
End With

@+Thierry

PS c'est pour voir si tu suis ! 😉
 
@_Thierry,
Est ce qu'il est possible d'enregistrer les valeurs des case à cocher dans 1 seule cellule (séparation par virgule ou autre pour séparer le texte) et aussi que lorsqu'on fait une nouvelle saisi que ça n'écrase pas l'enseigne mais plutôt que ça bascule sur une autre feuille?
 
Bonjour @LosPlainas , le Forum

Voici une autre mini-démo qui prend en compte tes problématiques du post #7.
Je laisse au choix, deux buttons, soit d'ajouter une ligne, soit d'ajouter une feuille...

Bonne découverte
Bon dimanche
@+Thierry
 

Pièces jointes

OH grand maitre @_Thierry
Qu'est ce que j'aimerai maitriser ça comme vous!!
😀
Je n'arrive pas à changer les valeurs récupérés.
Je voudrais récupérer ce qu'il y a dans Caption (ou name...) si elles sont cochés et rien quand elles sont décochées...
Je suis exigeant mais j'espère être à la hauteur du défi relevé..
Bonne soirée
 
bonsoir
en passant vite fait
VB:
 With WS
        .Range("A" & L) = Me.TextBox1
        .Range("B" & L) = Me.CheckBox1
        .Range("B" & L) = Application.Rept(Me.CheckBox1.Caption, Abs(CheckBox1.Value)) & _
                       Application.Rept("," & Me.CheckBox2.Caption, Abs(CheckBox1.Value)) & _
                       Application.Rept("," & Me.CheckBox3.Caption, Abs(CheckBox1.Value))
    End With
 
Je t'explique vite fait, c'est pour faire l'inventaire de véhicule, les case à cocher sont sélectionnées uniquement si l'objet est manquant, et dans ce type de véhicule, il vaut mieux qu'ils ne manque pas grand chose donc la taille de B est largement suffisante.
 
Bonsoir @ tous

Bloody Hell, je n'ai jamais vu cette Function Rept de toute ma vie de bidouilleur Excel/VBA... Et même si j'étais tombé dessus jamais je n'en aurai tiré une utilité quelconque !

Et de là à l'utiliser de cette manière, chapeau Patrick !!!
Il n'y a pas que LosPlainas qui apprend des trucs ici 😉

Bien à toi, à vous
@+Thierry
 
re
bonsoir thierry

oui ça m’évite de faire des if else et le ABS du boolean qui me donne soit 0 soit 1 ben t'a compris, et j’inclue bien sur la virgule dans le repeat(1 ou 0) afin de ne pas avoir de virgule+vide successif
d'ailleurs je l'ai oublié
texte=texte & Application.Rept(Me.controls("CheckBox" & i) .Caption &",", ABS.......
en gros c'est une méthode que j'emploie beaucoup pour réduire de ligne répétitives

assez simple comme concept 😉

y parait que c'est avec ce genre de cabriole que l'on reconnais ma signature 😛😛😛
je vous montrerais bien comment je fait exactement la même chose avec les mêmes outils mais sans boucle

mais bon très occupé sur la finalisation du prOject ribbonUI Qui a très grandement avancé 😉
 
- 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

Discussions similaires

Réponses
3
Affichages
2 K
Compte Supprimé 979
C
Retour