Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Enregistrement donné case à cocher dans un Userform

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...

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour @LosPlainas , le Forum

Un petit exemple de base pour débuter. Je pense que tu comprendras vite.
J'ai mis aussi deux OptionButtons pour que tu cernes la différence.

Bien à toi, à vous
@+Thierry
 

Pièces jointes

  • XLD_LosPlainas_Exemple_CheckBox_OptionButton_USF.xlsm
    19.4 KB · Affichages: 16

_Thierry

XLDnaute Barbatruc
Repose en paix
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

  • XLD_LosPlainas_Exemple_CheckBox_OptionButton_USF_v01.xlsm
    28.9 KB · Affichages: 10

_Thierry

XLDnaute Barbatruc
Repose en paix
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 !
 

LosPlainas

XLDnaute Nouveau
@_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?
 

_Thierry

XLDnaute Barbatruc
Repose en paix
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

  • XLD_LosPlainas_Exemple_CheckBox_OptionButton_USF_v02.xlsm
    23.2 KB · Affichages: 21

LosPlainas

XLDnaute Nouveau
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
 

patricktoulon

XLDnaute Barbatruc
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
 

patricktoulon

XLDnaute Barbatruc
re

exemple
dim texte$
for i= 1 to 74
texte=texte & Application.Rept(Me.controls("CheckBox" & i) .Caption, Abs(me.controls("CheckBox"& i).Value))
next
.Range("B" & L) = texte

espérons
que ta cellule "B"(L) soit assez grande
 

LosPlainas

XLDnaute Nouveau
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.
 

_Thierry

XLDnaute Barbatruc
Repose en paix
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
 

patricktoulon

XLDnaute Barbatruc
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é
 

Discussions similaires

Réponses
16
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…