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
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...
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
j’intègre mon test typename evaluate pour test d'existence de la feuille
on vire par ce fait la gestion d'erreur qui n'est plus nécessaire
j’intègre ma méthode checkbox par la même occasion
le unload se fait uniquement si l'ajout est réussi
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
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
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 !