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

patricktoulon

XLDnaute Barbatruc
Bonjour tout les deux
si je puis me permettre
@_Thierry est tu sur de l’efficience de la gestion d'erreur moi pas ;)

en effet tu ajoute une sheets et tu gère l'erreur uniquement sur le nommage
sauf que ..dommage si l'erreur est relevée et évitée(débloqué) ça n’empêche pas moins que l'on a une feuille dont on est obligé de renommer manuellement car il n'y a pas d'alternative dans le code
l'ajout d'un sheets nommé commence par son test d'existence et uniquement a ce moment là on ajoute et on nomme si il n'existe pas bien sur ;)
pour cela mon astuce evaluate m'abstiendra de boucler sur les sheets ou de faire une gestion d'erreur sur un set

donc ainsi j'ai pris parti de faire le test avant
  1. j’intègre mon test typename evaluate pour test d'existence de la feuille
  2. on vire par ce fait la gestion d'erreur qui n'est plus nécessaire
  3. j’intègre ma méthode checkbox par la même occasion
  4. le unload se fait uniquement si l'ajout est réussi
  5. j'ajoute l'autofit de la colonne (j'aime pas les textes tronqués )
voila ce que ça donne
VB:
Private Sub CommandButton2_Click()    ' Ajouter Feuille
    Dim i&, texte$
    If Me.TextBox1 = "" Then MsgBox "La TextBox1 ne peut être vide": Exit Sub
    If TypeName(Evaluate(TextBox1.Value & "!A1:A2")) <> "Range" Then
        With ThisWorkbook.Worksheets.Add
            .Name = Me.TextBox1
            .Range("A1") = "Nom"
            .Range("B1") = "Choix"
            .Range("A2") = Me.TextBox1
            '>>>>> ================================================================== Intégration Patrick
            For i = 1 To 3    '<<<<<<<<<<<<<<<    à ajuster au nombres réel de CheckBox
                texte = texte & Application.Rept(Me.Controls("CheckBox" & i).Caption & ",", Abs(Me.Controls("CheckBox" & i).Value))
            Next
            .Range("B2") = texte
            '<<<<< ==================================================================
           . Columns("B:B").AutoFit
        End With
        Unload Me
    Else
        MsgBox " Cette feuille existe deja !!"
    End If
End Sub
à noter aussi que la variable "Ws" a sauté puisqu'elle est utilisée uniquement dans cet événement et donc un bloc with worksheets.add fera l'affaire
voila ;)
 

LosPlainas

XLDnaute Nouveau
Merci à vous 2 @_Thierry et @patricktoulon .
Thierry m'avait programmé 2 boutons, & pour nouvelle ligne et & pour nouvelle feuille.
Je vais quand même récupérer ton code pour nouvelle feuille mais je n'utilise que nouvelle ligne.
Grace à vous je vois un peu plus le bout du tunnel.
Je vais construire tout ça cette semaine.
Je ne suis pas à l'abri de vous resollicité vu vos connaissance!! ;)
Bonne journée
 

_Thierry

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

Bien à toi, à vous
@+Thierry
 

Discussions similaires

Réponses
16
Affichages
1 K

Statistiques des forums

Discussions
312 233
Messages
2 086 465
Membres
103 224
dernier inscrit
VieuxSeb